Skip to content

matperez/yii-ac-materialized-path-behavior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

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();

About

Yii active record materialized path tree behavior

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages