Форумы » MPCHAT - CMS хостинг чатов для профессионалов »

НОВЫЙ обработчик шаблонов и скриптов



19590
Dimitry
[b]НОВЫЙ обработчик шаблонов и скриптов[/b]

[b]Описание работы шаблонизатора[/b]

Шаблонизатор теперь подгружается автоматически для всех скриптов, ранее это делала фнукция putinclude(). Система проверяет название модуля, берёт из переменной в [b]/?inc=module[/b] или берёт из ссылки [b]/module[/b]. Если есть PHP модуль [b]module.php[/b] то загружает его + в конце подгружает [b]module.inc[/b], если нет, то сразу загружает [b]module.inc[/b], если и его нет то [b]module.html[/b] (устаревшее). Модуль по умолчанию - титульная страница [b]index.inc[/b].

[color=blue]НОВОЕ[/color]: Если модуль или шаблон не найден, то будет подгружена 404 страница [b]error.inc[/b] c ошибкой "404 - Страница не найдена".

[color=blue]НОВОЕ[/color]: Теперь можно в любых php модулях использовать [b]массив переменных $var[/b] который автоматически подгружается и подставляет переменные в шаблон. Но это конечно же не всё, также теперь можно подгружать [b]PHP функции[/b] которые будут автоматически вставляться в шаблон.

[color=blue]НОВОЕ[/color]: Все системные функции размещаются в файле [b]functions.php[/b] и его нельзя изменять. Чтобы добавить свои функции, просто создайте свой новый файл [b][color=blue]myfunctions.php[/color][/b] в папке рядом с файлом index.php. Этот файл автоматически подгружается в систему и его функции доступны везде. По аналогии с include, все функции могут принимать только 1 входящий параметр. Например: [b]%myinfo=name%[/b] запустит функцию [b]_myinfo('name');[/b] - которая может выводить имя авторизованного пользователя. Пример:
[quote]function _myinfo($var) {
global $u;
if( $u && !in_array($var, ['id','nick','name']) ) return ""; //security
return $u[$var];
}[/quote]

[b]Системные функции[/b]

Некоторые функции шаблонизатора уже готовы по умолчанию, ниже описание:

1. [b]%year%[/b] - запускает функцию _year() и выдаёт текущий год.

2. [b]%loadtime%[/b] - запускает функцию _loadtime() и выдаёт время загрузки PHP скрипта.

3. [b]%include=file.html%[/b] - запускает функцию _include($file) и вставляет HTML шаблон в нужное место страницы. Например чтобы подгружать шапку и подвал сайта можно использовать: %include=header.html% и %include=footer.html%

Пример простейшей функции _year():
[quote]function [b]_year()[/b] {
$html=date("Y");
return $html;
}[/quote]

[b]Исправления для тех кто использует свои [color=red]PHP модули[/color] или редактирует их под себя[/b]

1. Необходимо провести важные изменения чтобы чат оставался рабочим в будущем. Если в вашем файле в самом низу есть функция [b]putinclude[/b], её необходимо удалить. Кроме этого входящие в неё параметры должны быть определены переменными [b]$script и $vars[/b]. Если не знаете как это сделать, скачайте новый стандартный файл и посмотрите в самом низу.
2. Позже планируется убрать отдельную обработку переменной $script. Она будет добавлена в массив $var.
3. Из всех PHP скриптов удалён код с loadtime выводящий время загрузки страницы. Теперь можно использовать просто %loadtime% в любом шаблоне.


[color=red]Скоро допишу тут описание нового шаблонизатора....[/color]
81
Sloopy
Понял, выполняем)

Ждем новый шаблонизатор))))
19590
Dimitry
[quote=mgaLadon2019]Не пойму а это где в каком файле [color=red] $script и $vars.[/color][/quote]
Это в самом низу php модулей, если скачал из движка и используешь свои.
Оно есть не во всех файлах, но вот в тех что сегодня редактировал есть.
414
DjValek
когда работаешь с шаблонизатором, то неплохо было чтоб старая версия сохранялась чата, на случай неудачных стилей и прочего! ето я для новеньких
19590
Dimitry
Добавил описание [b]Системные функции[/b] теперь там 3 шаблонные функции, смотреть выше. Кроме этого из всех PHP скриптов удалил loadtime переменную, либо заменил на 0 чтобы не вылезали JS ошибки в шаблоне. Везде можно просто использовать %loadtime%.

[b]DjValek[/b] думал об этом, пока не придумал как лучше сделать, шаблоны занимают не много места, можно было бы резервные копии копировать в папку.

Неавторизованные и новички не могут отправлять сообщения.

© 2008-2022 Vmeste.eu
Контакты | Privacy и Cookie | Правила | О компании