|
|
|
| я знаю, что тема баян, но все же...
думаю над тем как вообще подключать и отключать из системы модулит.е. на прямую мне кажется не совсем оптимально, кто какими способами пользуется посоветуйте!
пока я вижу что должна быть отдельная таблица для модулей, при прослушивании GET запроса идет обращение к ней и если ок, подключаем нужный модуль.
Тогда всплывает встречный вопрос а как заносить, т.е. инсталлировать данный модуль, т.е. добавлять запись в таблицу модуля и делать дамп таблиц самого модуля?
единственное я пока вижу это в сам скрипт модуля добавить такую функцию. | |
|
|
|
|
|
|
|
для: Bvz
(13.11.2009 в 12:45)
| | >пока я вижу что должна быть отдельная таблица для модулей, при прослушивании GET запроса идет обращение к ней и если ок, подключаем нужный модуль.
У меня тоже так. Все модули - в отдельной таблице. В этой таблице есть поле visible, если visible=0 - модуль отключен, если visible = 1 - модуль подключен.
Как устанавливаются значения visible. В панели администрирования есть страница "Модули". На ней - список всех модулей + напротив них чекбоксы. Отметили чекбокс - таблица модулей обновляется, данные заносятся в базу и у тех, что отметили чекбокс visible =1.
Как формируется список модулей на этой странице.
Есть каталог modules, в нем для каждого модуля - свой каталог. В каждом каталоге модуля есть файл descr.txt, в нем такая строка, например: Авторизация#Система авторизации для пользователей сайта. Т.е. название + описание.
Есть скрипт в ядре, который при загрузке системы сразу же и подключается. Этот скрипт автоматом проходится по каталогу modules, заходит в каждый каталог модуля и парсит в нем файл descr.txt. Название + описание каждого нового модуля автоматом помещаются в базу(причем перед этим надо проверить: если есть модуль в базе, данные о нем уже не пишутся).
Далее названия модулей выбираются на страницу "Модули" в панели администрирования, где нужно отметить чекбокс.
Смысл в чем: бросили папку с модулем в каталог modules, и данные о нем автоматом попадают базу. Плюс еще после подключения модуля устанавливаем для него права для разных групп пользователей. Ну это еще дольше рассказывать :) У меня тема была здесь, где права распределялись.
Я сделала как проще, в принципе работает, не жалуюсь, может, кто-то расскажет о более сложном решении. | |
|
|
|
|
|
|
|
для: Лена
(13.11.2009 в 23:50)
| | Почему бы вам не сделать в админке форму и скрипт добавления модулей?
Добавляете через форму, в бд сразу заносите запись об этом модуле.
И не надо рыскать по каталогам, парсить что-то и тд. | |
|
|
|
|
|
|
|
для: neadekvat
(14.11.2009 в 01:51)
| | согласен каждый раз парсить не совсем удобно, нужно единожды устаносить а потом управлять через админку, спасибо, Joomla что-то подобное есть только там xml используется вместо txt
в нем и прописан синтаксиси и дамп таблиц присутствует.
я бы сделал типа функции инсталлятора, которая переносит скрипт в определенный каталог, потом читает файл в настройками, пусть тот же txt, оттуда берет инструкции что надо сделать и данные модуля, и потом выполняет их, например создает новые каталоги и переносити файлу в нужные папки и потом делает экспорт дампов таблиц и заносит данные в таблицу модулей.
а как парсятся txt файлы? | |
|
|
|
|
|
|
|
для: Bvz
(14.11.2009 в 06:41)
| | Читаете файл (первую строку, в которой хранятся настройки), разбиваете на массив (разделитель - #), и вы уж знаете, я думаю, что у вас там будет нулевым индексом, что первым и тд | |
|
|
|
|
|
|
|
для: neadekvat
(14.11.2009 в 12:40)
| | а какими функциями читать? и как информация в текстовом файле организуется? | |
|
|
|
|
|
|
|
для: neadekvat
(14.11.2009 в 01:51)
| | >Почему бы вам не сделать в админке форму и скрипт добавления модулей?
У меня через форму добавляются меню, страницы, области, блоки и т.д. Разнообразия захотелось :) | |
|
|
|
|
|
|
|
для: Лена
(14.11.2009 в 15:53)
| | Разнообразие - это хорошо, конечно, но по-моему, в движке главное надежность и скорость работы. Но дело хозяйское, чего ж тут спорить :) | |
|
|
|