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; } }