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

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

Мы тут с saen пришли к мнению, что ТС должен переписать весь этот бред с использованием паттерна MVC.

Чем не решение? )
 
а че, хорошее решение) заодно опыта наберется :ay:
 
:D
Ппц разговоры.

Короче, в данном случае надо отводить этому куску отдельный файл и перезаписывать его, добавляя необходимые строчки програмно при инстале модуля.
 
:D
Ппц разговоры.

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

Пример можете показать??? или как в этом случае применить через БД или отдельный файл инстала модулей как тогового нет просто заливаем в директорию модулей и прописываем в index вот и хочу избавится от прописывания его в файле

То что тут Быдло код согласен полностью вот и хочу его привести в порядок.
 
Имхо можно засунуть все модули в папку Modules и запарсить папку на предмет файлов скажем с разрешением .mod и подрубить их автоматом... но опять же это довольно сильные переделки кода...
 
В папке modules содержатся папки модулей к примеру папки news gallery и тд а в них файлы модулей php
Может просто сделать проверку директорий в директории modules и тем самым заменить массив
вот только как это сделать?
 
Сделать можно так:
PHP:
$switch=array();
$dir=opendir("./modules");
while(false!==($k=readdir($dir)){
  if(is_dir("./modules/".$k) && $k!="." && $k!=".."){
    $switch[$k]=$k;
  }
}
print_r($switch);
Вы при каждом обращении к index будете проводить такую проверку?
 
Пошел путем через БД в index получилось так
PHP:
$modulename = $mkportals->input['ind'];
$query = $DB->query( "SELECT title FROM mkp_modules WHERE title = '$modulename' AND active = '1'");
    while( $row = $DB->fetch_row($query) ) {
        $mod = $row['title'];
        }
//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 (!$mod) {
    $mod = "contents";
}
if (!$mklib->disablegzip && $mkportals->input['ind'] != "downloads") {
    ob_end_clean();
    @ob_start('ob_gzhandler');
}
require "./mkportal/modules/$mod/index.php";

Тоесть идет выборка по адресу из урл и существующему модулю в БД и активный он или нет
В админке сделал что при заходе на страницу модулей читается директория модулей и пишется в БД существующие.


Вопрос в следующем на сколько оптимизирован код в index и как скажется на нагрузке по сравнению с тем что было изначально ну а так же как с безопасностью?
 
gzip-сжатие полюбому будет нагружать процессор, а насчет безопасности - тут все зависит от правильно составленных запросов в БД
 
Я раньше тоже был помешан на том, чтобы система сама подгружала модули, сканируя папку modules и т.д. Да, это очень удобно: взял, вытащил модуль из папки, и он полностью удалился, да это круто. С одной стороны. С другой же стороны, Вы подумайте: как часто Вам приходится устанавливать/удалять модули? Ответ очевиден: при создании проекта (сайта) и при его модификации. Это очень редко. А как часто скрипт будет сканировать папку modules или делать запрос к БД? Ага, точно, каждый раз при обращении к странице!
А где выгода? Во-первых, написав код автоматической загрузки модуля, Вы могли ошибиться (людям это свойственно) и сразу же дыра в коде. Но когда Вы прописуете модули в массиве, все статически, то тут никаких дырок, никаких нагрузок. Одни выгоды. Это конечно все субъективно, но я думаю, что сторонники моих слов найдуться.

А вообще, если по теме отвечать на Ваш вопрос, то я поддерживаю Вашу реализацию, я сам приблизительно так делал раньше. ;)

Удачи!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху