Example #1
0
 /**
  * 一覧を取得する
  * @param string $type
  * @param integer $page
  * @param integer $paginate_by
  * @param string $order
  * @param string $pre_order
  * @return mixed[] ($list,$paginator,$sorter)
  */
 public static function view($type, $page = 1, $paginate_by = 30, $order = null, $pre_order = null)
 {
     $paginator = new \org\rhaco\Paginator($paginate_by, $page);
     if (empty($order)) {
         $order = 'id';
     }
     $sorter = \org\rhaco\lang\Sorter::order($order, $pre_order);
     $list = array();
     if (static::has_module('view')) {
         /**
          * キューの一覧
          * @param string $type キューの種類
          * @param \org\rhaco\Paginator $paginator
          * @param string $sorter 順序のキー
          */
         $list = static::module('view', $type, $paginator, $sorter);
     }
     $paginator->cp(array('type' => $type, 'order' => $sorter));
     return array($list, $paginator, $sorter);
 }
Example #2
0
 /**
  * 検索
  * 
  * @param string $name モデル名
  * @automap
  * 
  * @request string $order ソート順
  * @request int $page ページ番号
  * @request string $query 検索文字列
  * @request string $porder 直前のソート順
  * 
  * @context array $object_list 結果配列
  * @context Paginator $paginator ページ情報
  * @context string $porder 直前のソート順
  * @context Dao $model 検索対象のモデルオブジェクト
  * @context string $model_name 検索対象のモデルの名前
  */
 public function do_find($package)
 {
     $name = '\\' . str_replace('.', '\\', $package);
     $order = \org\rhaco\lang\Sorter::order($this->in_vars('order'), $this->in_vars('porder'));
     if (empty($order)) {
         $dao = new $name();
         foreach ($dao->props() as $n => $v) {
             if ($dao->prop_anon($n, 'primary')) {
                 $order = '-' . $n;
                 break;
             }
         }
     }
     list($object_list, $paginator) = $this->filter_find($name, $order);
     $this->vars('object_list', $object_list);
     $this->vars('paginator', $paginator);
     $this->vars('model', new $name());
     $this->vars('package', $package);
 }
Example #3
0
usort($o, create_function('$a,$b', sprintf('return ($a->abc > $b->abc) ? -1 : 1;')));
eq(2, $o[0]->id);
eq(3, $o[1]->id);
eq(1, $o[2]->id);
$objects = array();
$obj = new \org\rhaco\Object();
$obj->id = 1;
$obj->abc = 1;
$objects[] = $obj;
$obj = new \org\rhaco\Object();
$obj->id = 2;
$obj->abc = 3;
$objects[] = $obj;
$obj = new \org\rhaco\Object();
$obj->id = 3;
$obj->abc = 2;
$objects[] = $obj;
eq(3, sizeof($objects));
$sort = \org\rhaco\lang\Sorter::object($objects, "abc");
eq(3, sizeof($sort));
eq(1, $sort[0]->id());
eq(3, $sort[1]->id());
eq(2, $sort[2]->id());
eq(1, $objects[0]->id());
eq(2, $objects[1]->id());
eq(3, $objects[2]->id());
$sort = \org\rhaco\lang\Sorter::object($objects, "-abc");
eq(3, sizeof($sort));
eq(2, $sort[0]->id());
eq(3, $sort[1]->id());
eq(1, $sort[2]->id());
Example #4
0
<?php

eq("name", \org\rhaco\lang\Sorter::order("name", null));
eq("-name", \org\rhaco\lang\Sorter::order("-name", null));
eq("name", \org\rhaco\lang\Sorter::order("name", "id"));
eq("name", \org\rhaco\lang\Sorter::order("name", "-id"));
eq("-name", \org\rhaco\lang\Sorter::order("-name", "id"));
eq("-name", \org\rhaco\lang\Sorter::order("-name", "-id"));
eq("-name", \org\rhaco\lang\Sorter::order("name", "name"));
eq("name", \org\rhaco\lang\Sorter::order("name", "-name"));
eq("-name", \org\rhaco\lang\Sorter::order("-name", "name"));
eq("name", \org\rhaco\lang\Sorter::order("-name", "-name"));