1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.3.x Template Modification System

Тема в разделе "Made in XF-Russia.ru", создана пользователем guiltar, 20.02.2012.

Загрузка
  1. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Обновление: Release Candidate 1
    Добавлены новые возможности:
    • Модификации 3х типов: поиск/замена, регулярное выражение, callback.
    • Модификация теперь прикрепляется к любому шаблону.
    • Экспорт/импорт модификации вместе с плагинами (аналогично шаблонам).
    • Экспорт/импорт модификации вместе со стилями (аналогично шаблонам).
    • Интеграция с редактированием шаблонов.
    • Расширенные опции производительности.
    В качестве примеров сделал сборку модификаций во вложении.
     
    TAIFUN, Romchik® и Yoskaldyr нравится это.
  2. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Пофиксил апгрейд с 1й беты.
     
    Romchik®, TAIFUN и Yoskaldyr нравится это.
  3. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Release Candidate 2.
    • Список модификаций теперь в меню customized components.
    • Исправлены найденные баги и неровности.
     
    TAIFUN, Romchik®, exarh и 2 другим нравится это.
  4. Nolik

    Nolik Местный

    Регистрация:
    13.10.10
    Сообщения:
    169
    Симпатии:
    56
    Версия XF:
    1.1.3
    Я правильно понял, что например для того чтобы добавить некий код в Extra.css, я должен сделать в файле коммент типа
    <!-- change this --> а в правиле уже пишу что собственно вставляем. Так?
     
  5. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Сам шаблон трогать не нужно. Просто используйте регулярное выражение для модификации
    строка поиска: #^(.*)$#s
    строка замены: $1_то_что_добавить
     
  6. Nolik

    Nolik Местный

    Регистрация:
    13.10.10
    Сообщения:
    169
    Симпатии:
    56
    Версия XF:
    1.1.3
    guiltar, ага разобрался ) спасибо за ваши дополнения!
     
  7. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Update: 1.0.0
    Исправлено 2 бага.
     
    FractalizeR, Romchik®, TAIFUN и ещё 1-му нравится это.
  8. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    1.0.1:
    • Автокомплит для имени шаблона
    • Подгрузка текста шаблона при редактировании модификации
     
    TAIFUN, Yoskaldyr и Romchik® нравится это.
  9. allkonekt

    allkonekt Активный пользователь

    Регистрация:
    28.03.12
    Сообщения:
    71
    Симпатии:
    6
    Версия XF:
    1.1.2
    Версия форума 1.1.2

    Залил всё с папки в корень форума, установил дополнение addon-ModificationsPack.xml (но в обратном порядке).

    Захожу в стили, нет нужных пунктов меню, всё осталось без изменений... в чём может быть загвоздка?(

    Перестраивал кэш - эффект 0.

    Подскажите пожалуйста, что не так делаю.
     
  10. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    сначала нужно было TMS поставить, без него ModificationPack - ничто.
    переустановите ModificationPack.
     
    allkonekt нравится это.
  11. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Обновление: 1.0.2
    • При поиске по шаблонам выполняется также поиск по модификациям.
    • Кнопка "Save and Check" добавлена.
    • Найденные баги исправлены.
     
    Romchik®, Air Jordan и TAIFUN нравится это.
  12. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Было бы здорово, если бы в названии архивов/файлов присутствовала информация о версии :)
     
    Romchik®, guiltar и Yoskaldyr нравится это.
  13. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Апдейт: 1.1.1
    Добавлен тмс-независимый экспорт стилей.
    При этом экспортируются конечные модифицированные шаблоны без самих модификаций.
     
    TAIFUN, Romchik® и Yoskaldyr нравится это.
  14. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Как раз так, как просили многие дизайнеры - теперь поддерживать нестандартные стили будет значительно проще :)
     
  15. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    У меня при импортированнии продукта вылетает ошибка

    Server Error

    mysqli::query(): (42000/1305): SAVEPOINT xf00998caf467aa4e8e7ed6f3b40be798c does not exist
    1. XenForo_Application::handlePhpError()
    2. mysqli->query() in XenForo/Db.php at line 145
    3. XenForo_Db::_execQuery() in XenForo/Db.php at line 83
    4. XenForo_Db::commit() in TMS/Manufacture.php at line 62
    5. TMS_Manufacture::build()
    6. call_user_func() in XenForo/Model/AddOn.php at line 214
    7. XenForo_Model_AddOn->installAddOnXml() in XenForo/Model/AddOn.php at line 169
    8. XenForo_Model_AddOn->installAddOnXmlFromFile() in XenForo/ControllerAdmin/AddOn.php at line 178
    9. XenForo_ControllerAdmin_AddOn->actionInstall() in XenForo/FrontController.php at line 310
    10. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
    11. XenForo_FrontController->run() in /var/www/magichit.net/htdocs/forum/admin.php at line 13
     
  16. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    ANGEL OF FIRE нравится это.
  17. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    С другими хаками вроде бы проблем не было.


    Mysqli statement execute error : Duplicate column name 'template_modified'

    Хотя таблиц от хака вроде нет, я их удалил.
     
  18. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Там не только новые таблицы добавились, но ещё и столбцы в уже существующих. Найдите и удалите столбцы: template_modified и template_modifications в таблице xf_template (для первой версии TMS), xf_template_final и template_modifications в xf_template_map (для второй и выше).

    Кстати, с причиной возникновения ошибки я разобрался. Дело в том, как Ксен обрабатывает вложенные транзакции. Так как в MySQL нет родной для них поддержки, они эмулируются: внешняя транзакция - она действительно транзакция, а для каждой внутренней создается именованный SAVEPOINT, который при коммите RELEASE-ится, а при откате - ROLLBACK-ается. Ключевое слово здесь - именованный. При установке TMS происходят изменения таблиц, которые являются DDL и потому завершают все транзакции. При завершении транзакции SAVEPOINT перестает существовать, а потому недоступен по имени. Отсюда - ошибка. Не будь транзакция "вложенной", ошибки бы не было - COMMIT можно делать сколько угодно раз подряд, так как вложенные транзакции не поддерживаются. При установке TMS её и не надо делать вложенной - вызов метода установки и так обертывается транзакцией ещё в модели, туда же захватывается запись данных аддона в базу, так что транзакцию из метода build можно убрать.

    Почему в большинстве случаев все работает - вопрос открытый. Мне легко удалось воспроизвести ошибку на драйвере PDO под MySQL 5.0, но с драйвером MySQLi все работает. Судя по документации, работать не должно. Либо какая-та настройка Мускула (я вообще в администрировании не разбираюсь), либо драйвер при каких-то условиях глотает такого рода ошибки... последнее более вероятно.
     
    ANGEL OF FIRE и guiltar нравится это.
  19. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Спасибо! Как раз заметил, что транзакция в инсталле не является внешней. А внешняя получается та что в XenForo_Model_AddOn::installAddOnXml. Поэтому все транзакции из инсталла удалю. Только вот почему когда я прерывал инсталл через die(), изменения в базе не откатывались назад?
     
  20. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Изменения - в смысле, структуры таблиц? Так я и говорю - это DDL, поэтому все транзакции с участием изменяемых таблиц COMMIT-ятся неявно. Если же есть пример, где простая работа с записями вызывает завершение транзакции до commit-а, мне было бы очень интересно посмотреть.
     

Поделиться этой страницей