Посоветуйте как сделать.

Статус
В этой теме нельзя размещать новые ответы.

avgaz

Участник
Регистрация
18 Окт 2006
Сообщения
189
Реакции
7
В общем есть CMS суть в следующем для установки к ней дополнительных модулей нужно каждый раз в файле index модули прописывать добавлять название этого модуля для его открытия.
Вот часть код файла index где нужно прописывать
PHP:
$switch = array('blog'         =>   "blog",
                'chat'         =>   "chat",
                'contents'     =>   "contents",
                'downloads'    =>   "downloads",
                'gallery'      =>   "gallery",
                'news'         =>   "news",
                'quote'        =>   "quote",
                'reviews'      =>   "reviews",
                'search'       =>   "search",
                'topsite'      =>   "topsite",
                'urlobox'      =>   "urlobox",
                'poll'      =>   "poll",
                'contact'      =>   "contact",
                'recommend'      =>   "recommend",
        'staff'        =>   "staff",
        'docs'         =>   "docs",
//Meo: Changed in C 0.1 for Ajax integration
        'ajax'         =>   "ajaxout",
// rusmkportal integration ajax
        'rajax'         =>   "rajax" 
                );

//Added by Kimi in C1.2.2 (this is by Mark)
if (is_array($mkportals->input['ind'])) {
$message = $mklib->lang['error_noallow'];
$mklib->error_page($message);
exit;
}

if (!isset($switch[$mkportals->input['ind']])) {
    $mkportals->input['ind'] = "contents";
}
if (!$mklib->disablegzip && $mkportals->input['ind'] != "downloads") {
    ob_end_clean();
    @ob_start('ob_gzhandler');
}
require "./mkportal/modules/{$switch[$mkportals->input['ind']]}/index.php";
Вопрос в следующем как можно этого избежать что бы каждый раз не прописывать новый модуль ????
 
Если убрать большой массив с перечислением, то можно сделать огромную дырку в скрипте (можно будет любой существующий файл подключить).
 
попробуй сделать конфиг файл или таблицу баз данных, где хранить названия модулей и при добавлении нового модуля делать там новую запись.
 
Если убрать большой массив с перечислением, то можно сделать огромную дырку в скрипте (можно будет любой существующий файл подключить).

В других cms нет выборки по массиву и дырок доже как нет.

Добавлено через 50 секунд
попробуй сделать конфиг файл или таблицу баз данных, где хранить названия модулей и при добавлении нового модуля делать там новую запись.

Это всё можно, но лишние(й) запросы в БД как бы не нужны
 
В других cms нет выборки по массиву и дырок доже как нет.
есть понятие архитектура движка. В других CMS, например, за разные действия отвечают разные скрипты (разные файлы, как в vBulletin, например). В твоем случае у тебя все действия запускаются через один скрипт index.php.

Решение тогда одно остается, вынести всю инициализацию, что происходит в index.php (подключение конфигов, создание соединение с базой и т.п) в отдельный файл типа init.php, а его уже include из файлов модулей.

Ну и все ссылки в приложении поменять на прямые ссылки до скриптов модулей.
 
есть понятие архитектура движка. В других CMS, например, за разные действия отвечают разные скрипты (разные файлы, как в vBulletin, например). В твоем случае у тебя все действия запускаются через один скрипт index.php.

Решение тогда одно остается, вынести всю инициализацию, что происходит в index.php (подключение конфигов, создание соединение с базой и т.п) в отдельный файл типа init.php, а его уже include из файлов модулей.

Ну и все ссылки в приложении поменять на прямые ссылки до скриптов модулей.

Тут и не пахнет никакой архитектурой. Есть стандарты проектирование типа модель-представление-управление, а то что конфигурация правится вручную в файле да еще и в индексе, это просто быдлокод
 
[* holywar detected]

быдлокод так быдлокод, только он завернут в обертку index, а не размазан по нескольким файлам.

извините если задел ваши лучшие чувства про "архитектуру приложений" )
 
[* holywar detected]

быдлокод так быдлокод, только он завернут в обертку index, а не размазан по нескольким файлам.

извините если задел ваши лучшие чувства про "архитектуру приложений" )
а что тут завернуто?) список подключаемых модулей?) а как эти модули должны работать и взаимодействовать с ядром они сами должны догадаться? Если уж совсем тяжко можно хранить конфиг в БД и кешировать запрос
 
Вы о чем? )
 
я про ООП ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху