2 種類の分類ツリー形式、テーブルとドロップダウン ボックスの形式のツリー構造を提供します テーブルとドロップダウン ボックスのスタイルをカスタマイズしたり、パラメータのどの列を書式設定されたデータとして使用するかをカスタマイズしたり、階層関係パラメータをカスタマイズしたり、テーブルの列名をカスタマイズし、時間形式を設定することもできます。 これはすべて自動的に行われます。良いと思われた場合は、「いいね」を付けることを忘れないでください。
- メソッドの呼び出し
- フォームでの呼び出し
- widget('ext.tree.widgets.TreeWidget',array(
- 'dataProvider' => $dataProvider, // データを渡す
- ' pid' => 'pid', // 親 ID を設定します
- 'tableClass' => 'items table table-bordered table-condensed', // テーブルスタイル
- 'formatParam' => , // 書式設定フィールドを設定します
- 'formatTime' => array( // 書式設定された時間パラメータを設定します
- 'created' ),
- 'action' => array(
- 'label' => ' Edit', // リンク名
- 'url' => array(
- 'edit' => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct")', // 接続を生成します
- ),
- 'urlParams' => array('id','name'), // URLの後に渡す必要があるパラメータフィールドを設定します
- ),
- array(
- 'label' = > '追加 ', // リンク名
- 'url' => array(
- 'add' => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct" )', // 接続を生成します
- ),
- 'urlParams' => array('id','name'), // URL の後に渡す必要があるパラメータフィールドを設定します
- ),
- ),
- 'tableHead ' => array( / / テーブルの列ヘッダー情報を設定
- 'カテゴリID',
- 'チャンネル',
- '中国語名',
- '英語名',
- '頭文字',
- 'ソート',
- 'カテゴリレベル',
- '親 ID ',
- '作成時刻',
- '操作',
- ),
- )); ?>
-
- ドロップダウンボックスメソッド
- widget('ext .tree.widgets.TreeWidget', array(
- 'dataProvider' => $cate, // データを渡す
- 'pid' => 'pid', // 親 ID を設定する
- 'formatParam' => 'name', //書式設定フィールドを設定します
- 'treeType' => false, // 出力ツリー形式
- 'selectClass' => 'class="span11"', // ドロップダウン ボックスのスタイルを設定します
- 'defaultSelectValue' => // ドロップダウン ボックスの値とオプションのデフォルトを設定します
- 0 , '≡ を第 1 レベルの列として設定します ≡'
- ),
- )); ?>
-
-
コードをコピーします
< td colspan="4" class="empty">データが見つかりません。
-
-
-
- コードをコピー
- /*
- * このテンプレートを変更するには、[ツール] | [ツール] を選択します。テンプレート
- * を編集し、エディターでテンプレートを開きます。
- */
- /**... id' => '7'
- 'zone' => '衣服'
- 'ename' => 'nanzhuang'
- 'l '
- 'sort_order' => '8'
- 'pid' => '6'
- '作成されました' => )
- )
- * テーブルモード呼び出し
- widget('ext.tree.widgets.TreeWidget',array(
- 'dataProvider' => $dataProvider, // データを渡す
- 'pid' => 'pid' , // 親 ID を設定
- 'tableClass' => 'items table table-striped table-bordered table-condensed', // テーブルスタイル
- 'formatParam' => 'name', // 書式設定フィールドを設定
- 'formatTime' = > array( // フォーマットされた時間パラメータを設定します
- 'created'
- ),
- 'action' => array(
- 'label' => 'Edit', // リンク名
- 'url' => ; array(
- 'edit' => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct")', // 接続を生成します
- ),
- 'urlParams' => ; array('id','name'), // URL の後に渡す必要があるパラメータフィールドを設定します
- ),
- array(
- 'label' => 'Add', // リンク名
- 'url ' = > array(
- 'add' => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct")', // 接続を生成します
- ),
- 'urlParams ' = > array('id','name'), // URL の後に渡す必要があるパラメータ フィールドを設定します
- ),
- ),
- 'tableHead' => array( // テーブルの列ヘッダーを設定します情報
- 「カテゴリID」、
- 「チャンネル」、
- 「中国語名」、
- 「英語名」、
- 「頭文字」、
- 「並び替え」、
- 「分類レベル」、
- 「親ID」、
- 「作成」 time',
- 'オペレーション ',
- ),
- )); ?>
- *
- * ドロップダウン ボックス モードで呼び出されます
- * widget('ext.tree.widgets.TreeWidget ',array(
- 'dataProvider' = > $cate, // データを渡す
- 'pid' => 'pid', // 親 ID を設定する
- 'formatParam' => 'name', // 書式設定フィールドを設定する
- 'treeType' => false , // 出力ツリー形式
- 'selectClass' => 'class="span11"', // ドロップダウンボックスのスタイルを設定
- 'defaultSelectValue' => array( // デフォルトを設定ドロップダウン ボックスの値とオプション
- 0 , ' ≡ 第 1 レベルの列として ≡'
- ),
- )); ?>
- */
- class TreeWidget extends Widget {
- /**
- * CArrayDataProvider データオブジェクトまたは配列データ
- * パラメーターを受け取るコンポーネントデータ (連想配列)
- * @var オブジェクト配列
- */
- public $dataProvider;
-
- /**
- * データを受信するための代入
- * @var 型
- */
- public $arrAll = array();
-
- /**
- * _ID をキー名とする多次元リレーションシップ
- * @var 型
- */
- public $arrIdRelation = array();
-
- /**
- * キー名として _ID を使用した多次元関係の簡略化、ツリー図の出力に使用されます
- * @var 型
- */
- public $arrIdRelationSimple = array();
-
- /**
- * 元データを_IDをキー名とした配列に変換
- * @var型
- */
- public $arrIdAll = array();
-
- /**
- * すべての親子関係
- * @var 型
- */
- public $arrIdSon = 配列();
-
- /**
- *リーフノードの_ID
- * @varタイプ
- */
- public $arrIdLeaf = array();
-
- /**
- *ルートノードの_ID
- * @varタイプ
- */
- public $arrIdRoot = array();
-
- /**
- * 每个节点下的子孙後代_ID
- * @var 型
- */
- public $arrIdChildren = array();
-
- /**
- * 各ノードはルートに戻ります
- * @var タイプ
- */
- public $arrIdBackPath = array();
-
- /**
- * 出力ツリー構造
- * @var 型
- */
- public $strItem = '
{$strSep}{$name}';
-
- /**
- * テーブルスタイルを設定します
- * @var タイプ
- */
- public $tableClass = 'items table table-striped table-border table-condensed';
-
- /* *
- * データフィールドパラメータ配列
- * @var 型
- */
- public $dataKey = array();
-
- /**
- * フォーマットする必要があるフィールドを指定します
- * @var type
- */
- public $formatParam = 'name';
-
- /**
- * テーブルの列名
- * @var 型
- */
- public $tableHead = array ();
-
- /**
- * 父ID
- * @var type
- */
- public $pid = 'pid';
-
- /**
- * ツリーの種類を指定します
- * true テーブル型ツリー
- * false ドロップダウン ボックス型ツリー
- * @var 型
- */
- public $treeType = true;
-
- /**
- * ドロップダウンボックスの値をバインドします
- * @var type
- */
- public $optionValue = 'id';
-
- /**
- * フォーマット時間
- * @var タイプ
- */
- public $formatTime = array();
-
- /**
- * ドロップダウンボックススタイル
- * @var タイプ
- */
- public $selectClass = 'class="span3"';
-
- /**
- * ドロップダウンボックスのデフォルト値とオプションを設定します
- * @var type
- */
- public $defaultSelectValue = array(
- 0,'≡ 作として一级栏目 ≡',
- );
-
- /**
- * ドロップダウンボックスに複数の選択があるかどうかを設定します
- * 複数選択の場合は true
- * 単一選択の場合は false
- * @var type
- */
- public $isMultiple = false;
-
- /**
- * ドロップダウンボックスにバインドされるデフォルト値
- * @var タイプ
- */
- public $bindSelectValue = 0;
-
- /**
- * 操作列
- * @var 型
- */
- public $action = array();
-
-
- /**
- * 走る
- */
- public function run() {
- if (is_array($this->dataProvider) && count($this->dataProvider) > 0)
- $data = $this ->_run($this->dataProvider);
- else if (is_object($this->dataProvider) && count($this->dataProvider->rawData) > 0)
- $data = $this ->_run($this->dataProvider->rawData);
-
-
- $this->render('tree' , array('data'=>$data));
- }
-
- /**
- * 実行
- * @param type $datas
- * @return type
- * @param type $datas
- * @return type
- * /
- プライベート関数 _run($datas){
- foreach ($datas as $data) {
- if (!empty($this->action) && count($this->action) > 0) {
- foreach ($this->action as $key => $action) {
- $k = array_keys($action['url']);
- $data[$k[0]] = '';
- }
- }
- $this->arrAll[] = $data;
- $this->dataKey = array_keys($data);
- }
-
-
- $this->processData();
- if ($this->treeType === true)
- $data = $this->getTable();
- else
- $data = $this- >getSelect($this->pid, $this->bindSelectValue, $this->isMultiple, $this->selectClass, $this->defaultSelectValue);
-
- return $data;
- }
-
- /**
- * HTML を取得します
- * @return type
- */
- public function getHtml() {
- return $this->genHtml();
- }
-
- /**
- * 階層フィールドを設定します
- * テーブルタイプ
- * @return string
- */
- public function getItemName(){
- $html = '
';
- foreach($this->dataKey as $v) {
- if ($this->formatParam == $v)
- $str = '{$strSep}';
- else
- $str = '';
-
- $html .= '
'.$str.'{$'.$v.'} | ';
- }
- $html .= '
';🎜 $html を返す;🎜 }
-
- /**
- * テーブルの列名を取得します
- * @return string
- */
- public function getTableHead(){
- $html = '
';
- foreach($this->tableHead as $v)
- $html .= '
';
-
- $html .= '
| ';
- return $html;
- }
-
- /**
- * ツリーを表形式で取得します
- * @return string
- */
- public function getTable( ) {
- $this->strItem = $this->getItemName();
- $strRe = '
';
- $strRe .= ''.$this->getTableHead().'';
- $strRe .= $this->genHtml();
- $strRe .= '< /tbody>
';
- return $strRe;
- }
-
- /**
- * ドロップダウンボックスの形式でツリーを取得します
- * @param type $strName
- * @param array $arrValue
- * @param type $blmMulti
- * @param type $strExt
- * @param type $arrFirst
- * @戻り文字列
- */
- public function getSelect($strName = 'tree', $arrValue = array(), $blmMulti = false , $strExt = '', $arrFirst = null) {
- !is_array($arrValue) && $arrValue = array($arrValue);
- foreach ($this->arrIdAll as $strTemp => $arrTemp) {
- $this->arrIdAll[$strTemp]['selected'] = '';
-
- if (in_array($arrTemp['id'], $arrValue)) {
- $this->arrIdAll[$strTemp][ 'selected'] = ' selected="selected"';
- }
- }
- $this->strItem = '';
- $strRe = '< id="id_' を選択します。 $strName 。 ''" 名前="' 。 $strName 。 ($blmMulti ? '[]' : '') 。 '"';
- $strRe .= ($blmMulti ? ' multiple="multiple"' : '') . (empty($strExt) ? '' : ' ' . $strExt) . '>';
-
- if (is_array($arrFirst) && count($arrFirst) == 2) {
- $strRe .= '
- count($arrTemp) > 0 && $strRe .= $this->genHtml($arrTemp, ($intSep + 1));
- }
- }
- return $strRe;
- }
- }
- ?>
复制發
|