Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Подскажите, Как Реализовать Категории И Подкатегории

$
0
0
Изучаю 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>',(точки это слэши, по другому не могу создать этот пост)
надеюсь, что кто нибудь поймет, что я хочу сделать...

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>