/**
  * Get Products from the Category with Paging
  *
  * @param int $page
  * @param int $itemsPerPage
  * @param array $sort
  * @return \Zend_Paginator
  * @throws \Zend_Paginator_Exception
  */
 public function getProductsPaging($page = 0, $itemsPerPage = 10, $sort = array("name" => "name", "direction" => "asc"))
 {
     $list = new Object\CoreShopProduct\Listing();
     $list->setCondition("enabled = 1 AND categories LIKE '%," . $this->getId() . ",%'");
     $list->setOrderKey($sort['name']);
     $list->setOrder($sort['direction']);
     $paginator = \Zend_Paginator::factory($list);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($itemsPerPage);
     return $paginator;
 }
 /**
  * Get latest Products
  *
  * @param int $limit
  * @return array|mixed
  */
 public static function getLatest($limit = 8)
 {
     $cacheKey = "coreshop_latest";
     if (!($objects = \Pimcore\Model\Cache::load($cacheKey))) {
         $list = new Object\CoreShopProduct\Listing();
         $list->setCondition("enabled=1");
         $list->setOrderKey("o_creationDate");
         $list->setOrder("DESC");
         $objects = $list->getObjects();
     }
     return $objects;
 }
 public function searchAction()
 {
     $text = $this->view->searchText = $this->getParam("text");
     $page = $this->getParam("page", 1);
     $itemsPerPage = $this->getParam("perPage", 10);
     $query = array("name LIKE ?", "description LIKE ?", "shortDescription LIKE ?", "metaTitle LIKE ?", "metaDescription LIKE ?");
     $queryParams = array('%' . $text . '%', '%' . $text . '%', '%' . $text . '%', '%' . $text . '%', '%' . $text . '%');
     $list = new CoreShopProduct\Listing();
     $list->setCondition(implode(' OR ', $query), $queryParams);
     $paginator = \Zend_Paginator::factory($list);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($itemsPerPage);
     $this->view->paginator = $paginator;
 }