m33_nft
Новичок
Добрый день. Пишу cms. Метался между шаблонизаторами, Smarty/ Twig . Т.к. опыта их использования вообще ноль, и по сути являясь автором быдлокода попал в просак. Остановился на Smarty , т.к. больше гораздо русской документации.
Вообщем особенность Cms такая :Архитектура (приложен скрин)
Все основные функции (Работа с файлами, базой данных , правами/сессиями и т.п. ) Реализованы в папке system и подгружаются автоматически, при "запуске" приложения.
Также существует файл system_route который подгружает модуль , в зависимости от "надобности",
тобишь :
www.site.ru/news - подгружается модуль news и если больше нет параметров то вызывается метод Index(constuct).
www.site.ru/news/show/2 - подгружается подуль news, метод show с параметром 2 и т.п. с другими модулями.
Вообщем теперь я решил , что пора этому делу сделать морду.
system_template_engine.php
Хотелось бы видеть на главной странице например вывод новостей, не прибегая к ссылке /news/***/** , но в тоже время, чтобы и существующий функционал сохранялся. И всё это красиво подавалось.
Я пошел слудующим путём .
/module/news/news.php
соответсвенно ничего не передается, и на главной странице косяк. в виде Notice: Undefined index: news in путь.
Прошу внести ясность в этом вопросе, или ткнуть на ссылку где описывается работа смарти в замороченных условиях. =)
Прошу сильно не критиковать, т.к. вообще не работал с шаблонизаторами.. Если понадобится скину весь код. Спасибо
Вообщем особенность Cms такая :Архитектура (приложен скрин)
Все основные функции (Работа с файлами, базой данных , правами/сессиями и т.п. ) Реализованы в папке system и подгружаются автоматически, при "запуске" приложения.
Также существует файл system_route который подгружает модуль , в зависимости от "надобности",
тобишь :
www.site.ru/news - подгружается модуль news и если больше нет параметров то вызывается метод Index(constuct).
www.site.ru/news/show/2 - подгружается подуль news, метод show с параметром 2 и т.п. с другими модулями.
Вообщем теперь я решил , что пора этому делу сделать морду.
system_template_engine.php
PHP:
class ApplicationTemplateEngine extends Application
{
function __construct() {
// ГЛОБАЛЬНЫМ ОБЬЕКТ СМАРТИ
$TemplateEngine = new Smarty();
$TemplateEngine->template_dir = __APPTHEMEDIR.'/default/';
$TemplateEngine->compile_dir = __APPTHEMEDIR.'/cache/compiled/';
$TemplateEngine->config_dir = __APPFILES.'/configuration/';
$TemplateEngine->cache_dir = __APPTHEMEDIR.'/cache/';
$site_name = "Супер сайт";
$TemplateEngine->assign ('site_name',$site_name);
$TemplateEngine->display ('layout.tpl');
}
}
Я пошел слудующим путём .
/module/news/news.php
PHP:
function index()
{
// $news=mysql_query("SELECT * FROM `module_news`");
$result = ApplicationDatabase::qry("SELECT * FROM `module_news` where `news_status`=0 ORDER by news_date desc" );
if (!$result)
{
exit ("Проверь настройки БД");
}
if (mysql_num_rows($result) == 0 )
{
exit ("Статей нет");
}
for ($i=0; $i < mysql_num_rows($result);$i++)
{
$news[] = mysql_fetch_array($result,MYSQL_ASSOC);
}
print_r($news);
Smarty::assign ('news',$news);
}
Прошу внести ясность в этом вопросе, или ткнуть на ссылку где описывается работа смарти в замороченных условиях. =)
Прошу сильно не критиковать, т.к. вообще не работал с шаблонизаторами.. Если понадобится скину весь код. Спасибо
Вложения
-
44,9 KB Просмотры: 7