public static function getCoverProducts()
 {
     $coverProducts = new self();
     $coverProducts->where(array('is_cover' => true, 'status' => 'publish'));
     $coverProducts->order('created_on', 'desc');
     return $coverProducts;
 }
Example #2
0
 /**
  * インデックスを保持したままソートする
  */
 public static function asort(array $objects, $method, $order = 'asc')
 {
     $sort = new self($objects);
     $sort->method($method);
     $sort->order($order);
     $sort->asort(true);
     return $sort->objects();
 }
Example #3
0
 /**
  * RequestのPaginator
  * @param \ebi\Request $req
  * @param integer $default_paginate_by
  * @param integer $max_paginate_by
  * @return \ebi\Paginator
  */
 public static function request(\ebi\Request $req, $default_paginate_by = 20, $max_paginate_by = 100)
 {
     $paginate_by = $req->in_vars('paginate_by', $default_paginate_by);
     if ($paginate_by > $max_paginate_by) {
         $paginate_by = $max_paginate_by;
     }
     $self = new self($paginate_by, $req->in_vars('page', 1));
     if ($req->is_vars('order')) {
         $o = $req->in_vars('order');
         $p = $req->in_vars('porder');
         if ($o == $p) {
             if ($o[0] == '-') {
                 $o = substr($o, 1);
             } else {
                 $o = '-' . $o;
             }
             $req->vars('order', $o);
         }
         $self->order($o);
     }
     $self->cp($req->ar_vars());
     return $self;
 }
Example #4
0
 public static function factory($conditions)
 {
     if ($conditions instanceof BaseClass) {
         return $conditions;
     }
     $select = new self();
     if (is_array($conditions) || $conditions instanceof \Traversable) {
         foreach ($conditions as $name => $condition) {
             switch ($name) {
                 case 'columns':
                     if (is_array($condition) && array_key_exists(0, $condition) && is_array($condition[0])) {
                         call_user_func_array(array($select, 'columns'), $condition);
                         continue;
                     }
                     $select->columns($condition);
                     break;
                 case 'combine':
                     if (is_array($condition)) {
                         call_user_func_array(array($select, 'combine'), $condition);
                         continue;
                     }
                     $select->combine($condition);
                     break;
                 case 'from':
                     $select->from($condition);
                     break;
                 case 'group':
                     $select->group($condition);
                     break;
                 case 'having':
                     if (is_array($condition) && array_key_exists(1, $condition) && ($condition[1] == PredicateSet::OP_AND || $condition[1] == PredicateSet::OP_OR)) {
                         call_user_func_array(array($select, 'having'), $condition);
                         continue;
                     }
                     $select->having($condition);
                     break;
                 case 'join':
                     call_user_func_array(array($select, 'join'), $condition);
                     break;
                 case 'limit':
                     $select->limit($condition);
                     break;
                 case 'offset':
                     $select->offset($condition);
                     break;
                 case 'order':
                     $select->order($condition);
                     break;
                 case 'where':
                     if (is_array($condition) && array_key_exists(1, $condition) && ($condition[1] == PredicateSet::OP_AND || $condition[1] == PredicateSet::OP_OR)) {
                         call_user_func_array(array($select, 'where'), $condition);
                         continue;
                     }
                     $select->where($condition);
                     break;
                 default:
                     throw new \Exception("Invalid condition ({$name})");
             }
         }
         return $select;
     }
     throw new \Exception(sprintf('Invalid conditions type (%s)', is_object($conditions) ? get_class($conditions) : gettype($conditions)));
 }