Beispiel #1
0
 /**
  * ライブラリパッケージを一覧する
  * @param string $path
  */
 public function find($path = null)
 {
     $object_list = array();
     $pattern = $this->map_arg('pattern');
     if ($pattern !== null) {
         $path = vsprintf($pattern, func_get_args());
     }
     $path = Path::slash(Path::absolute($this->base(), Path::slash($path, false, true)), null, true) . 'packages.csv';
     $query = $this->in_vars('query');
     $paginator = new \org\rhaco\Paginator(30, $this->in_vars('page', 1));
     if (is_file($path)) {
         foreach (file($path) as $line) {
             $line = trim($line);
             if ($line != '') {
                 if (empty($query) || stripos($line, $query) !== false) {
                     list($package, $summary) = explode(',', $line, 2);
                     $model = new Model();
                     $model->package($package);
                     $model->summary($summary);
                     $paginator->add($model);
                 }
             }
         }
     }
     $this->vars('object_list', $paginator->contents());
     $this->vars('paginator', $paginator->vars(array('query' => $query)));
 }
Beispiel #2
0
 private function filter_find($class, $order)
 {
     $object_list = array();
     $paginator = new \org\rhaco\Paginator(20, $this->in_vars('page', 1));
     $paginator->cp(array('order' => $order));
     if ($this->is_vars('search_clear')) {
         $object_list = $class::find_all($paginator, Q::select_order($order, $this->in_vars('porder')));
         $this->rm_vars();
     } else {
         if ($this->is_vars('search')) {
             $q = new \org\rhaco\store\db\Q();
             foreach ($this->ar_vars() as $k => $v) {
                 if ($v !== '' && strpos($k, 'search_') === 0) {
                     list(, $type, $key) = explode('_', $k, 3);
                     switch ($type) {
                         case 'timestamp':
                         case 'date':
                             list($fromto, $key) = explode('_', $key);
                             $q->add($fromto == 'to' ? Q::lte($key, $v) : Q::gte($key, $v));
                             break;
                         default:
                             $q->add(Q::contains($key, $v));
                     }
                     $paginator->vars($k, $v);
                 }
                 $paginator->vars('search', true);
             }
             $object_list = $class::find_all($q, $paginator, Q::select_order($order, $this->in_vars('porder')));
             $this->rm_vars('q');
         } else {
             $object_list = $class::find_all(Q::match($this->in_vars('q')), $paginator, Q::select_order($order, $this->in_vars('porder')));
             $paginator->vars('q', $this->in_vars('q'));
         }
     }
     return array($object_list, $paginator);
 }
Beispiel #3
0
eq(10, $p->which_last(3));
$p = new \org\rhaco\Paginator(3, 2);
$list = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
foreach ($list as $v) {
    $p->add($v);
}
eq(array(4, 5, 6), $p->contents());
eq(2, $p->current());
eq(1, $p->first());
eq(3, $p->last());
eq(9, $p->total());
$p = new \org\rhaco\Paginator(3, 2);
$list = array(1, 2, 3, 4, 5);
foreach ($list as $v) {
    $p->add($v);
}
eq(array(4, 5), $p->contents());
eq(2, $p->current());
eq(1, $p->first());
eq(2, $p->last());
eq(5, $p->total());
$p = new \org\rhaco\Paginator(3);
$list = array(1, 2);
foreach ($list as $v) {
    $p->add($v);
}
eq(array(1, 2), $p->contents());
eq(1, $p->current());
eq(1, $p->first());
eq(1, $p->last());
eq(2, $p->total());
Beispiel #4
0
<?php

$p = new \org\rhaco\Paginator(10, 3);
$p->total(100);
$re = array();
foreach ($p as $k => $v) {
    $re[$k] = $v;
}
eq(array('current' => 3, 'limit' => 10, 'offset' => 20, 'total' => 100, 'order' => null), $re);
Beispiel #5
0
<?php

$p = new \org\rhaco\Paginator(10, 1, 100);
eq(2, $p->next());
$p = new \org\rhaco\Paginator(10, 2, 100);
eq(1, $p->prev());
$p = new \org\rhaco\Paginator(10, 1, 100);
eq(true, $p->is_next());
$p = new \org\rhaco\Paginator(10, 9, 100);
eq(true, $p->is_next());
$p = new \org\rhaco\Paginator(10, 10, 100);
eq(false, $p->is_next());
$p = new \org\rhaco\Paginator(10, 1, 100);
eq(false, $p->is_prev());
$p = new \org\rhaco\Paginator(10, 9, 100);
eq(true, $p->is_prev());
$p = new \org\rhaco\Paginator(10, 10, 100);
eq(true, $p->is_prev());
Beispiel #6
0
<?php

$p = new \org\rhaco\Paginator(4, 1, 3);
eq(1, $p->first());
eq(1, $p->last());
eq(false, $p->has_range());
$p = new \org\rhaco\Paginator(4, 2, 3);
eq(1, $p->first());
eq(1, $p->last());
eq(false, $p->has_range());
$p = new \org\rhaco\Paginator(4, 1, 10);
eq(1, $p->first());
eq(3, $p->last());
eq(true, $p->has_range());
$p = new \org\rhaco\Paginator(4, 2, 10);
eq(1, $p->first());
eq(3, $p->last());
eq(true, $p->has_range());