Собственно вопрос... как сделать CMS модульную? или как она там правильно называется... Суть: Есть папка modules в нее будут складываться файлы с дополнениями к CMS при этом они должны использовать саму систему и вызываться из корня сайта... В даминке должна быть кнопочка типа вкл/выкл, настроки там и т.д... Но как все это организовать я даже на русском не понимаю ( ОБъясните или пните в правильном направлении... что-то я по яндексу побегал, но ничгео толкового не нашел
Nemo -есть модель MVC... это раз -никогда не делал и не видел... но думаю движок сперва надо для управления модулями, а не просто include, чтобы он тебе сразу мочил есил будет ошибка ну и всё такое... -ну если н движок то какаято стандартность... если никак не придумаешь, начни делать все как обычно, но по стандартам, имеется в виду, называй все по стандартному, например шаблоны там tpl потом название где используется потму поараметрыы, будешь делеть делать - глядишь и некоторые вещи общяковые вырисовываются, просто это лучше замечать когда делаешь сразу всё стандартизированно...
Nemo, ну например: 1. Все запросы перехватываются одним файлом. 2. Этот файл инициализирует все нужные постоянно объекты, в нем же живет автолоад. 3. Затем он анализирует URL и ищет, что он таки должен выдать. 4. Подгружает файл модуля, на данном этапе доступно все что есть в ядре в полном объеме. или 1. Есть несколько файлов до которых можно достучаться изначально. 2. В самом начале каждого из них reqire_once('megastarter.php'); 3. В megastarter.php объявляем все функции, проверяем все что нужно проверить и т.д. 4. Дальше в твоем модуле доступно все что есть в ядре в полном объеме. Ну и так далее. P.S. второй вариант чуточку легче изначально но по мере роста проекта сложность поддержки возрастает по экспоненте
Я не знаю что это такое )) Поэтому мне не гразит А можно ли как-то присвоить переменной результат работы другого файла??? но и саму переменную вывусти где надо ) что-то типа $main = include ('1.php');
PHP: <? ################### # Тут всякие конфигурации, инициализация системы и тд ################### /* $moduls и $activ_moduls формируются автоматом, например из БД */ $moduls=array("search"=>"Поиск","freeback"=>"Обр. Связь"); $activ_moduls=array("search"); $act=$_GET['act']; if ($moduls[$act] && in_array($act,$activ_moduls)) { print "Мы в ".$moduls[$act]; include "moduls/".$act.".php"; } ?>
ну да, хочешь чтобы я такое написал PHP: <? include "header.php"; // бла бла бла include "footer.php"; ?> ? нормальный код
хмм, не поверишь, у меня больше нет идей на этот счёт =) как ещё можно это реализовать? (можно конечно вообще убрать $activ_moduls, больше идей точно нет)
Я так вижу модульность: 1. В базе данных есть таблица с модулями, статус которых проверяется при сборке страницы 2. В главном шаблоне есть место под вывод модуля Таким образом, при установке модуля мы ставим шаблон, контроллер модуля и делаем записи в базу (добавляем в таблицу модулей и включаем показ). Если модуль является разделом, то можно в ЦМС сделать таблицу, в которой хранятся шаблоны УРЛ и файлы, отвечающие за работу модуля.
Kreker это плагины ИМХО у меня в двиге для этого есть объект plugins который вставляется в шаблон и отуда уже вызываются методы (если нужно)
Модуль - это элемент конструкции. Плагин - механизм для работы элемента. Если бы все модули подключались копанием в двиге, а не установкой через админку, то сайты бы с нуля все разрабатывались.
Kreker у меня наверное проблемы с формулировками взять например поиск,авторизацию и облако тегов что здесь будет модулями а что плагинами?
Nemo с самого создания слежу за топиком мог бы тоже предложить множество советов но реальный ответ дал был тебе сразу: добавлю лишь, что несколько шопов/CMS.. действительно вариантов множество
тшшш... ща дагдамор прибежит, и будет тебя убеждать, что иметь константу PhpcPreloadPlugins($string) - круто %)