/** * @list : danh sách nhóm người dùng * @selectvalue : giá trị 'selected' nếu parent_id trùng với id nhóm * @group_id : id nhóm cần sửa truyền vào * @parent_id : id nhóm cha * KQ: đưa ra danh sách nhóm dưới dạng selectbox */ public static function DropdownGroup($list, $selectvalue = null, $group_id = '', $parent_id = null) { $html = ''; foreach ($list as $row) { $selected = $row['id'] == $selectvalue ? 'selected' : ''; $disabled = $row['id'] == $group_id ? 'disabled' : ''; $prefix = str_repeat('|-- ', substr_count($row['parents'], '-') - 1); if ($row['parent_id'] == $parent_id) { $html .= '<option value="' . $row['id'] . ' " ' . $selected . $disabled . '> ' . $prefix . $row['title'] . '</option>'; $html .= Recursive::DropdownGroup($list, $selectvalue, $group_id, $row['id']); } } return $html; }
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; use app\models\Skill; use common\widgets\Recursive; /* @var $this yii\web\View */ /* @var $model app\models\Quiz */ /* @var $form yii\widgets\ActiveForm */ $skills = Skill::find()->all(); function cmp($a, $b) { return strcmp($a->parents, $b->parents); } usort($skills, "cmp"); $data = Recursive::sortArrayDropDown($skills); ?> <div class="row-fluid"> <?php $form = ActiveForm::begin(['options' => ['class' => 'form-horizontal']]); ?> <?php $skill_id = Yii::$app->request->get('skill_id'); if ($skill_id && Skill::findOne($skill_id)) { echo $form->field($model, 'skill_id')->hiddenInput(['value' => $skill_id])->label(false); } else { echo $form->field($model, 'skill_id', ['template' => '{label}<div class="controls">{input}{error}{hint}</div>'])->dropdownList($data, ['prompt' => '-- Chọn kỹ năng --', 'class' => 'span6']); }
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; use common\widgets\Recursive; use app\models\Category; /* @var $this yii\web\View */ /* @var $model app\models\Skill */ /* @var $form yii\widgets\ActiveForm */ $cats = Category::findAll(['state' => 1]); function cmp($a, $b) { return strcmp($a->parents, $b->parents); } usort($cats, "cmp"); $data = Recursive::sortArrayDropDown($cats); ?> <div class="row-fluid"> <?php $form = ActiveForm::begin(['options' => ['class' => 'form-horizontal', 'enctype' => 'multipart/form-data']]); ?> <?php echo $form->field($model, 'title', ['template' => '{label}<div class="controls">{input}{error}{hint}</div>'])->textInput(['maxlength' => true, 'class' => 'span6', 'onblur' => 'fillAlias()']); ?> <?php echo $form->field($model, 'alias', ['template' => '{label}<div class="controls">{input}{error}{hint}</div>'])->textInput(['maxlength' => true, 'class' => 'span6']); ?>
use yii\helpers\Html; use yii\widgets\ActiveForm; use common\widgets\Recursive; use app\models\AssignRole; use yii\helpers\ArrayHelper; /* @var $this yii\web\View */ /* @var $model app\models\AssignRole */ /* @var $form yii\widgets\ActiveForm */ $groups = AssignRole::findAll(['state' => 1]); function cmp($a, $b) { return strcmp($a->parents, $b->parents); } usort($groups, "cmp"); $data = Recursive::sortArrayDropDown($groups); ?> <div class="row-fluid"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'title')->textInput(['maxlength' => true]); ?> <?php echo $form->field($model, 'parent_id')->dropdownList($data, ['prompt' => 'Nhóm gốc']); ?>