VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Собственно, мне нужно призвести некие изменения в оформлении, связанные с подключением дополнительных CSS файлов
Соответствующая переменная создана, дабы если что, то одно, а нет - так другое
На хук global_complete повешено
PHP Code:
echo "<pre>";
print_r($vbulletin);
echo "</pre>";
На странице forumdisplay.php и в шаблоне showthread прекрасно отрабатывает конструкция
Попробовал менять значение переменной с 0 на 1 и обратно. В самом массиве (через модуль) все ОК, в шаблоне - ну не обрабаьывается массив, хоть ты тресни.
Где копать, уважаемые камрады, в какую степь иттить?
Где копать, уважаемые камрады, в какую степь иттить?
Заменить:
PHP Code:
$vbulletin->options[use_extra_css]
На:
PHP Code:
$this->registry->options['use_extra_css']
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
Забыл упомянуть, в каждом из шаблонов есть эта переменная и в кавычках, и без таковых. К сожалению, ни та, ни другая версия не проходит
Конструкция
PHP Code:
<if condition="$vbulletin->options['use_css_buttons']"> YES with quotes! <else /> NO with quotes! </if> <if condition="$vbulletin->options[use_css_buttons]"> YES without quotes! <else /> NO without quotes! </if>
возвращает
Code:
NO with quotes! NO without quotes!
Gostemilov добавил 08.05.2021 в 19:48
Quote:
Originally Posted by OldEr
Заменить:
PHP Code:
$vbulletin->options[use_extra_css]
На:
PHP Code:
$this->registry->options['use_extra_css']
Fatal error: Using $this when not in object context in ***\includes\adminfunctions_template.php(3962) : eval()'d code on line 192
Last edited by Gostemilov : 05-08-2021 at 11:48 PM.
Reason: Добавлено сообщение
OldEr
Специалист
Join Date: Jun 2007
Награды в конкурсах:
Posts: 4,731
Версия vB: 3.8.x
Пол:
Reputation:
Мастер 4229
Репутация в разделе: 2623
2
Quote:
Originally Posted by Gostemilov
Fatal error: Using $this when not in object context in ***\includes\adminfunctions_template.php(3962) : eval()'d code on line 192
Думал, что условие применяете в модуле. Если в шаблоне, то попробуйте $vboptions['use_extra_css'].
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
Ай спасибо! Сработало!
Но я очень не люблю быть обезьяной, которую научили тыкать определенные кнопки. Где можно чего почитать по поводу, чем $vbulletin->options отличается от $vboptions, откуда вообще эта $vboptions берется и зачем существует, в общем, хочу все знать, мне ж этим пользоваться!
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
$vboptions это алиас $vbulletin->options для шаблонов
т.к. в шаблонах объекты не проканают, а $vbulletin->options - это объект, тогда как $vboptions - массив
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
В таком случае вопрос вдогон - где и как этот алиас формируется?
Мне на определенном этапе загрузки файлов (в частности, в альбомы пользователя) наобходим доступ к практически всем переменным, касающимся загружаемого файла, а массив $upload является предельно кастрированным и содержит только
Чтобы не гадать вслепую - мне нужно реализовать нечто, напоминающее демотиватор при загрузке файла в альбом (может, и не только туда, иожет, и не только изображения)
Речь идет о том, что загруженный временный файл (еще до помещения скриптом загрузки на постоянное место хранения, то есть TMP или же уже готовый файл) подвергается некоей модификации, там, к примеру, на изображение накладывается перманентный ватермарк или в ZIP архив добавляется файл типа README, причем (это обязательно) исключительно на уровне модуля, повешенного на существующий хук, но ни в коем случае не модификацией хоть одного символа в исходном коде форума
Я пытаюсь понять сам процесс загрузки и возможности вмешательства на разных этапах, а не решить конкретную задачу
Когда будете выбирать место, куда меня послать с такими вопросами - пожалуйста, учтите, что мальчику скоро 60 годиков, он уже старенький и такдалеко может и не дойти
Заранее спасибо!
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
Quote:
Originally Posted by Gostemilov
где и как этот алиас формируется?
скорей всего здесь (не формируется, а заменяется в шаблонах):
файл functions_misc.php, функция replace_template_variables()
PHP Code:
// include the $, but escape it in the key static $variables = array( '\$vboptions' => '$GLOBALS[\'vbulletin\']->options', '\$bbuserinfo' => '$GLOBALS[\'vbulletin\']->userinfo', '\$session' => '$GLOBALS[\'vbulletin\']->session->vars', );
Quote:
Originally Posted by Gostemilov
получить доступ к, примеру
ключ "location" принимает значение в функции загрузки accept_upload(&$upload) в файле class_upload.php
т.е. по сути, это копия из $_FILES[x][tmp_name]
и хук, на который можно повесить свой модуль только один upload_accept, но он в самом конце функции
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
Ну вот смотри (за качество кода ногами не бить, это отладка со всем возможным бредом, но, правда, работает)
При загрузке в альбом исходное изображение вставляется в созданный по ходу прозрачный PNG, а на свободное место наносится некий текст, то есть, по сути ватермарк наоборот
Но!
Два, мать его, два запроса к базе! И это при том, что если грамотно разобраться в процессе - вообще ни один не нужен, все же есть в готовом виде!
PHP Code:
echo "<h3>album_pictue_upload_complete</h3>";
$pictureinfo = $vbulletin->db->query_first("SELECT * FROM picture ORDER by pictureid DESC LIMIT 1;");