/** * 一覧を取得する * @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); }
/** * 検索 * * @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); }
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());
<?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"));