Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Модульность приложения
Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014
Помог: 0 раз(а)
Всем добрый вечер. Есть к примеру у нас приложение MVC с модульной структурой. Модули добавляются/удаляются, но в ручном режиме. Не могу понять как организовать что-типа менеджера модулей в админке, к примеру установка(ну здесь вроде норм все), а вот как задавать им статус- активен/не активен с админки не допру. Про observer читал, но как на практике применить его в данном случае. Нормальных примеров тоже не нашел, может не там искал.
Есть идея при установке записывать данные модуля в БД, к примеру создать таблицу modules и в ней 2 столбца - name, active, и выбирать где active = 1 для автозагрузки(остальные не подгружать), но что то я сомневаюсь в правильности такого решения
Ch_chov
Отправлено: 15 Января, 2015 - 18:53:21
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
melomaniac пишет:
а вот как задавать им статус- активен/не активен с админки не допру
В базе табличку сделайте.
DelphinPRO
Отправлено: 15 Января, 2015 - 19:29:33
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
melomaniac пишет:
но что то я сомневаюсь в правильности такого решения
Посмотрите любую CMS
Обычно так и сделано
----- Чем больше узнаю, тем больше я не знаю.
melomaniac
Отправлено: 15 Января, 2015 - 21:03:07
Новичок
Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014
Помог: 0 раз(а)
Понял, огромное спасибо
GoDr
Отправлено: 17 Января, 2015 - 11:06:20
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
Ну я для себя пришёл к такому решению.
Есть модуль с такой структурой
mod_qqq - папка с дополнительными скриптами, картинками и всё что нужно модулю
mod_qqq.php - сам модуль
mod_qqq.ini - файл настроек при установке, удалении, значений по умолчанию и т.п.
Есть два варианта.
1. Установка модулю через панель управления. Соответственно при установке все настройки по умолчанию запишутся в таблицу модулей.
2. Я просто тупо копирую файлы в папку с модулями. И при запросе модулей если в таблице нет данных, то они создаются автоматом как-будто я его устанавливаю
Из сказанного получаем такую таблицу: id - Идентификатор модуля. Очень помогает. когда существует несколько копий модуля, а нужно применить индивидуальный стиль к конкретному. Что-то типа такого
title - Название модуля. На русском чтобы в панели управления понимать что это вообще
module - Название модуля. Тут простое название модуля на [09a-z_]. Обычно это название файл модуля
ordering - Порядок сортировки модуля. Например, модуль "Самое интересное из категории". И модули идут один за другим. Вот и нужно определить в каком порядке всё таки лучше их показывать
position - Привязка модуля к позициям в шаблоне сайта. Тут всё понятно. есть шаблон сайта и мы определяем в какой позиции сайта выводить данный модуль
published - Статус активен/неактивен
access - права для просмотра модуля. Т.е. кому разрешается показывать этот модуль: администратору, модератору, пользователю, гостю, всем...
params - настройки модуля. Сами настройки модуля. Обычно в формате key=param\nkey=param\nkey=param
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.