Окей. PHP: <?php public function LoadModule ($Module){ if (empty ($Module) || is_numeric ($Module)){ $Module = 'articles-list'; } $Path = MODULES_PATH . '/' . $Module . '/index.php'; # Динамический модуль if (is_file ($Path)){ $this->Template = 'content.html'; include_once ($Path); } else { # Статичная информация $this->Db->query('SELECT * FROM `' . TABLE_PAGES . '` WHERE `system` = ? LIMIT 1', array ($Module)); $Row = $this->Db->fetchOne(); if (count ($Row) > 0){ $Row['date'] = date('d.m.Y H:i:s', $Row['date']); $this->TPush ('GLOBAL_TITLE', $Row['name']); $this->TPush ('page_content', $Row); $this->Template = 'page.html'; $this->OneMoreView($Row['id']); return; } $this->Template = '404.html'; } } public function Controller(){ $URI = explode('/', $_SERVER['REQUEST_URI']); return $URI[BASE_URI]; } Вот как это запускается: PHP: <?php $Kate = new Kate; $Kate->Template = 'content.html'; $Kate->LoadModule ($Kate->Controller()); $Kate->DrawHTML();
Elkaz при верблюжьей записи 1я буква метода - маленькая. Тогда нахрен геморрой с базой? Заходишь и правишь файл ручками каждый раз. Можешь сделать небольшой редактор-формочку. Куда ты просто вводишь список слов, а потом скриптом вырезаешь блок и вставляешь с новыми словами.
пусть контроллер модуля пихает их в главный шаблон, если нужно Статичные страницы, тоже динамический модуль
PHP: <?php public function run($controller = null) { $this -> getController($file, $module, $controller, $action, $args); if (!is_readable($file)) { die('404: File not found'); } include $file; if ($controller == 'index') { $index = true; } $controller = $module . '_' . $controller; $controller = new $controller; if (isset($index)) { $this -> registry['modules'][modules::getIdByDir($module)]['object'] = $controller; } if (!is_callable(array($controller, $action))) { die('404: Action not found'); } else { $controller -> $action($args); } }
Ага, это я так хочу на бизнесс-уровень выйти У каждой страницы в браузере должны быть свои метатеги. Данные для каждой страницы берутся из базы, значит и теги в базе. Вот как грамотнее их хранить?
А что, если генерить метатеги будет шаблонизатор? Он же и так весь контент парсит - пускай и генерит наиболее актуальные метатеги. Если результат будет кешироваться - то вообще супер.
Это будет похоже на парсер сообщений SMF: каждое сообщение на выводе обрабатывается функцией в 2 тысячи строк. Тут, конечно, не 2000 тысячи строк, но не любитель я на выводе что-то считать.
Если я правильно помню, то Lenta.ru до сих пор вообще plain-html. неприкольно ни разу. У тебя метатеги привязаны к даным. вот и храни их вместе с данными. можешь в соседнем поле, а можешь прямо там же.
Почему не прикольно? Что я делаю сверхестественного? Метатеги - такая же составная часть страницы, как и остальной текст. Вот я и думаю, где их лучше размещать - в таблицах с контентом для конкретно этого раздела или сделать общую таблицу для всех разделов и там хранить разные параметры страниц, такие как метатеги.
Сам задаешь вопрос и сам отвечаешь Поэтому и не прикольно. Где ты хранишь текст? Вот ВМЕСТЕ с текстом и храни.
nimistar Страница - список чего? И что значит "постраничная страница"? Насколько я понимаю метатеги должны соответствовать контенту. Т.е. каждый отдельный кусок текста может иметь теги не совпадающие с любым другим. Если это куски объединенные чем-то, то у них будет 1-2-3 общих метатега или же все они будут иметь абсолютно одинаковые метатеги. Например. Статья о бытовой технике. 1я страница взагали и ссылки на конкретную технику - теги "бытовая техника" "утюги" "пылесосы" "миксеры" 2я страница (утюгов) - теги "бытовая техника" "утюги" 3я страница (пылесосов) - теги "бытовая техника" "пылесосы" 4я страница (миксеров) - теги "бытовая техника" "миксеры. При этом вполне возможен вариант, когда все 4ре страницы имеют абсолютно одинаковые теги как у 1й страницы без исключений.
Simpliest - я имел ввиду что есть страници которая например срдержет список ссылок на эти самые статьи ... то есть по сути страница не имеет единого прямого аналога в базе ... собирать теги по статьям ? ну ладно кейворд мы соберем а описание (description)?
Почему она не имеет аналога в базе? А как ты на нее попал? Каждая страница однозначно должна определятся ее URI к которому отлично привязывается description. Но страница агрегатор вряд ли будет обрабатываться тем же скриптом что и статичная Поэтому либо ты ее генерируешь динамикой, либо при построении sitemap - в любом случае получить теги/описание нет проблем.