PHPackages                             coderovich/yii2-jstree - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. coderovich/yii2-jstree

ActiveYii2-widget

coderovich/yii2-jstree
======================

jsTree Manager Plugin for Yii2

1.0.5(8y ago)020MITPHPPHP &gt;=5.4.0

Since Feb 11Pushed 7y ago1 watchersCompare

[ Source](https://github.com/coderovich/yii2-jstree)[ Packagist](https://packagist.org/packages/coderovich/yii2-jstree)[ Docs](https://github.com/coderovich/yii2-jstree)[ RSS](/packages/coderovich-yii2-jstree/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (5)Dependencies (4)Versions (7)Used By (0)

jsTree Manager for Yii2
=======================

[](#jstree-manager-for-yii2)

Виджет для управления деревом для моделей Nested Tree.

Набор Yii2 Behavior для хранения деревьев в БД и их совместного использования
=============================================================================

[](#набор-yii2-behavior-для-хранения-деревьев-в-бд-и-их-совместного-использования)

Nested Behaviors
================

[](#nested-behaviors)

How to use this extension
=========================

[](#how-to-use-this-extension)

Добавить в модель

```
const NODE_NAME = "nodeName";
# Your custom item renderer, named like get+self::NODE_NAME
public function getNodeName() {
    return "" . $this->name . "";
}
```

Добавить в контроллер

```
public function actions() {
    $modelClass = 'app\models\TreeModel';
    return [
        'moveNode'   => [
            'class'      => 'coderovich\jsTree\actions\MoveNodeAction',
            'modelClass' => $modelClass,
        ],
        'deleteNode' => [
            'class'      => 'coderovich\jsTree\actions\DeleteNodeAction',
            'modelClass' => $modelClass,
        ],
        'updateNode' => [
            'class'      => 'coderovich\jsTree\actions\UpdateNodeAction',
            'modelClass' => $modelClass,
        ],
        'createNode' => [
            'class'      => 'coderovich\jsTree\actions\CreateNodeAction',
            'modelClass' => $modelClass,
        ],
        'fetchTree'  => [
            'class'      => 'coderovich\jsTree\actions\FetchTreeAction',
            'modelClass' => $modelClass,
            # Максимально возможное число уровней в дереве. Опционально.
            # Callable
            "maxDepth"   => function ( $node ) {
                /** @var \app\models\TreeModel $node */
                return $node->depth < 2;
            }
        ],
    ];
}
```

Добавить в представление

```
use coderovich\jsTree\JsTree;

echo JsTree::widget([
    'modelClass' => '\app\models\TreeModel',
    'core'    => [
    "themes" => [ "stripes" => true ],
    ],
    'contextmenu' => [
    "items_top"=>new \yii\web\JsExpression( '{"assoc": {
    "separator_before": false,
    "separator_after": false,
    "label": "My Label",
    "title": "My Label",
    "_disabled":function(){
    return node.text.match(/disable_me_by_some_js_behavior_if_needed/i);
    },
    "action": function (obj) {
    window.location = "'.\yii\helpers\Url::to(['update']).'?id="+node.id
    }
    }}' )
    ],

    'plugins' => [ "changed", "state", 'types', 'dnd', 'contextmenu', 'sort' ,'wholerow'],
    //...
    ]);
```

Изменить вызов ActiveForm в \_form.php

```
