Опять тема про NESTED SETS и список

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Опять тема про NESTED SETS и список

Сообщение mum »

Здравствуйте.
Реализовано через режим «много деревьев» по этому root может быть 1-2,3
Корневой level = 1 у меня он рут, все корневые level = 2, естественно дочерние наследуются от корневых.
Дабы вывести список сделал так:

Код: Выделить всё

    public function getCategory($root = 1){
        if($root){
            $criteria = new CDbCriteria;
            $criteria->condition = 'root = :root AND level <> 0';
            $criteria->params = array(':root' => $root);
            $criteria->order = 'lft ASC';
            $category = self::model()->findAll($criteria);
            
            foreach($category as $key=>$value){
                $level = $value->level;
                for($i=0; $i < $level-2; $i++){ ///тут указал -2 так как root level = 1 корневые level 2 
                    $value->title = '. '.$value->title.'';
                }
            }
            return CHtml::listData($category, 'id', 'title');
        }
        return false;
    }

Получаю вот такой вот список:
Root
Фильмы
. Отечественные
. . Боевик
. . . Новики
. . Комедии
. Зарубежные
Музыка
. Рок
. Попса
. Транс

Другие варианты вывода есть?
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

расширение написал SamDark :-D
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Re: Опять тема про NESTED SETS и список

Сообщение mum »

lancedevnull писал(а):расширение написал SamDark :-D
про само расширение я вкурсе, курю вывод в dropdownlist.
ку Lancedevnull ;)
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

1. я не соображу как твой код выдаст то что ты написал, откуда он берет более одной точки
2. тебе рекурсию все равно юзать, либо все вытащить, раз уж ты взялся за DAO (да и расширением это возможно), но группируй по уровню, потом фореачем раскидывай, а точку повторяй столько раз, сколько у тебя идет level, а вообще и на этот случай вроде был экстешн
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Re: Опять тема про NESTED SETS и список

Сообщение mum »

http://grab.by/tt1Q
выводит, из-за цикла. то что меня пугает так это $level-2
если не писать $level-2 то выдаст так:
. Root
. . Фильмы
. . . Отечественные
. . . . Боевик
. . . . . Новики
. . . . Комедии
. . . Зарубежные
. . Музыка
. . Рок
. . Попса
. . Транс

Да и отредактировать я и сам смогу) дело в выводе в список
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

аа понал, ты же перезаписываешь аттрибут, туплю уже
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

чето ты не то делаешь, если ты упорядочил по лефт, то просто делай точку столько раз сколько у тебя левел и все по идее
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Re: Опять тема про NESTED SETS и список

Сообщение mum »

Ланс, если я оставлю так как есть, то этот $level - 2 не испортит ничего если каталогов будет 500 и более?
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

смотри - упорядочил по лефт, т.е. по сути ты бежишь в том порядке, в котором нужно, остается раставить точки:
l1 => .1
l1 => .2
l2 => ..3
l3 => ...4
l4 => ....5
l1 => .6
l2 => ..7
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Re: Опять тема про NESTED SETS и список

Сообщение mum »

у меня сейчас точно так и работает)
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

а в чем проблема? все верно у тебя :) спать пора мне
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Опять тема про NESTED SETS и список

Сообщение lancedevnull »

а зачем это - AND level <> 0 ?
Ответить