public function getFullLinkFast() { if (isset($this->idCategoryFast)) { // возвращаем путь к категории товара и прибавляем в конце id return '/catalog' . CatalogCategory::getCategoryRouteFast($this->idCategoryFast) . '/' . $this->link . '.html'; } else { return '/catalog/' . $this->link . '.html'; } }
public static function getCategoryRouteFast($category) { if ($category) { if ($parent = CatalogCategory::model()->findByPk($category->parent_id)) { $route = CatalogCategory::getCategoryRouteFast($parent) . "/" . $category->link; } else { $route = "/" . $category->link; } return $route; } else { return false; } }
public function createUrl($route, $params = array(), $ampersand = '&') { // если формируем ссылку на категорию if ($route == 'category') { if (isset($params['link'])) { return '/catalog' . CatalogCategory::getCategoryRoute($params['link']); } } // если формируем ссылку на товар if ($route == 'product') { // если передано id товара if (isset($params['id'])) { // если существует такой продукт if ($product = CatalogProduct::model()->find(array('condition' => 'id=:id', 'params' => array(':id' => $params['id'])))) { // берем категорию продукта $category = CatalogCategory::model()->with('parentShort')->findByPk($product->id_category); // возвращаем путь к категории товара и прибавляем в конце id return '/catalog' . CatalogCategory::getCategoryRouteFast($category) . '/' . $product->id; } } } // если условия не сработали - формируем адрес обычным образом return parent::createUrl($route, $params, $ampersand); }