Построение меню как дерева.

Хочу построить меню как дерево и иметь возможнось работать с ним(редактирование, смена позиций по уровню).

Отображаю дерева я с помощью TreeView, но не знаю как сделать редакитрование, смену позиции, родителя для узла дерева. Кто-нить эту проблему решал? И как решал?

Как раз Nested Set расширение сделали

http://www.yiiframew…sion/nestedset/

Quote

Как раз Nested Set расширение сделали

http://www.yiiframew…sion/nestedset/

Юзаю давно, отличное расширение! Если будут вопросы - задавайте в этой ветке.

Подскажите как загрузить и редактировать дерево из БД.

я загружаю так


$root = Part::model()->findByPK(1);

$tree = $root->getTree();

Редактирование как обычно


public function actionUpdate(){

	$model=$this->loadPart();

	if(isset($_POST['Part']))

	{

		$model->attributes=$_POST['Part'];

		if($model->save())

			$this->redirect('/admin/parts');

	}


	$this->render('update',array(

		'model'=>$model,

		'path' => array_reverse($model->getPath(), true)

	));

}



Моя модель отличается от той которая в примере, но всё работает как часы. Были какие то косяки с самим расширением, но я их поправил.

При использовании moveBelow() разрушается все дерево(

пока не могу найти причину, может кто сталкивался с этим?

версия фреймворка 1.1.1

Можете попробовать это раширение. Документации на текущий момент нет, будет в версии 1.0 Возможности шире, чем у расширения в extension, особенно в отношении выборки. Если возникнут вопросы, обращайтесь, помогу с использованием.

Not Found =(

Ок, спасибо! попробую сейчас его

http://code.google.com/p/yiiext/source/browse/trunk/app/extensions/yiiext/behaviors/model/trees/

Приношу извинения, форум неправильно вставляет этот url. Он правильный: http://code.google.com/p/yiiext/source/browse/trunk/app/extensions/yiiext/behaviors/model/trees/ENestedSetBehavior.php

Заменить в enestedsetbehavior.php букву b на B. Очень странный глюк форума. :rolleyes:

Расширение очень понравилось!

с небольшими изменениями взял в работу

Дайте плиз пару примеров, как создать корень и ноды добавить.