Создание модулей для CMS

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

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
Здравствуйте. Интересует такой вопрос.
Есть у меня сркриптец, хочу сделать чтоб работал на модулях.

К примеру есть папка mod
в нее кидаю файлики
mod_menu.php
mod_news.php
mod_top.php


и так далее.

Так вот мне надо чтоб скрипт автоматически подключал моды, если они есть в папке.
допустим смотреть скриптом папку mod и искать там файлы который имею часть строки mod_


а сами моды выводить на страницу буду через
preg_match("#^(.*){%mod%}#iUs", $index, $head);

Честно варианта незнаю как реализовать лучше.
Вот нужен ваш совет.
Хочу сделать CMS простенькую чтоб разобраться в написании подобных скриптов.
 
Здравствуйте. Интересует такой вопрос.
Есть у меня сркриптец, хочу сделать чтоб работал на модулях.

К примеру есть папка mod
в нее кидаю файлики
mod_menu.php
mod_news.php
mod_top.php


и так далее.

Так вот мне надо чтоб скрипт автоматически подключал моды, если они есть в папке.
допустим смотреть скриптом папку mod и искать там файлы который имею часть строки mod_


а сами моды выводить на страницу буду через
preg_match("#^(.*){%mod%}#iUs", $index, $head);

Честно варианта незнаю как реализовать лучше.
Вот нужен ваш совет.
Хочу сделать CMS простенькую чтоб разобраться в написании подобных скриптов.
PHP:
	$dh  = opendir("mod");
	while (false !== ($file = readdir($dh))) {
		if ($file != "." && $file != ".." && strstr("mod_",$file)) {
			$ok[]=$file;
		}
	}
	closedir($dh);
 
Модули лутче хранить в отдельных папках и пути к этим папкам хранить в config файле а не шарится по винту при каждом вызове страницы.
 
Скажем, вызов модулей на сайте у тебя будет вида: site.ru/?page=main
и в каждом модуле, в начале, определяется переменная $module_name.

Вот примерно такой получается код:
PHP:
$page=$_GET['page'];
$module_name = "";
chdir("mod");
foreach (glob("mod_*.php") as $f) {
  if ("mod_".$page.".php"==$f)
    include("modules/$f");
}
chdir("..");
if ($module_name=="")
  include("mod/mod_404.php");

т.е. если модуль, заявленный в $page не найден в папке с модулями, то грузится модуль, отвечающий за выдачу 404.

Модули лутче хранить в отдельных папках и пути к этим папкам хранить в config файле а не шарится по винту при каждом вызове страницы.

Вопрос спорный. Мои опыты с xdebug показали что время ползанья по папке ничтожно мало и им можно принебречь. А что касается отдельных папок про модули - делал так, и решил что это довольно неудобно. При обновлении файлов по FTP приходится больше тыкаться по папкам. Учитывая, что по FTP это делается не мгновенно, начанает напрягать.
 
Вопрос спорный. Мои опыты с xdebug показали что время ползанья по папке ничтожно мало и им можно принебречь. А что касается отдельных папок про модули - делал так, и решил что это довольно неудобно. При обновлении файлов по FTP приходится больше тыкаться по папкам. Учитывая, что по FTP это делается не мгновенно, начанает напрягать.

Время ползанья по папке ничтожно мало когда ты один пользователь на своём сайте просто HDD это самый медленный девайс и с ним надоб быть поосторожней.
Модуль это какой то отдельный функционал и пихать его в общую кучу как-то не целесообразно, ну в общем кому как.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху