Страница 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
А как используя данный класс вывести дерево в CtreeView?