Инструменты пользователя

Инструменты сайта


создание_и_изменение_шаблонов

Создание собственных шаблонов

Если вы хотите вставить целый блок HTML, а не простое значение, лучше создать свой собственный шаблон. Шаблоны обычно создаются в функции _install(). Они могут быть созданы следующим образом:

global $db;

$template = '<strong>{$hello_world}</strong>';

$insert_array = array(
    'title' => 'hello_world_template',
    'template' => $db->escape_string($template),
    'sid' => '-1',
    'version' => '',
    'dateline' => time()
);

$db->insert_query('templates', $insert_array);
Шаблон можно удалить в функции _uninstall() с помощью:
$db->delete_query("templates", "title = 'hello_world_template'");
Как только ваш плагин был установлен, вы должны теперь видеть шаблон, который вы создали в AdminCP по пути: Templates & Style > Templates > Global Templates Чтобы заменить переменную, вставленную в другой шаблон, пользовательским шаблоном, необходимо выполнить следующие действия из функции hook:
global $templates, $myVar;

$hello_world = 'foobar';
eval('$myVar  = "' . $templates->get('hello_world_template') . '";');
Обратите внимание, что $hello_world не обязательно должен быть глобальным, пока не указан в вашем пользовательском шаблоне. Если все работает правильно, то вы должны увидеть вверху вашей страницы следующее: <strong>hello_world</strong>

Редактирование шаблона

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

Изменение шаблонов для добавления переменной

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

require_once MYBB_ROOT."/inc/adminfunctions_templates.php";

find_replace_templatesets(
    "index",
    "#" . preg_quote('<body>') . "#i",
    '<body>{$myVar}'
);
Это вставит {$myVar} после <body> в index шаблона.

Важно убедиться, что строка, которую вы ищете, вряд ли изменится между шаблонами, иначе пользователям придется вручную редактировать свои шаблоны, чтобы вставить переменную, если строка не существует в их шаблоне.

Передача простых значений в шаблон

Глобальные переменные доступны из шаблонов, поэтому самый простой способ получить доступ к переменной в функции-обработчике из шаблона - сделать ее глобальной:

global $myVar;

$myVar = 'Hello World!';
Это вставит значение Hello World!, где переменная {$myVar} находится в шаблоне. $myVar может, конечно, быть любым значением, например, динамически сгенерированным или из запроса к базе данных.

Альтернативным решением является изменение существующей глобальной переменной, такой как $user. Например, можно вставить {$user ['favorite_colour']} в шаблон, а затем выполнить следующие действия в функции hook:

global $user;

$user['favorite_colour'] = 'Blue';
Vladimir 26.12.2018 17:19

создание_и_изменение_шаблонов.txt · Последние изменения: 26.12.2018 17:23 — vladimir