• Добро пожаловать на сайт - Forumteam.wiki !

    Что бы просматривать темы форума необходимо зарегестрироваться или войти в свой аккаунт.

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

Использование <xen:callback /> для выполнения произвольного кода в шаблоне

Nokia. Sergeevich

Опытный
Опытный
Регистрация
12.12.18
Сообщения
220
Реакции
84
Баллы
420
FTC
  • Автор темы
  • Заблокирован
  • #1
Обратите внимание, если вы планируете совершить сделку с этим пользователем, он заблокирован.
В Xenforo 1.2 появился новый тег <xen:callback>. Это позволяет вызывать код напрямую из шаблона.

К примеру, нам нужно выполнить banner.php и результат вывести в шаблон.

1) Сначала создаем index.php в папке /library/Example/Banner

Код:
<?php
class Example_Banner_index {
public static function getHtml() {
include '/home/path_to_file/www/banner.php';
return $output;
}
}
?>
2) Затем создаем banner.php

Код:
<?php
$output = 'Hello World';
?>
3) Добавляем в шаблон ad_above_top_breadcrumb
HTML:
Код:
<xen:callback class="Example_Banner_index" method="getHtml"></xen:callback>
Для вызова можно применять более широкий синтаксис:
PHP:
Код:
public static function getHtml($content, $params, XenForo_Template_Abstract $template){
Тогда в шаблоне вызов должен быть следующий:
HTML:
Код:
<xen:callback class="Example_Banner_index" method="getHtml" params="{xen:array 'foo=baz'}">content</xen:callback>
В этом случае применяем это так:
PHP:
Код:
<?php

class Example_Banner_index{

public static function getHtml($content, $params, \XenForo_Template_Abstract $template){
$return = '';

$return .= 'passed content : ' . $content ."<br >";
$return .= 'passed params : ' . var_dump($params);
// you can even attach a existing template to the output
$templateParams = array();
$t = $template->create('template', $templateParams);
$return .= $t;
return $return;
}
}
Данная статья является компиляцией следующих материалов:
Код:
Код:
http://xenforo.com/community/threads/xen-callback-tag.53824/
http://xenforo.com/community/threads/provide-the-ability-to-call-a-php-file-directly-from-template.47825/#post-566508
 
  • Лайк
Реакции: Rosi
Сверху Снизу