Отличная инструкция для новичков. Спасибо.
Далее немного комментариев
По шагу 5:
- Начисления и выплаты, возможно было бы логичнее разместить в одной таблице, а суммы даже в одной колоноке (просто с разным знаком). Это позволит, во-первых, делать меньше запросов к БД, а во-второых, некоторые расчеты осуществлять силами SQL и самой БД.
По шагу 6:
- Да, отдельные шаблоны как правило удобнее для поддержки. Тем не менее, особенно если плагин не большой, можно иметь один шаблон с несколькими блоками:
<!-- BEGIN: ADD_USER -->
…
<!-- END: ADD_USER -->
<!-- BEGIN: EDIT_USER -->
…
<!-- END: EDIT_USER -->
…
и при выводе парсить нужный блок.
- Вызов шаблона лучше осуществлять таким образом:
$t_salas= new XTemplate(cot_tplfile(array('salazarp', $mode), 'plug'));
где в переменной `$mode` у нас находится название текущей страницы (режима в котором работает плагин). См. об этом подробнее в комментарии к шагу 8.
- Если мы работает с блоком `MAIN`, его название можно опускать. Кроме этого вызовы функций шаблонизатора можно увязывать в цепочку:
$plugin_body = $t_salas->parse()->text();
(не забываем сделать парсинг нужного блока перед выводом)
- По шаблонам, логика такая (если код шаблона вызывается по хуку `standalone`) — если определен шаблон `имя_плагина.php` или `plugin.имя_плагина.php`, то он будет загружен автоматически в переменную `$t` (тогда можно использовать вариант с несколькими блоками, см. выше. Блок `MAIN` будет обработан автоматически). Иначе грузится стандартный шаблон `plugin.php` (обычно находится в папке с темой оформления).
Если хочется использовать свой (например отдельный для кождого раздела), то есть 2 варианта:
а). загрузить шаблон в отдельную переменную (как описано у тебя) и потом делать вывод в переменную `$plugin_body`.
б). грузить свой шаблон «напрямую», переопределяя переменную `$t`. (В таком случае блок `MAIN` будет обработан автоматически).
- Кеширование шаблонов зависит от разных параметров. И в большинствеслучаев страницы обновляются при изменении шаблона.
- Если все же кеширование надо отключить — не надо отключать всю систему кеширования `$cfg['cache'] `. Достаточно сделать это только для $cfg['xtpl_cache']. Более того для тестовых целей можно использовать параметры инициализации шаблонизатора, не отключая кеширование на всем сайте:
if ($cfg['debug_mode']) XTemplate::init(array('cache' => false )); // временно отключаем
$plug_tpl = new XTemplate(…); // инициализируем наш шаблон
XTemplate::init(array( 'cache' => $cfg['xtpl_cache'] )); // возвращаем значения заданные для сайта
По шагу 8:
- переменная «s» в некоторых модулях используется системой для переключения режима сортировки выводимой информации. Поэтому, чтобы не было путаницы лучше изменить на что-то другое. И лучще если это будет более осмысленное название, например «mode».
- Строку 4 с проверкой на не пустое значение для большей безопасности лучше дополнить проверкой на допустимые значения — `&& in_array('addsotr', 'outsotr', …)`
- В фрейморке уже есть некоторый код облегчающий загрузку частей кода в зависимости от выбранного режима. Если файлы `salazarp.addsotr.php` и прочие `salazarp.*.php` расположить в папке `/inc` своего расшрирения, то вызов нужной (строка 6) сведется к следующему:
require_once cot_incfile('page', 'plug', $mode);
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F