Изучаю yii фреймворк.
Не могу разобраться с подкатегориями, вернее не соображу как реализовать это логически. К примеру. Есть в сайдбаре список категорий.
category1
category2
etc…
у каждой категории есть подкатегории.
category1
subcategory
category2
subcategory2
итд.
и родительские и дочерние каты имеют свои посты.
как реализовать это в урлах.
то есть я перешел по url category.post1
все хорошо.
но вот мне надо перейти в category.subcategory.post1
то есть нужно что бы в урлах было видно, что одно вкладывается в другое. Что сделать? Создавать еще один контроллер\действие? а если уровень вложенности будет глубже? В какую сторону копать?
На данный момент у меня вложенные списки категорий формируются таким видом
<h3>Список категорий<.h3>
<?php
$level=0;
foreach($categories as $n=>$category)
{
if($category->level==$level)
echo CHtml::closeTag('li')."\n";
else if($category->level>$level)
echo CHtml::openTag('ul')."\n";
else
{
echo CHtml::closeTag('li')."\n";
for($i=$level-$category->level;$i;$i--)
{
echo CHtml::closeTag('ul')."\n";
echo CHtml::closeTag('li')."\n";
}
}
echo CHtml::openTag('li');
echo CHtml::link($category->title, Yii::app()->createUrl('post.category', array('id'=>$category->title)));
$level=$category->level;
}
for($i=$level;$i;$i--)
{
echo CHtml::closeTag('li')."\n";
echo CHtml::closeTag('ul')."\n";
}
?>
Данные идут из nested set behavior.
вложенность видно только в сайдбаре визуально…
Как вообще на сайтах реализуют вложенные категории? Роутингом? В какую сторону вообще смотреть, для меня загадка.
и еще. фиг бы с ними, с этими вложенными категориями,НО
вот я перехожу по yiitest.post.category.mycategory.
у меня выводится список постов, которые принадлежат категории .mycategory.
но за вывод постов у меня отвечает yiitest.post.view.id.4 то есть экшн view.
Вопрос, как сделать что бы при нахождении в категории http:…yiitest.post.category.mycategory.
кликая по посту видел такую ссылку http:…yiitest.post.category.cat.postname
надеюсь все правильно сформулировал…подскажите пожалуйста.
На данный момент пытаюсь отловить ссылку вида yiitest.post.category.cat.postname и перенаправить в yiitest.post.view.id.4
вот код роутера
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>FALSE,
'rules'=>array(
'post.category.<id:\d+>'=>'post.category',
'post.category.<alias>'=>'post.category.id.<alias>',
'index'=>'post.index',
'<controller>.<action>.<id>.<alias>'=>'post.view.<id>.<alias>',
)
),
оперирую в частности вот этой строчкой
‘<controller>.<action>.<id>.<alias>’=>‘post.view.<id>.<alias>’,(точки это слэши, по другому не могу создать этот пост)
надеюсь, что кто нибудь поймет, что я хочу сделать…