Духовность™
Продвинутый новичок
,
public function __construct($limit, $link_count, $page_var_name = 'page', $separator_var_name = 'sep', $request = 'REQUEST')
{
$this->limit = intval($limit);
$this->link_count = intval($link_count);
$this->page_var_name = $page_var_name;
$this->separator_var_name = $separator_var_name;
$request_array_name = '_' . ltrim($request, '_');
$request = eval("return \$$request_array_name;");
Ай-яй-яй. Вот кто тебя за язык тянул? А вместо евала можно просто сделать $$request_array_name, зачем там евал...что в моем эвале плохого?
Ноги тут растут с "var_name". Да. PHP - язык динамический. Многое позволяет. Но злоупотреблять не стоит. Как говорил atv, передать напрямую массив, а не его имя - не только короче на два символа, но гораздо правильнее.К суперглобалам нельзя так обращаться, насколько я знаю
public function action_index()
{
$pages = ORM::factory('page')->where('language', '=', $this->language)->order_by('added_at','DESC');
$paginate = Paginate::factory($pages)->paginate()->render();
$pages = $pages->find_all();
$this->set('pages', $pages)
->set('paginate', $paginate)
->set('language', $this->language);
}
<? if ($PAGER->getPages() > 1) { ?>
<ul class="pager">
<? for ($i=1;$i<=$PAGER->getPages();$i++) { ?>
<li>
<?php if ($PAGER->getOffset()!=$i) { ?>
<a href="<?=$this->baseUrl?><?if ($i>1): ?>p:<?=$i?>/<? endif;?>"><?=$i?></a>
<?php } else { ?>
<span class="current"><?=$i?></span>
<?php } ?>
</li>
<? }?>
</ul>
<? } ?>
public function findWithPager($offset = 0, $limit = 10)
{
$select = $this->getSelect();
if (!preg_match('~\s*SQL_CALC_FOUND_ROWS~i', $select))
{
$this->getSelect()->set("SQL_CALC_FOUND_ROWS $select");
}
$this->setLimit($limit)
->setOffset($offset);
$retVal = array(
'offset' => $offset,
'limit' => $limit,
);
$retVal['data'] = $this->getConnection()
->fetchAll($this->getQuery(), $this->getWhere()->getData());
$count = $this->getConnection()
->fetchOne('SELECT FOUND_ROWS()');
$retVal['total'] = $count['FOUND_ROWS()'];
$retVal['pager'] = $this->createPager($offset, $retVal['total'], $limit);
$this->setData($retVal, true);
return $retVal;
}
Я тоже. Просто у меня имя шаблона по умолчанию берется из конфигурации.я для гибкости в классе пейджер просто генерю объект, а затем в шаблоне его декорирую как угодно. соответственно
Т.е. сократить код в твоем примере до полутора строк(полстроки в контроллере и 1 в виде) - это уже "слишком много ООП"?у вас всех слишком много ООП ради ООП
$pages = ORM::factory('page')->where('language', '=', $this->language)->order_by('added_at','DESC');
$paginate = Paginate::factory($pages)->paginate();
$this->set('pages', $pages)
->set('paginate', $paginate)
->set('language', $this->language);