Страница 3 из 5

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 11:11
timlar
А еще лучше обратить внимание на то, что это писалось исключительно для примера ;)

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 12:40
Svyatov
SpiLLeR писал(а):Если проверять на ===, то перед этим все переменные нужно приводить ручками к нужному типу, т.к. пхп как хочет так и ставит тип.
Пример некорректного проставления типа пхп?

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 12:51
slavcodev
Svyatov писал(а):Пример некорректного проставления типа пхп?
CVarDumper::dump('123'===123); // выдаст false

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 13:51
Svyatov
mc-bear писал(а):
Svyatov писал(а):Пример некорректного проставления типа пхп?
CVarDumper::dump('123'===123); // выдаст false
И что тут некорректного? У строки и правда другой тип, нежели у числа :)

Если код пишется осознанно и продуманно, то сравнение с типом (===) только на пользу, ибо дает на ранних этапах выявить некоторые косяки. Лично в своей практике сравнение без типов я использую только для чисел, а для строк только с типом. Помогает избегать многих ошибок.

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 13:53
pr_o
Лично я стараюсь писать "==", но часто косяки бывают при сравнении (true, false) (1, 0) и ("1","0")

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 19:37
SpiLLeR
http://test.loc/site/login?id=43
var_dump($_GET['id]) -> string(2)"42", логично что ручками потом сам приведешь в int'у. Хотя это правильное проставление типа. Я скорее не правильно выразился. Скорее разработчики косячат во время разработки на пхп.
Проблемы возникают с == и === когда работаешь над большими проектами. Кто-то возвращает true, false, кто-то 0,1 и т.д.

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 21:40
pr_o
Отошли мы от темы)))

А есть еще какие-то решения насчет древовидной структуры данных? Неужели только Nested Sets???

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.26, 23:05
samdark

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.10.29, 10:13
MOTORIST

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.11.12, 22:41
zvnman
Как сделать управление ветками дерева CTreeView с использованием Ajax, типа:

root
-категория_1 add|edit|del|down
--категория_1.1 add|edit|del|down|up
--категория_1.2 add|edit|del|down|up
-категория_2 add|edit|del|down|up
--категория_2.1 add|edit|del|down|up
---категория_2.1.1 add|edit|del|down|up
---категория_2.1.2 add|edit|del|down|up

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.11.15, 12:32
timlar
zvnman писал(а):Как сделать управление ветками дерева CTreeView с использованием Ajax, типа:

root
-категория_1 add|edit|del|down
--категория_1.1 add|edit|del|down|up
--категория_1.2 add|edit|del|down|up
-категория_2 add|edit|del|down|up
--категория_2.1 add|edit|del|down|up
---категория_2.1.1 add|edit|del|down|up
---категория_2.1.2 add|edit|del|down|up
Нужно писать js который будет все это обрабатывать. Я для себя писал, можно было удалять, добавлять, редактировать и перемещать узлы drug'n'drop-ом. Сейчас скрипта не осталось, поделиться не смогу. :( Но там ничего сложного.

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.11.17, 21:13
zvnman
Timlar писал(а): Нужно писать js который будет все это обрабатывать. Я для себя писал, можно было удалять, добавлять, редактировать и перемещать узлы drug'n'drop-ом. Сейчас скрипта не осталось, поделиться не смогу. :( Но там ничего сложного.
Спасибо за ответ!
Жаль что пока нет примера для реализации, я думаю что многим такой вариант управления деревом понравится.
Я не так давно начал юзать Yii и пока не могу освоить гибкость фреймворка с использованием JS.
Если сделаю доработку обязательно выложу код!

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.11.30, 11:26
MOTORIST
CTreeView
НЕ показывает активный пункт меню, ни класса ни id.

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.12.06, 06:35
metal

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

public function behaviors(){
    return array(
        'TreeBehavior' => array(
            'class' => 'application.extensions.nestedset.TreeBehavior',
            '_idCol' => 'id',
            '_lftCol' => 'lft',
            '_rgtCol' => 'rgt',
            '_lvlCol' => 'level',
        ),
        'TreeViewTreebehavior' => array(
            'class' => 'application.extensions.nestedset.TreeViewTreebehavior',
        )
    );
} 
Когда прописываешь поля (id, lft, rgt, level) работает нормально, но если у этих полей другие имена (category_id, category_lft и т.д.) и прописываешь их соответственно с эту функцию, запросы к БД все равно идут по полям id, lft и т.д. Возможно ли это обойти настройками, или необходимо переписывать расширение?

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2010.12.07, 15:30
timlar
Я бы рекомендовал использовать вот это расширение: http://code.google.com/p/yiiext/source/ ... del/trees/. Сам с ним работаю, намного удобнее чем то, о котором говорится в данной теме.

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2011.01.12, 22:10
SpiLLeR
Не нашел по данному расширению темы, поэтому пишу сюда.
При moveAsLast и видимо других подобных действиях не вызывается afterSave(); Это сделано специально, если да, то почему?

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2011.01.12, 22:20
creocoder
Да, это сделано специально. Операция переноса не вызывает событие afterSave(). В будующем планируется, что библиотека будет расширять стандартные AR события своими. Для этого метода это будет afterMove().

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2011.04.29, 09:55
webgold
Сделал все как в посте, в самом начале темы, выскакивает ошибка include(CNestedSetBehavior.php): failed to open stream: No such file or directory. В чем может быть причина?

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

/home/artem/mysite/motor.l/public/framework/YiiBase.php(396)

384      * @return boolean whether the class has been loaded successfully
385      */
386     public static function autoload($className)
387     {
388         // use include so that the error PHP file may appear
389         if(isset(self::$_coreClasses[$className]))
390             include(YII_PATH.self::$_coreClasses[$className]);
391         else if(isset(self::$classMap[$className]))
392             include(self::$classMap[$className]);
393         else
394         {
395             if(strpos($className,'\\')===false)
396                 include($className.'.php');
397             else  // class name with namespace in PHP 5.3
398             {
399                 $namespace=str_replace('\\','.',ltrim($className,'\\'));
400                 if(($path=self::getPathOfAlias($namespace))!==false)
401                     include($path.'.php');
402                 else
403                     return false;
404             }
405             return class_exists($className,false) || interface_exists($className,false);
406         }
407         return true;
408     } 

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2011.04.29, 16:10
timlar

Re: Nested Sets + CTreeView, CDropdownList, CListBox

Добавлено: 2011.06.13, 22:35
zvnman
Timlar писал(а):Я бы рекомендовал использовать вот это расширение: http://code.google.com/p/yiiext/source/ ... del/trees/. Сам с ним работаю, намного удобнее чем то, о котором говорится в данной теме.
А как используя данный класс вывести дерево в CtreeView?