Здравствуйте. Как в большинстве CMS реализована структура, которая позволяет дополнять систему модулями? Интересует алгоритм, или может существуют готовые паттерны?
PHP: <? function __autoload($class_name) { $path = './modules/'.$class_name.'.inc.php'; if (file_exists($path) && is_readable($path)) { include($path); } } PHP: <? if(isset($_GET['run']) && check_module($_GET['run'])) { $object = new $_GET['run']; } else { $m = cfg::PRIMARY_MODULE; $object = new $m; } // Запуск модуля $spirit -> run($object);
[vs] is_readable() сам по себе проверяет файл на существование ТС имхо хотел узнать про возможность подключить несколько модулей одновременно, а не подгрузить из класса контент страницы
ну, вот и выведи мне тогда с помощью указанного выше кода на странице последние новости, рамдомную фотку, топовый товар, где всё перечисленное — методы соответствующих модулей
В основном классе модуля news: PHP: <? public $header = 'top'; public $alboom_random_photo = 'right'; public $mainmenu = 'left'; public $top_sale = 'left'; public $footer = 'bottom'; что такое хеадер, альбом_случаный_фотография и верх_продажи движок узнает из специальной сигнатуры.
Mr.M.I.T. Это примерно как здесь. CMS'ка такая для однотипных сайтов. По логике - если дофига сайтов строятся таблицей, почему бы не зашить её в движок? =) В движке Xoops2 тоже в систему заложено позиционирование блоков по точкам лево-лево_центр-центр-право_центр-право, тока там под каждый блок таблица генерится.
всё-таки, модульность подразумевает не только создание галереи, но и интеграцию её в весь сайт. Могу согласится и заткнуться, если кто-нибудь скажет, что шаблон страницы точно так же, как и URI могут управлять поведением модуля
Где ты в моем примере увидел шаблон? Там создается обект запрошеного по URI модуля и передается методу run класса spirit, который дерагет из него заданые интерфейсом методы. Модуль сам определяет, что будет отображено на странице.
Эхх, наверное поэтому мой любимый xoops2 практически помер... дивный дизайн там фиг сверстаешь... Надо бы взять и написать мега-супер-пупер-cms South CMS. ;-)
хм, как бы объяснить. Возьмём сферического коня |-------------------------------| | $left | $center | $right | |-------------------------------| за $center отвечает тот же $_GET['run'] из примера [vs] а в $left и $right — всякие рандомные фотки, календари и т.д., причём в зависимости от основного модуля содержание $left и $right может меняться. А теперь вопрос: где должна быть информация о содержимом боковых разделов для конкретного модуля? Причём набор доступных модулей от сайта к сайту может разниться.
из говнодвижка? Компот кончай тупить, модуль совать в шаблон может, шаблон сам дёргать может, обёртка по урлу дёргать может, вариантов докуя
[vs] чё идею подкинул? а чё будешь всем говорить мой суперМегаДвиСок не использует никаких там html! =)) Компот урл ничем не уплавляет шаблон это вообще абстракция вопрос твой, имеет сотню решений, по кой ты спрашивал если знаешь?