예제 #1
0
파일: ajax.php 프로젝트: rigidus/ea
 function start()
 {
     db::connect();
     if (!router::get(1)) {
         return true;
     }
     self::$map = array('mode' => router::get(0), 'app' => router::get(1), 'module' => 'main', 'action' => router::get(2));
     if (router::get(3)) {
         self::set('module', router::get(2));
         self::set('action', router::get(3));
     }
     s::set('SYS_PATH', 'http://' . SERVER . SYS_DIR);
     define('APP', APPS . self::get('app') . '/');
     s::set('APP', APP);
     define('MODULE', APP . self::get('module') . '/');
     s::set('MODULE', MODULE);
     /*
     	Lang items
     */
     if (self::get('mode') == 'webAjax') {
         web::getSite();
         $lang = lang::gets(LANG_INDEX, SITE_ID);
         /*
         	Authentification webUser
         */
         web::observer();
     } else {
         define('LANG_INDEX', SYS_INDEX);
         $lang = lang::gets(LANG_INDEX);
         admin::observer();
         if (defined('ADMIN_USER_SITE_ID')) {
             define('ADMIN_SITE_ID', ADMIN_USER_SITE_ID);
             s::set('ADMIN_SITE_ID', ADMIN_USER_SITE_ID);
             $group_rules = ini::parse(SYS_ROOT . 'conf/admin/groups.ini', ADMIN_USER_GROUP_ID);
             define('RULE', $group_rules['rule']);
             db::table('admin_sites');
             db::where('site_id', ADMIN_USER_SITE_ID);
             db::limit(1);
             define('ADMIN_SITE', db::get('site_domain'));
             s::set('ADMIN_SITE', ADMIN_SITE);
         }
     }
     /*
     	Set params
     */
     params::send();
     $tmpl = params::get('tmpl');
     $sys = false;
     if (self::get('mode') == 'adminAjax') {
         $sys = true;
     }
     buffer::init(0, self::get('app'), false, $tmpl);
     if (self::get('mode') == 'webAjax') {
         load::handler(self::get('app'), self::get('module'), self::get('action'));
     } else {
         load::module(self::get('app'), self::get('module'), self::get('action'));
     }
     /*
     	Get plugin action
     */
     ob_start();
     /*
     	запуск обработчика с возвратом данных
     	тут два варианта либо данные просто выводим если нет шаблона, а если есть то сначала обрабатываем шаблон
     
     	если буффер полный выводим информацию из него
     */
     $buffer = buffer::gets();
     if ($buffer[0]) {
         if ($sys) {
             buffer::$module = self::get('module');
         }
         $section = params::get('section');
         echo buffer::get($buffer[0]['app'], $buffer[0]['tmpl'], $buffer[0]['data'], $section, $sys);
     }
     $code = ob_get_contents();
     ob_clean();
     s::$mode = 'code';
     s::setTmpl($code, $lang);
     s::display();
 }