Создание своей PHP CMS на основе модулей и шаблонов Часть 2.2 — Ядро

Своя php cms, Own php cmsОчередную статью посвящённую созданию своей веб системе я решил посвятить файлу view.php. Данный файл получает данные из его соответствующей модели (соответствующую модель определяем в контроллере «controller.php») и осуществляет вывод отображения модуля. Иными словами выводит информационную часть из модуля. То что видит конечный пользователь.

Если не выбран ни один модуль (нет переменной $_GET[‘a’]) то подключается модуль по умолчанию. У меня это модуль с названием default.

 

Далее у нас будет предусмотрена возможность подключать шаблон вывода модуля (view) из шаблона сайта, или админ панели нашей, в зависимости от того откуда произведён вызов модуля.

Ниже приведен листинг всего файла view.php:


if (isset($_GET['a'])){

$a = htmlspecialchars ( trim ( $_GET ['a'] ) );

$view = htmlspecialchars(trim($APPLICATION->view_name));

}else {

$a = 'default';

$view = 'default';

}

$folder = basename(getcwd());

if ($folder=='panel'):

$folder='/panel';

$custom_view = $_SETTINGS['doc_dir'].$folder.'/themes/'.$_SETTINGS['admin_theme'].'/modules/'.$a.'/views/'.$view.'.php';

else:

$folder='' ;

$custom_view = $_SETTINGS['doc_dir'].$folder.'/themes/'.$APPLICATION->choose_theme().'/modules/'.$a.'/views/'.$view.'.php';

endif;

$work_folder = $_SETTINGS['doc_dir'].$folder.'/modules/'.$a.'/views/'.$view.'.php';

$default_work_folder = $_SETTINGS['doc_dir'].$folder.'/modules/default/views/'.$view.'.php';

if (file_exists($custom_view)):

include $custom_view;

elseif (file_exists($work_folder)):

include $work_folder;

elseif (file_exists($default_work_folder)):

include $default_work_folder;

else:

echo MODULE_NOT_FOUND;

endif;

Как я уже писал выше, в этом коде мы проверяем есть ли файл отображения в модуля, в шаблоне сайта или админ панели. Если такового нет то подключаем модуль отображения находящийся в самой папочке модуля.

$APPLICATION->choose_theme() — этот  метод осуществляет выборку и возврат текущей активной темы для сайта.

Если же мы выполнили вызов этого файла из админ панели, то название темы берётся из $_SETTINGS[‘admin_theme’], который в свою очередь прописан в файле conf.php.

Исходные коды можно скачать тут

 

2 Ответы на “Создание своей PHP CMS на основе модулей и шаблонов Часть 2.2 — Ядро”

Добавить комментарий для Ислам Отменить ответ