Beispiel #1
0
 /**
  *
  * @param string $object
  * @param string $action
  * @param integer $page
  * @param array $params
  * @return Domstor_List_Common
  */
 public function getList($object, $action, $page, array $params = array())
 {
     // Упаковываем $object, $action и $page в параметры
     $params['object'] = $object;
     $params['action'] = $action;
     $params['page'] = $page ? $page : 1;
     $filter = $this->createFilter($object, $action);
     if ($filter) {
         $filter->bindFromRequest();
     }
     // Получаем url запроса на основе параметров
     $url = $this->_getListRequest($params);
     // Получаем данные
     $data = $this->_getData($url);
     // Последний элемент - общее число объектов
     $total = array_pop($data);
     // Создаем фабрику списков
     $factory = new Domstor_List_ListFactory();
     // Получаем параметры для списка
     $list_params = $this->_prepareListParams($params);
     $list_params['data'] = $data;
     // Фабрика создает список
     $list = $factory->create($object, $action, $list_params);
     // Создаем объект pager постраничного вывода
     $this->pager->init(array('total' => $total, 'pager_count' => $this->pagination_count, 'href_tmpl' => $this->_processListHref($params), 'href_page_part' => $this->getHrefTemplate('page_part'), 'link_tmpl' => '<a class="domstor_pagination_link" href="%href">%text</a> ', 'layout_tmpl' => '<div class="domstor_pagination"><p>%info%text</p></div>', 'current_page_tmpl' => '<span class="domstor_pagination_selected">%text</span> ', 'current' => $page));
     $list->setPager($this->pager);
     $list->setFilter($filter);
     return $list;
 }
Beispiel #2
0
 public function getHtml()
 {
     $out = '';
     if ($this->_show_filter) {
         $out .= (string) $this->getFilter();
     }
     if (count($this->data)) {
         $out .= parent::getHtml();
         $out .= $this->pager->render();
     } else {
         $out .= $this->empty_list_message;
     }
     return $out;
 }