ЧПУ на symfony 1.4
Есть проект на Symfony 1.4 и потребовалось сделать сразу несколько изменений:
ЧПУ-ссылки (сейчас они выглядят так: as-gard.ru/production/1/ - для категории и as-gard.ru/production/1/view/45/ - для товара)
Возможность редактировать категорию, чтобы на ней отображался текст, а не выводился первый товар из категории
В симфони и PHP, мягко говоря, новичок.
Это фрагмент из routing.yml:
production:
url: /production/:id_category/
param: { id_category: \d+, module: production, action: list }
production_view:
url: /production/:id_category/view/:id/
param: { id_category: \d+, id: \d+, module: production, action: list }
Это фрагмент /apps/frontend/modules/production/actions/actions.class.php
public function executeList(sfWebRequest $request)
{
if ($request->getParameter('id_category')){
$this->id_root_cat = $request->getParameter('id_category');
}
$q = Doctrine_Query::create()->from('Product');
// либо конкретный продукт
if ($request->getParameter('id')) {
$this->item = $q->where( 'id =?', $request->getParameter('id') )
->fetchOne();
// Либо первый из первой подкатегории
}
else{
// получаем подкатегории
$subMenu = Doctrine_Query::create()->from('Category')
->where('category_id =?', $this->id_root_cat )
->orderBy('category_id asc')
->addOrderBy('lft asc')
->execute()
->getFirst();
if ($subMenu->getNode()->hasChildren()) {
// если есть подкатегории - первый продукт из первой
$id_cat = $subMenu->getNode()->getFirstChild()->getId();
} else {
// иначе первый продукт
$id_cat = $this->id_root_cat;
}
$this->item = $q->where('id_category =?', $id_cat)
->orderBy('id asc')
->fetchOne();
}
Пробовал в routing.yml прописывать что-то вроде
<pre>
production:
url: /production/:id_category/:cat_name/
param: { cat_name, id_category: \d+, module: production, action: list }
</pre>
в action.class.php:
<pre>
if ($request->getParameter('cat_name')){
$this->cat_name = $request->getParameter('cat_name');
}
</pre>
Предварительно создав в таблице столбец cat_name, записав это в schema.yml и обновив. Не понимаю, как это сделать