Пример #1
0
 public static function route($config, $re_route)
 {
     $router_vars = self::get_router_vars($config);
     if (count($router_vars) > 1) {
         if (utils::key_exists(array($router_vars['controller']), $re_route)) {
             if (in_array($router_vars['action'], $re_route[$router_vars['controller']])) {
                 $router_vars['controller'] = $router_vars['action'];
                 $router_vars['action'] = !empty($router_vars['fnc_args']) ? $router_vars['fnc_args'][0] : $config['action'];
                 if (count($router_vars['fnc_args']) > 1) {
                     array_shift($router_vars['fnc_args']);
                 } else {
                     $router_vars['fnc_args'] = array();
                 }
             }
         }
     }
     if ($router_vars['controller'] == "base") {
         $router_vars['controller'] = $config['class'];
     }
     if (!file_exists(APP . 'controllers' . DS . $router_vars['controller'] . '.php')) {
         throw new NotFoundException();
     }
     require_once APP . 'controllers' . DS . $router_vars['controller'] . '.php';
     if (!class_exists($router_vars['controller'])) {
         throw new NotFoundException();
     }
     $instance = new $router_vars['controller']();
     if (!method_exists($instance, $router_vars['action'])) {
         throw new NotFoundException();
     }
     $instance->{$router_vars}['action']($router_vars['fnc_args'], $router_vars['gets']);
     if (DEBUG) {
         debug::set("router", "router", $router_vars);
         debug::set("session", "session", session::get_all());
         debug::show();
     }
 }
Пример #2
0
 public static function join_str($fields = array('*'), $join = array(), $where = array(), $sort = array(), $order = "DESC", $offset = 0, $limit = 0)
 {
     $sql = "SELECT %s FROM %s%s%s%s%s;";
     $fields_str = "";
     $from = self::filter_table(self::$settings['table']);
     if (empty($fields)) {
         $fields_str = "*";
     } else {
         if (str_replace("`", "", $fields[0]) == "*") {
             $fields_str = "*";
         } else {
             foreach ($fields as $field) {
                 if ($field != "*") {
                     if (substr($field, 0, 1) == ":") {
                         $fields_str .= sprintf("%s, ", self::filter_field($from . "." . substr($field, 1, strlen($field) - 1)));
                     } else {
                         $fields_str .= sprintf("%s, ", self::filter_field($field));
                     }
                 }
             }
             $fields_str = substr($fields_str, 0, -2);
         }
     }
     $join_str = "";
     foreach ($join as $_join) {
         $join_str .= " " . self::join_type($_join['jtype']);
         foreach ($_join['join'] as $k => $v) {
             $join_str .= " " . self::filter_table($k);
             $join_str .= " ON ";
             $join_str .= substr(self::where_str($v), 7, strlen(self::where_str($v)) - 1);
         }
     }
     $sql = sprintf($sql, $fields_str, $from, $join_str, self::where_str($where), self::order_str($sort, $order), self::limit_str($offset, $limit));
     debug::set('sql', self::$settings['class'] . '::join', $sql);
     return $sql;
 }