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); }
/** * Create url * * @param string $route * @param array $params * @param string $ampersand * * @return string */ public function createUrl($route, $params = array(), $ampersand = '&') { if ($route == 'category') { if (isset($params['link'])) { return '/services' . CatalogCategory::getCategoryRoute($params['link']); } } if ($route == 'service') { if (isset($params['id'])) { if ($service = CatalogService::model()->find(array('condition' => 'id=:id', 'params' => array(':id' => $params['id'])))) { $category = CatalogCategory::model()->findByPk($service->id_category); return '/services' . CatalogCategory::getCategoryRoute($category->link) . '/' . $service->id; } } } return parent::createUrl($route, $params, $ampersand); }