В прошлой заметке я написал, что это за константы в phpBB и в чем их прелесть. Сегодня о том как их сделать и использовать. В качестве примера возьмем задачу вывода ников нескольких случайных пользователей в виде маркированного списка на главную форума на phpBB.

1. Как использовать константы в шаблоне phpBB.
Назовем константу {MY_LIST} . Использование простое – вставляем в нужное место шаблона. В нашем случае это [cc lang=”php”]\styles\prosilver\template\index_body.html[/cc]. Просто вписываете {MY_LIST} там где нужен вывод списка.

2. Определяем константу.
Открываем файл [cc lang=”php”]\includes\functions_display.php[/cc] , находим функцию
function display_forums(…) и где нибудь в её конце, перед return array($active_forum_ary, array()); вписываем:

[cc lang=”php”]$template->assign_vars(array(
‘ MY_LIST ‘ => azzrael_my_list(),
)); [/cc]

Важное дополнение. Константа определенная в этом файле в этой функции будет доступна в шаблоне только выводящим список форумов. Если нужно определить константы на всем форуме, то лучше определять их в
[cc lang=”php”]\includes\session.php[/cc]
в конце функции setup()

3. Пишем функцию для вывода в константе.
В принципе тут можно обойтись и без шаблона, запихать в эту функцию вывод полностью. Тогда всё будет работать, но идея не в этом. Идея абстрагировании кода от дизайна. Поэтому нам понадобится шаблон для вывода нашей функции. Для это создадим пока пустой файлик [cc lang=”php”]\styles\prosilver\template\azzrael_my_list.html[/cc] . Мы его будем использовать в функции azzrael_my_list() , которую определяем в том же файле [cc lang=”php”]\includes\functions_display.php[/cc] ( например ).

[cc lang=”php”]function azzrael_my_list() {

/*

… тут какой то код который собирает ники пользователей …

*/

/*
далее идет код, который определеяет цикл констант для использования
в нашем шаблоне azzrael_my_list.html
*/

foreach( $out as $row )
{

$template->assign_block_vars(‘azzmylist’, array(
‘USERNAME_FULL’ => $row[‘USERNAME_FULL’],
‘U_VIEW_PROFILE’ => $row[‘U_VIEW_PROFILE’],
));
}

/*
А тут мы определяем какой файл мы будем использовать
в качестве шаблона
*/

$template->set_filenames(array(
‘body’ => ‘azzrael_my_list.html ‘
));

return $template->assign_display(‘body’);
}[/cc]

4. Ну и пишем шаблон для функции в файле azzrael_my_list.html.

[cc lang=”html”]

[/cc]

Вот и всё. Очень удобно и практично.

6 апреля 2011 |

Уже есть один комментарий к “Свои константы в phpBB. Практика.”

  1. SEOforum 4 ноября, 2011

    Спасибо, помогло!

    Где бы еще список констант раздобыть?

Есть что сказать по теме статьи? Пожалуйста - пишите!