Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 1.54 KB

File metadata and controls

57 lines (43 loc) · 1.54 KB

yii-ac-materialized-path-behavior

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

Использоваение:

  1. Скопировать в папку ./protected/extensions/behaviors/

  2. Добавить поведение в модель

 public function behaviors()
 {
    return array(
        'MaterializedPathTree' => array(
            'class'=>'ext.behaviors.MaterializedPathTree',
            'pathField' => 'path',
            'positionField' => 'position',
            'levelField' => 'level',
        ),
    );
 }

Модель должна содержать подходящие поля для хранения параметров path, level, position.

Использование

// Сделать корневым элементом
$model->move(null);

// Сделать дочерним элементом объекта с id=1
$target = Item::model()->findByPk(1);
$model->move($target);

// Получить все корневые узлы
Item::model()->getRoots();

// Получить всех потомков заданного узла
$model->children;
foreach($model->children as $child) {
 var_dump($child->prop);
}

// Получить идентификаторы родителей
$model->getParentIds();

// Получить идентификатор непосредственного родителя
$model->getParentId();

// Изменение позиции узла
$model->setPosition(2);
$model->moveUp();