Nested Sets + CTreeView, CDropdownList, CListBox
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
А еще лучше обратить внимание на то, что это писалось исключительно для примера
Twitter: @timlar_ua
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Пример некорректного проставления типа пхп?SpiLLeR писал(а):Если проверять на ===, то перед этим все переменные нужно приводить ручками к нужному типу, т.к. пхп как хочет так и ставит тип.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
CVarDumper::dump('123'===123); // выдаст falseSvyatov писал(а):Пример некорректного проставления типа пхп?
Жду Yii 3!
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
И что тут некорректного? У строки и правда другой тип, нежели у числаmc-bear писал(а):CVarDumper::dump('123'===123); // выдаст falseSvyatov писал(а):Пример некорректного проставления типа пхп?
Если код пишется осознанно и продуманно, то сравнение с типом (===) только на пользу, ибо дает на ранних этапах выявить некоторые косяки. Лично в своей практике сравнение без типов я использую только для чисел, а для строк только с типом. Помогает избегать многих ошибок.
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Лично я стараюсь писать "==", но часто косяки бывают при сравнении (true, false) (1, 0) и ("1","0")
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
http://test.loc/site/login?id=43
var_dump($_GET['id]) -> string(2)"42", логично что ручками потом сам приведешь в int'у. Хотя это правильное проставление типа. Я скорее не правильно выразился. Скорее разработчики косячат во время разработки на пхп.
Проблемы возникают с == и === когда работаешь над большими проектами. Кто-то возвращает true, false, кто-то 0,1 и т.д.
var_dump($_GET['id]) -> string(2)"42", логично что ручками потом сам приведешь в int'у. Хотя это правильное проставление типа. Я скорее не правильно выразился. Скорее разработчики косячат во время разработки на пхп.
Проблемы возникают с == и === когда работаешь над большими проектами. Кто-то возвращает true, false, кто-то 0,1 и т.д.
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Отошли мы от темы)))
А есть еще какие-то решения насчет древовидной структуры данных? Неужели только Nested Sets???
А есть еще какие-то решения насчет древовидной структуры данных? Неужели только Nested Sets???
Re: Nested Sets + CTreeView, CDropdownList, CListBox
В сознании новичка много возможностей, в сознании эксперта — лишь несколько.
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Как сделать управление ветками дерева 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
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
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Нужно писать js который будет все это обрабатывать. Я для себя писал, можно было удалять, добавлять, редактировать и перемещать узлы drug'n'drop-ом. Сейчас скрипта не осталось, поделиться не смогу. Но там ничего сложного.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
Twitter: @timlar_ua
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Спасибо за ответ!Timlar писал(а): Нужно писать js который будет все это обрабатывать. Я для себя писал, можно было удалять, добавлять, редактировать и перемещать узлы drug'n'drop-ом. Сейчас скрипта не осталось, поделиться не смогу. Но там ничего сложного.
Жаль что пока нет примера для реализации, я думаю что многим такой вариант управления деревом понравится.
Я не так давно начал юзать Yii и пока не могу освоить гибкость фреймворка с использованием JS.
Если сделаю доработку обязательно выложу код!
Re: Nested Sets + CTreeView, CDropdownList, CListBox
CTreeView
НЕ показывает активный пункт меню, ни класса ни id.
НЕ показывает активный пункт меню, ни класса ни id.
В сознании новичка много возможностей, в сознании эксперта — лишь несколько.
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Код: Выделить всё
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',
)
);
}
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Я бы рекомендовал использовать вот это расширение: http://code.google.com/p/yiiext/source/ ... del/trees/. Сам с ним работаю, намного удобнее чем то, о котором говорится в данной теме.
Twitter: @timlar_ua
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Не нашел по данному расширению темы, поэтому пишу сюда.
При moveAsLast и видимо других подобных действиях не вызывается afterSave(); Это сделано специально, если да, то почему?
При moveAsLast и видимо других подобных действиях не вызывается afterSave(); Это сделано специально, если да, то почему?
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Да, это сделано специально. Операция переноса не вызывает событие afterSave(). В будующем планируется, что библиотека будет расширять стандартные AR события своими. Для этого метода это будет afterMove().
Re: Nested Sets + CTreeView, CDropdownList, CListBox
Сделал все как в посте, в самом начале темы, выскакивает ошибка 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 }
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Nested Sets + CTreeView, CDropdownList, CListBox
2 webgold: Прочитайте это сообщение
Twitter: @timlar_ua
Re: Nested Sets + CTreeView, CDropdownList, CListBox
А как используя данный класс вывести дерево в CtreeView?Timlar писал(а):Я бы рекомендовал использовать вот это расширение: http://code.google.com/p/yiiext/source/ ... del/trees/. Сам с ним работаю, намного удобнее чем то, о котором говорится в данной теме.