Example #1
0
 public function indexAction()
 {
     $catId = 0;
     $nextCat = null;
     $linkParts = self::$parameters;
     $title = [];
     while (!empty(self::$parameters)) {
         $next = rawurldecode(self::$parameters[0]);
         if ($nextCat = \Difra\Plugins\Catalog\Category::getByLink($next, $catId)) {
             array_shift(self::$parameters);
             $catId = $nextCat->getId();
             $title[] = $nextCat->getName();
             continue;
         }
         break;
     }
     \Difra\Plugins\Catalog::getInstance()->setSelectedCategory($catId);
     // get page
     if (sizeof(self::$parameters) >= 2 and self::$parameters[sizeof(self::$parameters) - 2] == 'page' and is_numeric(self::$parameters[sizeof(self::$parameters) - 1])) {
         $page = array_pop(self::$parameters);
         array_pop(self::$parameters);
         array_pop($linkParts);
         array_pop($linkParts);
     } else {
         $page = 1;
     }
     $action = 'view';
     switch (sizeof(self::$parameters)) {
         case 0:
             \Difra\Plugins\Catalog\View::getInstance()->viewCategory($this, $catId, $page, $linkParts, $title);
             break;
             /** @noinspection PhpMissingBreakStatementInspection */
         /** @noinspection PhpMissingBreakStatementInspection */
         case 2:
             $action = array_pop(self::$parameters);
             // no break
         // no break
         case 1:
             \Difra\Plugins\Catalog\View::getInstance()->viewItem($this, self::$parameters[0], $action, $title);
             self::$parameters = [];
             break;
     }
 }