- Автор темы
- Заблокирован
- #1
Обратите внимание, если вы планируете совершить сделку с этим пользователем, он заблокирован.
В Xenforo 1.2 появился новый тег <xen:callback>. Это позволяет вызывать код напрямую из шаблона.
К примеру, нам нужно выполнить banner.php и результат вывести в шаблон.
1) Сначала создаем index.php в папке /library/Example/Banner
2) Затем создаем banner.php
3) Добавляем в шаблон ad_above_top_breadcrumb
HTML:
Для вызова можно применять более широкий синтаксис:
PHP:
Тогда в шаблоне вызов должен быть следующий:
HTML:
В этом случае применяем это так:
PHP:
Данная статья является компиляцией следующих материалов:
Код:
К примеру, нам нужно выполнить 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;
}
}
?>
Код:
<?php
$output = 'Hello World';
?>
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