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

Передача данных из php в шаблон

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Gambit, 15.04.2015.

Загрузка
  1. Gambit

    Gambit Новичок

    Регистрация:
    15.04.15
    Сообщения:
    6
    Симпатии:
    0
    Версия XF:
    1.4.5
    Доброго времени суток, как реализуется динамическая передача данных в шаблон?
    Например, есть шаблон, который содержит переменную, например, {xen:raw $panel}
    Есть php файл, функция в котором генерирует html код, например, $panel = '<div class="panel">Text</div>'
    Как правильно передать эти данные в шаблон в переменную?
    --- добавлено : Apr 15, 2015 9:54 AM ---
    Отлично, пока писал вопрос, сам себе на него и ответил
    Всё просто: Для динамической генерации кода я использую свою модель:

    PHP:
    class My_Model_myModel extends XenForo_Model
    {
        public function 
    getHtml ()
        {
            
    $html '<h3 id="MyBar">Text</div></h3>';
            return 
    $html;
        }
    }
    А при отслеживании хука, где вывожу свой шаблон, добавляю переменную к параметрам:
    PHP:
    class My_Listener {
    public static function 
    template_profile($hookName, &$contents, array $hookParamsXenForo_Template_Abstract $template)
    {if (
    $hookName == 'My')
    {
        
    $paths XenForo_Application::get('requestPaths');
        
    $params $template->getParams();
        
    $panel XenForo_Model::create('My_Model_myModel')->getHtml();
        
    $params += array('panel' => $panel);
        
    $mergedParams array_merge($params$hookParams);
        
    $MyTemplate $template->create('My'$mergedParams);
        
    $rendered $MyTemplate->render();
        
    $contents .= $rendered;
      }
     
    Последнее редактирование модератором: 23.04.2015
  2. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Использование шаблонных хуков не рекомендуется. Им на смену пришли модификации шаблонов. Хотя, я думаю, во всей 1.х ветке они останутся и их вполне можно использовать. На двойку все равно много переписывать придется, скорее всего. Шаблонные хуки не самое страшное.

    Для передачи дополнительных переменных в шаблон можно расширить класс соответствующего контроллера или связанного View и модифицировать массив параметров.

    Сырой HTML вообще лучше не передавать в шаблоны. Лучше сделайте нормальный шаблон, который отрисовывает данные, которые вам нужны.
     
  3. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Я бы даже сказал что переписывать вообще все придется, учитывая что именно они хотят допилить во второй линейке (внутренности будет очень и очень другие)
     
  4. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Да, я тоже так думаю. Архитектуру линейки 1.х на текущий момент можно считать почти полностью устаревшей.
     

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