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

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

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

Загрузка
  1. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    В общем как-то я задавал тут вопрос, меня интересовал простой нубской способ "запхать" использовать свои php-html заготовки, не запариваясь с xen-фреймворком. Данная фича может оказаться весьма полезной тем, кому не хочется изучать весь xen-велосипед, чтобы использовать какой-нибудь 1 или несколько скриптиков :)

    Основа ответа была найдена на офф. форуме, немного замысловато и на английском, поэтому я решил всё описать

    Представим, что нам нужно отобразить результат работы файла blablabla.php в каком-либо шаблоне на форуме, и для этого по сути надо создать для этого свой небольшой аддон. Для этого надо осуществить следующие действия:

    1. Создаем файл Listener.php следующего содержания:
    Код:
    <?php
    class Blablabla_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();
                }
            }
        }
    }
    2. Берем этот Listener.php и наш blablabla.php и ложим в папку Blablabla (надо создать) в путь_к_форуму/libary/

    3. Переводим форум в режим отладки.

    4. Идем в админку, -> разработка -> создать дополнение.

    5. Заполняем всё как на моем рисунке, жмем "Сохранить дополнение".
    [​IMG]
    6. Теперь в админке по сути у нас есть плагин, который включается и выключается. Идем дальше.
    Админка -> Разработка -> Обработчики событий -> Создать новый обработчик события.

    7. Заполняем всё как у меня на рисунке, сохраняем
    [​IMG]

    8. Создаем новый шаблон, называем его например "myphpcode", со следующим содержимым:
    Код:
    <xen:hook name="phpcode">
    </xen:hook>
    
    9. Нам остается только выбрать нужное место в нужном шаблоне (где мы и собираемся всё использовать), и вставить туда:
    Код:
    <xen:include template="myphpcode" />
    Готово! :)
     
    wilder123, vindeezel, alekslider и 10 другим нравится это.
  2. GeN4uk

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

    Регистрация:
    16.10.11
    Сообщения:
    10
    Симпатии:
    0
    При сохранении метода обработчика пишет введите корректное имя метода обработчика, что за ересь :(((
     
  3. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Имя файла (включая путь) с именем класса и именем функции должны соответствовать тому обработчику и его методу, которые прописываются в "Выполнить обработчик". Если нужный файл с определенными именами класса и функции отсутствует, то при сохранении как раз и выводится такое сообщение с ошибкой.
    Так что проверяйте, все ли делали "по учебнику". При этом нужно точно соблюсти все написания до буквы.
     
    FractalizeR нравится это.
  4. GeN4uk

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

    Регистрация:
    16.10.11
    Сообщения:
    10
    Симпатии:
    0
    Блин, ночью :sleep: в самом то коде названия не изменил ))) извеняюсь.
     
  5. lexikon

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

    Регистрация:
    11.10.11
    Сообщения:
    65
    Симпатии:
    24
    Версия XF:
    1.1.0 Final
    будут ли работать передачи GET запросов?
     
  6. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    В варианте из первого сообщения, нет.
     
  7. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    По-моему ты неправ, у меня был модуль стримов, который кажись так работал
     
  8. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Конечно я неправ.
    Особенно если учесть, что ваш пример не наследует контроллер ксена.
     
  9. lexikon

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

    Регистрация:
    11.10.11
    Сообщения:
    65
    Симпатии:
    24
    Версия XF:
    1.1.0 Final
    как тогда сделать чтобы поддерживались GET запросы? есть большой скрипт который хотелось бы встроить на страницу форума :)
     
  10. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
  11. lexikon

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

    Регистрация:
    11.10.11
    Сообщения:
    65
    Симпатии:
    24
    Версия XF:
    1.1.0 Final
    проверил данную статью...передача GET запросов работает в полной мере
     
  12. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Да вы что... Мб и пример покажете ?)
    Буквально пару строк :)
     
  13. lexikon

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

    Регистрация:
    11.10.11
    Сообщения:
    65
    Симпатии:
    24
    Версия XF:
    1.1.0 Final
    все делал по данной статье...за исключением того, что php-инклюд делал на странице отдельной, созданной с помощью дополнения ExtrenalPages....в данном случае у странице имеется постоянный адрес forum.ru/pages/example
    заинклюденный файл ловит в полной мере все GET запросы и обрабатывает без проблем их

    естественно заинклюденный php-файл где нить в шаблонах движка - вряд ли будет обрабатывать get...
     
  14. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Как-то всё неправильно)
    Почему не из контроллера ExtrenalPages данные в представление передаёте, а костыли сооружаете?
     
  15. duckmen

    duckmen Местный

    Регистрация:
    07.02.12
    Сообщения:
    12
    Симпатии:
    0
    Версия XF:
    1.1.1
    Некоторые пхп/хтмл можно за айфреймить без дополнений...
    <iframe src="http://ссылка на пых скинов" frameborder="0" scrolling="no" width="1250" height="700"></iframe>
    например...
     
  16. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    И отгрести на орехи от ПС
     
  17. duckmen

    duckmen Местный

    Регистрация:
    07.02.12
    Сообщения:
    12
    Симпатии:
    0
    Версия XF:
    1.1.1
    сделал все по инструкции...
    Нифига не получается заинклюдить ( в ExtrenalPages)...
     
  18. maksimkurb

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

    Регистрация:
    11.04.12
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.1
    У меня стоит шаблон uniform.
    Всё сделал по инструкции буква-в букву... У меня шаблон стал какой-то совсем другой:
    Картинка:
    http://img859.imageshack.us/img859/1015/111ch.png
     
  19. nmnbm

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

    Регистрация:
    27.03.12
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.1
    При добавление в шаблон у меня ничего не отображается.
     
  20. Alazar

    Alazar Новичок

    Регистрация:
    10.12.12
    Сообщения:
    13
    Симпатии:
    4
    Версия XF:
    1.1.3
    Как это сделать в версии 1.1.3? Ничего не получается...
     

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