У меня есть перепиленная на PHP 7.2 версия, но, боюсь, я не готов с вами ею поделиться. Потому что код во множестве мест перепилен под наш проект и с базовым он может не заработать.
Вам очень-очень нужно или вы сможете на PHP 7.0 пожить?
Мне несложно изменить конфиг конкретно шаблона Synio.
Но у меня автоматический деплой кода и вносить изменения в репозитории плагинов — те, которые могут быть заданы в основном конфиге приложения — я не хочу.
Удивительно, что разработчики большинства плагинов (всех?) не считают нужным хранить этот приоритет в конфиге плагина — это очень многое бы упростило «искаропки».
В сети есть версия 1.0.4 под PHP 7.0
Я доделывал под свой проект под PHP 7.2
Вы стараетесь перед чужой, равнодушной к вашим проблемам, аудиторией. Здесь это оффтоп.
Вам очень-очень нужно или вы сможете на PHP 7.0 пожить?
Потому что each и create_function в PHP 7.2 уже deprecated.
Мне несложно изменить конфиг конкретно шаблона Synio.
Но у меня автоматический деплой кода и вносить изменения в репозитории плагинов — те, которые могут быть заданы в основном конфиге приложения — я не хочу.
/engine/modules/viewer/Viewer.class.php
И, к слову, зачем такая сложная функция слияния массивов?
чем не угодил
php.net/manual/ru/function.array-replace-recursive.php
?
/config/config.php
Тут max_tree определен, допустим, как 7.
Этот конфиг загуржается с перезаписью (true) (перезаписываем пустой конфиг)
/config/config.local.php
При его загрузке стоит «НЕ ПЕРЕЗАПИСЫВАТЬ»
Тут max_tree определен как 10
… и значение успешно меняется на 10.
/templates/skin/synio/settings/config/config.php
При загрузке стоит опять «НЕ ПЕРЕЗАПИСЫВАТЬ»
Тут max_tree определен как 5
… значение в конфиге меняется на 5.
/engine/modules/viewer/Viewer.class.php
Загружаем конфиг, говорим НЕ ПЕРЕЗАПИСЫВАТЬ имеющийся конфиг полученным.
Все верно? Верно.
Идем дальше по цепочке вызовов…
… и приходим к
engine/lib/internal/ConfigSimple/Config.class.php
Идем в код ArrayEmerge (точнее в func_array_merge_assoc()
… и обнаружием удивительную вещь:
Массив arr1 перезаписывается ключами массива arr2, хотя это поведение НЕ ОЖИДАЕТСЯ.
Ясно же сказано — не перезаписывать конфиги? Ясно.
А данные херятся.
Где логика?
/engine/modules/viewer/Viewer.class.php
Оно?
Да, это не решает проблему полностью, но я могу в локальном конфиге прописать:
Теперь плагин page отработает раньше, чем ExpWall
Правда если какой-то плагин решит повесить на один и тот же хук два обработчика — эта схема сломается, но я думаю, это нереальный случай.
В идеале — консольный.
Как изменить какой-то из параметров темы, не внося изменения в /template/skin//settings/config/config.php?
Сделал после загрузки конфигов dump конфига, но настройки темы в него не подгрузились.
/engine/lib/external/jquery/jquery.scrollto.js
на
github.com/flesler/jquery.scrollTo/blob/1.4.14/jquery.scrollTo.js
И в коде scrollTo:
```
```
на
```
```
Какой-то запрос к БД делаете, который сервер БД выполнить не может.
Нужно больше информации.