Перестали работать моды интегрируемые с помощью хуков

Автор Slavegirl, 21 февраля 2013, 09:27:26

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Slavegirl

Доброе утро!

Вчера заметила частичную пропажу у себя 3 модов, а именно: Fake Guests & Users Online, Unread PMs Favicon, Advanced News. Первые два из них полностью пропали из панели настройки модов: ?area=modsettings;sa=general , последний отображается, но не включает страницу новостей. Когда именно моды перестали работать не знаю. Как всегда бывает узнала о пропаже, когда захотела изменить настройки одного из них.

Что я заметила, эти три мода объединяет общее свойство - они тем или иным образом интегрируются в форум с помощью хуков (выписка из таблицы smf_settings базы данных):

integrate_actions - advanced_news_actions,uPMs_hook_actionArray
integrate_admin_areas - hooks_fguo_admin,advanced_news_admin_areas
integrate_admin_include - $sourcedir/Subs-fguo.php
integrate_general_mod_settings - uPMs_hook_general_mod_settings
integrate_load_permissions - advanced_news_load_permissions
integrate_load_theme - advanced_news_load_theme,uPMs_hook_load_theme
integrate_menu_buttons - advanced_news_menu_buttons
integrate_modify_modifications - hooks_fguo_modification,advanced_news_modify_modifications

Более детально, что именно перестало работать:

1. Закладка "Fake Guests & Users Online" (FGUO) полностью пропала из настроек:



Хотя мод продолжает работать, если его настройки изменить напрямую в базе данных, он на них реагирует.

2. Перестали отображаться поля настроек "Unread PMs Favicon". Сам мод также не работает, при получении личного сообщения favicon не меняется ни в одном браузере.



3. Закладка с настройками последнего мода "Advanced News" присутствует, но он никак не реагирует на их изменение (не появляется кнопка в главном меню форума). Хотя сам action=news зарегистрирован и по прямой ссылке отдельная страница с новостями открывается.

Удаление и повторная установка модов не помогла. Также выполняла полный откат форума (папка "www") и базы данных на копию двух месячной давности, когда все моды точно работали, тоже не помогло. Единственные изменения, которые были - это переезд с VPS на VDS 30 января, при этом обновилась версия PHP на последнюю.

Может ли обновление PHP так пагубно сказаться на работе модов с хуками? К сожалению, откатить PHP на предыдущую версию на данный момент не имею возможности (этим занимался другой человек).

Заранее большое спасибо за любые идеи по поводу неработоспособности модов! Больше всего жалко потери "Unread PMs Favicon"... :(

С уважением,
Slavegirl


Slavegirl

digger, спасибо за быстрый ответ!

Как же теперь лечить SMF? Ведь передача параметров по ссылке почти везде используется...

index.php

// Allow modifying $actionArray easily.
call_integration_hook('integrate_actions', array(&$actionArray));


Admin.php

// Let them modify admin areas easily.
call_integration_hook('integrate_admin_areas', array(&$admin_areas));


и очень много других файлов, найденных по фразе "&$".

digger®

Цитата: Slavegirl от 21 февраля 2013, 10:12:15Как же теперь лечить SMF? Ведь передача параметров по ссылке почти везде используется...
Лечить надо не SMF, а авторов модов.

// Allow modifying $actionArray easily.
call_integration_hook('integrate_actions', array(&$actionArray));


А вот в моде функция которая висит на этом хуке, должна задаваться не так
function foo($actionArray)
а так
function foo(&$actionArray)

Slavegirl

#4
digger, Лапочка, большое Вам спасибо за подсказки!
Я вчера сутки потратила на попытки обнаружить проблему и выполнение откатов...
Пойду пытаться отремонтировать моды, так и думала, что причина как всегда в каком-то одном символе.

Моды откорректировала, все снова работает!


sgtWhite

Цитата: Slavegirl от 21 февраля 2013, 10:23:01Моды откорректировала, все снова работает!

У меня сейчас в точности повторилась ваша ситуация с FGUO. Можно узнать где именно корректировали и как?

Slavegirl

#7
Где: в файле Subs-fguo.php исправляла объявление функций.
Как: описано в теме выше.

sgtWhite

Цитата: Slavegirl от 13 января 2014, 10:13:13Скорее всего в файле Subs-fguo.php исправляла объявление функций.

Yep )) Строки 14, 21 и 28. Добавил & перед каждой $ - заработало.

Slavegirl


sgtWhite

Цитата: Slavegirl от 13 января 2014, 10:13:13Как: описано в теме выше.

Если бы я понял что-либо из вашего с Диггером диалога, то уж наверное не стал бы утруждать вас расспросами, верно? )) Мне было необходимо решение проблемы по принципу "копировать - вставить", ну а до курения мануалов по "пыху" можно всегда дойти с помощью самокритики.

Цитата: Slavegirl от 13 января 2014, 10:37:04Я 28-ю строку не трогала. Там вроде нет хуков.

Ну вот, а говорили - не помните. Большое спасибо.