VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Есть допустим три стиля и соответственно три картинки. Нужно сделать условие в постбите наподобии:
PHP Code:
если пользователь онлайн
если пользователь использует стиль 1, то
картинка 1
если пользователь использует стиль 2, то
картинка 2
иначе
картинка 3
закрыли условие
закрыли условие
Собственно интересует строка "если пользователь использует стиль Х"
Просто $styleid в качестве переменной в условии не катит. И вот не пойму, толи я переработал сегодня, толи уже мозги ссыхаются, а уже пол часа условие придумать не могу, хотя дело то плёвое, а вот ступор)))
Дьявол, эмм... а зачем это условие "если пользователь использует стиль 1"? положим, есть две картинки для двух стилей -- каждому стилю прописываем свои пути к папкам изображений, помещаем картинки в соответствующие стилям папки, а в шаблоне используем массив $stylevar. например, помести картинки в папку 'misc' стиля и в шаблоне пиши
HTML Code:
<img src="$stylevar[imgdir_misc]/картинка.gif" />
@Дьявол
Знаток
Join Date: Feb 2007
Location: 31rus
Posts: 222
Версия vB: 3.8.0
Reputation:
Knowing 191
Репутация в разделе: 182
0
Не, не так, это я думал, но у меня случай немного другой. Допустим я сижу на главном стиле, а какой-то юзер сидит на стиле кпк, и вот в главном стиле под его ником допустим у него чтобы высвечивалась картинка с надписью "mobile". Что-то типо в стиле аля одноклассники.ру
Возможно не особо правильно объяснил условие, если просто словами и подробней, то:
PHP Code:
если пользователь онлайн
если пользователь использует стиль "КПК", то другим под его ником выводится картинка "кпк"
если пользователь использует стиль "wap", то другим под его ником выводится картинка "mobile"
иначе(или можно - если пользователь использует стиль "Обычный"), выводится картинка "На сайте"
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
0
Quote:
Originally Posted by Дьявол
и вот в главном стиле под его ником допустим у него чтобы высвечивалась картинка с надписью "mobile".
В таком случае определенно надо мод писать, простым условием стиля здесь не обойтись...
@mad@Max
Эксперт
Join Date: Jun 2007
Posts: 1,421
Версия vB: 3.8.4
Reputation:
Expert 2543
Репутация в разделе: 2281
0
По-моему эта переменная - $stylevar['styleid'], я ее уже юзал.
Или $userinfo['styleid']
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
0
mad@Max, Да нет, Дьявол хочет знать какой стиль у другого пользователя а не у того кто смотрит в данный момент (т.е. больше как информация о том как смотрят пользователи форум). Для этого и нужно написание модуля, что бы номер текущего выбранного стиля сохранился в бд для дальнейшего отображения его другим пользователям у которых свои выбранные стили. Номер, например, сохранять можно как один из userfield-ов.
Yoskaldyr добавил 11.08.2009 в 00:50 mad@Max, Все сорри я гоню... Действительно эта инфа и так сохраняется.
Но... в постбите будет: $post[styleid]
Last edited by Yoskaldyr : 08-11-2009 at 01:58 AM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
0
но если стили не изменяются часто, то можно привязать к ID стиля картинку
@Ghost
Гуру
Join Date: Feb 2008
Posts: 983
Версия vB: 3.8.1
Reputation:
Гуру 1011
Репутация в разделе: 893
2
Yoskaldyr, $post[styleid] хранит id стиля, который пользователь выбрал в своем кабинете, но не текущий. текущий стиль пользователя может отличаться от выбранного в настройках и хранится в куках и таблице сессий.
Дьявол, информация о текущем выбранном стиле хранится только для онлайн-пользователей в таблице session. можешь создать глобальный ассоциативный массив, связывающий id пользователя и id стиля на хуке 'global_setup_complete'
PHP Code:
$userstyles = array();
$query = $vbulletin->db->query_read('SELECT userid, styleid FROM ' . TABLE_PREFIX . 'session');
while ($row = $vbulletin->db->fetch_array($query))
{
$userstyles[intval($row['userid'])] = intval($row['styleid']);
}
$vbulletin->db->free_result($query);
global $userstyles;
и использовать этот массив потом в нужных местах. наприме, для вывода в постбите нужно будет сперва на хуке 'postbit_display_complete' создать модуль
PHP Code:
global $userstyles;
$post['userstyle'] = isset($userstyles[$post['userid']]) ? $userstyles[$post['userid']] : false;
только предварительно нужно в папку misc каждого стиля залить картинки с именами вида 'userstyle{id стиля}.gif'.
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
0
Ghost, Да, это так... Смотрел вчера ночью, так что немного тупанул...
Как я и говорил с самого начала - нужен был модуль.
Чтобы не делать много модулей можно все через переменную $show передать, тогда будет нужен только один модуль в global хуке и немного другое условие в шаблоне