Esempio n. 1
0
<?php

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\helpers\ArrayHelper;
use backend\models\Workflow;
use backend\models\Cm;
use backend\models\Node;
use backend\assets\AutoCompleteAsset;
/* @var $this yii\web\View */
/* @var $model backend\models\Node */
/* @var $form yii\widgets\ActiveForm */
AutoCompleteAsset::register($this);
$root = Node::find()->where(['site_id' => $site_id])->one();
$leaves = $root->children()->andFilterWhere(['>', 'status', 0])->all();
$data = [];
$data[] = ['data' => $root->id, 'value' => '┣' . $root->id . '|' . $root->name];
foreach ($leaves as $leaf) {
    $data[] = ['data' => $leaf->id, 'value' => '┣' . str_repeat('━', $leaf->depth) . $leaf->id . '|' . $leaf->name];
}
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
?>

<div class="node-form">

    <?php 
$form = ActiveForm::begin(['layout' => 'horizontal', 'fieldConfig' => ['template' => "{label}\n{beginWrapper}\n{input}\n{hint}\n{error}\n{endWrapper}", 'horizontalCssClasses' => ['label' => 'col-lg-2', 'wrapper' => 'col-lg-8', 'error' => 'col-lg-8', 'hint' => 'col-lg-8']]]);
?>

    <?php 
echo $form->field($model, 'site_id')->hiddenInput()->label(false);
Esempio n. 2
0
 /**
  * Creates a new Node model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($site_id)
 {
     $model = new Node();
     $site = Site::findOne($site_id);
     $model->site_id = $site->id;
     $hasRoot = Node::find()->where(["site_id" => $site->id])->count();
     $siteRoot = null;
     $model->is_real = 1;
     $model->scenario = 'create';
     if ($hasRoot == 0) {
         $siteRoot = new Node(['site_id' => $site->id, 'name' => $site->name, 'cm_id' => 1, 'is_real' => 1, 'workflow' => 1, 'slug' => '', 'tpl_index' => 'index']);
         $siteRoot->makeRoot();
     } else {
         $siteRoot = Node::find()->where(["site_id" => $site->id])->roots()->one();
     }
     $model->parent = $siteRoot->id;
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
         $root = Node::findOne($model->parent);
         $result = $model->appendTo($root);
         if ($result) {
             return $this->redirect(['view', 'id' => $model->id]);
         } else {
             return $this->render('create', ['model' => $model, 'site' => $site]);
         }
     } else {
         return $this->render('create', ['model' => $model, 'site' => $site]);
     }
 }