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

Инклюд своих php-html файлов в любой шаблон

Тема в разделе "Советы, руководства и видео-уроки", создана пользователем Mr. Brightside, 18.09.2011.

Загрузка
  1. vindeezel

    vindeezel Новичок

    Регистрация:
    06.01.13
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.3
    Огромная благодарность. в 1.1.3 реализовал много фишек таким способом. Свои скрипты были интересные =)
     
  2. Alazar

    Alazar Новичок

    Регистрация:
    10.12.12
    Сообщения:
    13
    Симпатии:
    4
    Версия XF:
    1.1.3
    Можно ли чуть подробней?
     
    wergio нравится это.
  3. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Именование классов соответствует следующему принципу: Класс1_Класс2_Класс3 ссылается на library/Класс1/Класс2/Класс3.php. В этом файле должна быть функция с точно таким же названием, как именуется метод. Например, метод extend соответствует функции function extend(...).
    Соответственно, все плагины размещают свои классы внутри library/
     
    Nevil нравится это.
  4. ratta

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

    Регистрация:
    23.11.13
    Сообщения:
    19
    Симпатии:
    1
    Версия XF:
    1.2.4
    Уважаемый, можно продублировать или описать словами что нужно? Картинок нет.
     
  5. Mirovinger

    Mirovinger Местный

    Регистрация:
    17.05.12
    Сообщения:
    267
    Симпатии:
    263
    Версия XF:
    1.1.2
    Почему же, держите с картинками.
     
  6. ratta

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

    Регистрация:
    23.11.13
    Сообщения:
    19
    Симпатии:
    1
    Версия XF:
    1.2.4
    странно, это на какой то определенной версии работает?
     
  7. KakBeOlolo

    KakBeOlolo Местный

    Регистрация:
    08.10.11
    Сообщения:
    510
    Симпатии:
    93
    Версия XF:
    1.1.2
    А на версии 1.2 у кого нибудь работает?
     
  8. KakBeOlolo

    KakBeOlolo Местный

    Регистрация:
    08.10.11
    Сообщения:
    510
    Симпатии:
    93
    Версия XF:
    1.1.2
    На 1.2 работает.

    А можно как-нибудь встроить файл php со скриптами и который обращается к другим php файлам? А то не отображает.
     
    Mirovinger нравится это.
  9. Cript

    Cript Новичок

    Регистрация:
    31.01.14
    Сообщения:
    7
    Симпатии:
    0
    Приветствую!
    Создал файл Index.php (вместо listener), загрузил в папку library/Mymode, а вот далее не понятно.. Что за режим отладки и что писать в создании дополнения?

    [​IMG]
     
    Последнее редактирование: 09.02.2014
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Режим разработки необходим при создании плагинов, так как в этом режиме появляются дополнительные возможности в админке. Включается путем добавления строки в конфиг library/config.php:
    Код:
    $config['debug'] = true;
    В id дополнения вписывайте любой набор латинских символов и цифры. Например, myincludeaddon. Главное, чтобы с другими плагинами не было конфликта имен.
    Заголовок - это просто текстовое описание, название плагина.
    Информация о версии - обычно это что-то типа 1.0
    Номер версии - каждую новую версию плагина увеличивают на 1. Это нужно для того, чтобы можно было понять, необходимо ли обновлять плагин. В общем это не критично, но стОит следовать стандарту.
    Все остальное можете не заполнять.
     
    Mirovinger нравится это.
  11. Cript

    Cript Новичок

    Регистрация:
    31.01.14
    Сообщения:
    7
    Симпатии:
    0
    Благодарю за ответ, однако возникают новые сложности.
    Вот делаю все по инструкции:
    [​IMG]

    А мне выскакивает ошибка:

    [​IMG]

    Пробовал разные названия методов, но ошибка та же..
     
  12. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    В обработчике должно быть имя Вашего класса. Если брать имя класса из первого поста, то должно быть Blablabla_Listener::templateHook. Регистр букв важен.
     
  13. Cript

    Cript Новичок

    Регистрация:
    31.01.14
    Сообщения:
    7
    Симпатии:
    0
    Поменял имя класса как в посте, но та же ошибка..
    22.png
    Файл расположен по адресу /library/CrossAuth/Index.php
     
  14. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Стоп. Файлы нужно называть правильно. Также и классы должны именоваться соответственно файлам. Пример:
    library/MyAddOn - в этой папке будут файлы нашего плагина, тогда
    library/MyAddOn/Listener.php - пусть здесь будут обработчики, в этом случае в файле класс должен называться MyAddOn_Listener.

    В файле, соответственно, должно быть это так (для хуков шаблонов):
    Код:
    <?php
    class MyAddOn_Listener
    {
          public static function templateHook($hookName, &$contents, $params, XenForo_Template_Abstract $template) {
                if($hookName == 'phpcode') {
                      ob_start();
                      require_once('blablabla.php');
                      $contents .= ob_get_contents();
                      ob_end_clean();
                }
          }
    }
    Вы внимательно читайте первый пост. Именование файлов должно соответствовать названиям классов. Также месторасположение файлов строго определено.
     
    Mirovinger нравится это.
  15. Cript

    Cript Новичок

    Регистрация:
    31.01.14
    Сообщения:
    7
    Симпатии:
    0
    Премного благодарен! Очень выручили, все работает как надо :thumbsup:
     
  16. Patriarh

    Patriarh Местный

    Регистрация:
    13.02.13
    Сообщения:
    27
    Симпатии:
    1
    Версия XF:
    1.4.1
    Можно картинки обновить :)
     
  17. Mirovinger

    Mirovinger Местный

    Регистрация:
    17.05.12
    Сообщения:
    267
    Симпатии:
    263
    Версия XF:
    1.1.2
    Patriarh нравится это.
  18. Patriarh

    Patriarh Местный

    Регистрация:
    13.02.13
    Сообщения:
    27
    Симпатии:
    1
    Версия XF:
    1.4.1
  19. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    А этим способом точно можно html добавить или только php?
    Сделал все по инструкции (буква в букву), никаких ошибок не возникло, но после вставки в шаблон <xen:include template="mainPg" /> ничего не произошло, страница не подгрузилась в нужное место.

    Весь контент содержится в js, и весь html ограничивается одной строкой.
    Содержимое html:

    <html>
    <head>
    <script type="text/javascript" charset="utf-8" src="mainPg_Preload.js"></script>
    </head>
    </html>

    Сама страница работает нормально , но этим способом не вставляется( , пока подгружаю через iframe, но хотелось-бы найти что-то рабочее на подобии этого способа.
     
  20. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Вы лучше конкретно задачу опишите. Возможно, есть более простые способы решения. Кстати, если версия XenForo 1.2 и более, то можно использовать нормальный штатный вызов xen:callback.
     
    Mirovinger нравится это.

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