Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вот захотел сделать CMS . 
:(
    Опции темы
aprok
  Дата 2.3.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.10.2005
Где: Украина

Репутация: нет
Всего: нет




Но не как не пойму как должно выглядеть ядро и модули к нему.
Как я понимаю ядро эта проста файл, который подключает модули
по запросу и выполняет этот запрос, перед этим он проверяет, если это модуль
в папке с таким названием как пришел запрос
www.mysyte.com/index?modul=mod1&var1=4&var2=5
запрос обрабатывает модуль под названием mod1 ,файлы модуля должны хранитца
в папке под названием mod1.
Данные о подключённых модулях должны хранитца в базе данных ?
если нет как динамически добавлять в меню о том что можно работать
тем ли иным модулем
Модуль я думаю разделить на 2 главные части
1, которая обрабатывает запрос, который пришел и отображает результат
2 Админская часть модуля которая автоматам должна видна в главной
админскай системе CMS.
Если я не прав, то поправьте меня или напишите, как должно быть.
smile
PM MAIL AOL   Вверх
-=Ustas=-
Дата 2.3.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



aprok, здесь уже очень бурно обсуждалась твоя тема. Плз, зайди в поиск и набери там cms.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
aprok
Дата 5.3.2006, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.10.2005
Где: Украина

Репутация: нет
Всего: нет



Вот написал примерную структуру моего ядра в виде класса.
Что посоветуете изменить или добавить?

Код

<?

class jadro
{

    var $modul='';// class modul
    var $modul_name=''; //nama modul 
    var $index_modul='mod_index'; //define modul
    var $menu=array(); // menu v CMS
    var $smarty=''; //class Smarty
    var $skin='default'; //skin CMS
    
    
    function jadro()
    {

    $this->assignModul(); //proverka modul
    $this->modul = $this->_factory(); //zagruzka modul
    
    }
    
    
     function display() //formirovanie ctranisi
     {
       $server = &$this->_importGlobalVariable('server');
       include_once($server['DOCUMENT_ROOT'].'include/'.setup_smarty.php);
       $this->$smarty = new Smarty_setup;
       $this->smarty->assign('meta_tegs',$this->modul->display_meta_tegs());
       $this->$smarty->assign('menu',$this->menu());
       $this->$smarty->assign('modul',$this->modul->display());    
       $this->$smarty->template_dir = $server['DOCUMENT_ROOT'].'include/templates/skin/'.$this->skin; 
       $this->$smarty->display('index.tpl');        
     }
    
     
     
     function _factory($options = '') //zagruzka modul
    {
        $server = &$this->_importGlobalVariable('server');
     $modul_path = $server['DOCUMENT_ROOT'].'include/modules/'. $this->$modul_name.'/'.$this->$modul_name.'.php';
        $modul_class = $this->modul;

        require_once $modul_path;

        return new $modul_class($options);
    }
    
    

    function assignModul() //proverka modul
    {
        $get = &$this->_importGlobalVariable('get');

        if (isset($get['modul'])) {
            $this->$modul_name = (get_magic_quotes_gpc() == 1 ? stripslashes($get['modul']) : $get['modul']);
            if (!file_exists($server['DOCUMENT_ROOT'].'include/modules/'. $this->$modul_name.'/'.$this->$modul_name.'.php'))
                $this->$modul_name=$this->index_modul;
        }
        else 
        {
           $this->$modul_name=$this->index_modu;
        }
        
     }
    
     function menu()//formirovanie menu  (array)
     {
      
     }
    
        function &_importGlobalVariable($variable)
    {
        $var = null;

        switch (strtolower($variable)) {

            case 'server' :
                if (isset($_SERVER)) {
                    $var = &$_SERVER;
                } else {
                    $var = &$GLOBALS['HTTP_SERVER_VARS'];
                }
                break;

            case 'session' :
                if (isset($_SESSION)) {
                    $var = &$_SESSION;
                } else {
                    $var = &$GLOBALS['HTTP_SESSION_VARS'];
                }
                break;

            case 'post' :
                if (isset($_POST)) {
                    $var = &$_POST;
                } else {
                    $var = &$GLOBALS['HTTP_POST_VARS'];
                }
                break;

            case 'cookie' :
                if (isset($_COOKIE)) {
                    $var = &$_COOKIE;
                } else {
                    $var = &$GLOBALS['HTTP_COOKIE_VARS'];
                }
                break;

            case 'get' :
                if (isset($_GET)) {
                    $var = &$_GET;
                } else {
                    $var = &$GLOBALS['HTTP_GET_VARS'];
                }
                break;

            default:
                break;

        }

        return $var;
    }
}


Это сообщение отредактировал(а) aprok - 5.3.2006, 11:57
PM MAIL AOL   Вверх
CyClon
Дата 5.3.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



Ой, не умею я работать с классами, да и не понимаю, зачем они здесь нужны... Я знаю, что не использую классы можно написать очень хорошую CMS, но тут кому как удобнее. Вообще я советовал бы поюзать сторонние CMS типа SLAED, Mambo, sPaiz-Nuke и только тогда уже писать свое. Ведь там стоко хороших идей, которые могут иногда в голову не прийти... А переписывать потом - дело не благородное.
Добавлено @ 13:19
ЗЫ: Не используй незвания классов, переменных, массивов, функций на транслите. Вместо твоего jadro лучше написать kernel.


--------------------
user posted image
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.