두 가지 유형의 분류 트리 형식, 테이블 및 드롭다운 상자 형태의 트리 구조 제공 테이블 및 드롭다운 상자의 스타일을 사용자 정의하고, 형식화된 데이터로 사용되는 매개변수 열을 사용자 정의하고, 계층 관계를 사용자 정의할 수 있습니다. 매개변수 및 사용자 정의 테이블 열 이름을 정의하고 시간 형식도 설정합니다. 이 모든 작업이 자동으로 수행될 수 있습니다. 마음에 든다면 좋아요를 눌러주세요...
호출 메소드
테이블 메소드 호출
widget('ext.tree.widgets.TreeWidget',array(
' dataProvider' => $dataProvider, // 데이터 전달
'pid' => 'pid', // 상위 ID 설정
'tableClass' => ', // 테이블 스타일
'formatParam' => 'name', // 형식화된 필드 설정
'formatTime' => array( // 형식화된 시간 매개변수 설정
'created'
),
'action' => array(
array(
'label' => 'Edit', // 링크 이름
'url' => array(
'edit') => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct")', // 연결 생성
),
'urlParams' => 'id','name'), // URL 다음에 전달되어야 하는 매개변수 필드를 설정합니다.
),
array(
'label' => 'Add', // 링크 이름
'url' => array(
'add' => 'Yii::app()->controller->createUrl("/manage/taosearch/createProduct")', // 연결 생성
🎜> ),
'urlParams' => array('id','name'), // URL 뒤에 전달되어야 하는 매개변수 필드를 설정합니다
),
),
'tableHead' => array( // 테이블 컬럼 헤더 정보 설정
'Category ID',
'Channel',
'중국어 이름',
'영문 이름',
'이니셜 문자',
'정렬',
'분류수준',
'부모ID',
'생성시간',
'작업',
),
) ); ?>
드롭다운 상자 모드
widget('ext.tree.widgets.TreeWidget',array(
'dataProvider' => ; $cate, // 데이터 전달
'pid' => 'pid', // 상위 ID 설정
'formatParam' => 'name', // 서식 필드 설정
'treeType' => ; false, // 출력 트리 형식
'selectClass' => 'class="span11"', // 드롭다운 상자 스타일 설정
'defaultSelectValue' => box
의 기본값과 옵션은 0, '1차 열로 ל'
),
)) ?>
코드 복사
데이터를 찾을 수 없습니다.
코드 복사
/* * 이 템플릿을 변경하려면 도구 | 템플릿 * 편집기에서 템플릿을 엽니다. */ /** * 트리 설명 * * @author Wang Jiacheng * @email 819434425@qq.com * * 전달된 배열 형식, 연관 배열은 일 수 있습니다. * * 배열 ( 0 => 배열
(
'id' => '7'
'zone' => '의류'
'이름' = > '의류'
'ename' => '난좡'
'첫 번째' => 'l'
'sort_order' => 1'
'pid' => '6'
'created' => '0'
)
)
*
* 테이블 모드 호출
< ?php $this->widget('ext.tree.widgets.TreeWidget',array(
'dataProvider' => $dataProvider, // 데이터 전달
'pid' => 'pid', // 상위 ID 설정
'tableClass' => 'items table table-striped table-bordered table-densed', // 테이블 스타일
'formatParam' => 'name', // 서식 설정 필드
' formatTime' => array( // 형식화된 시간 매개변수 설정
'created'
),
'action' => array(
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( // 테이블 열 헤더 정보 설정
'Category ID',
' 뒤에 전달되어야 하는 매개변수 필드 채널',
'한자이름',
'영문이름',
'이니셜',
'정렬',
'분류등급',
'부모ID',
'생성 시간',
'작업',
),
)) ?>
*
* 드롭다운 박스 모드에서 호출
* < ?php $this->widget('ext.tree.widgets.TreeWidget',array(
'dataProvider' => $cate, // 데이터 전달
'pid' => 'pid', // 상위 ID 설정
'formatParam' => 'name', // 서식 필드 설정
'treeType' => false, // 출력 트리 형식
'selectClass' => ' class="span11 "', // 드롭다운 박스의 스타일 설정
'defaultSelectValue' => array( // 드롭다운 박스의 기본값과 옵션 설정
0, 1차로 'EMA 열 ל'
),
)) ?>
*/
class TreeWidget 확장 위젯 {
/**
* CArrayDataProvider 데이터 객체 또는 배열 데이터
* 매개변수를 수신하는 구성요소 데이터(연관 배열)
* @var 객체 배열
* /
공개 $dataProvider;
/**
* 데이터 수신 할당
* @var type
*/
공개 $arrAll = array();
/**
* 키 이름이 _ID인 다차원 관계
* @var 유형
*/
public $arrIdRelation = array();
/**
* _ID를 키 이름으로 기반으로 다차원 관계 단순화, 트리 다이어그램 출력에 사용
* @var 유형
*/
public $arrIdRelationSimple = array();
/**
* 원본 데이터를 키 이름이 _ID인 배열로 변환합니다.
* @var type
*/
public $arrIdAll = array();
/**
* 모든 부모-자식 관계
* @var 유형
*/
public $arrIdSon = array();
/**
* 리프 노드의 _ID
* @var 유형
*/
공개 $arrIdLeaf = array();
/**
*루트 노드의 _ID
* @var 유형
*/
공개 $arrIdRoot = array();
/**
* 每个节点下的子孙后代_ID
* @var type
*/
public $arrIdChildren = array();
/**
* 每個節點回逆到根
* @var type
*/
public $arrIdBackPath = array();
> /**
* 輸出樹的結構
* @var type
*/
public $strItem = ' gt;{$strSep}{$name}';
/**
* 設定表格樣式
* @var type
*/
public $tableClass = 'items table table-striped table-bordered table-condensed';
/**
* 資料欄位參數陣列
* @var type
*/
public $dataKey = array();
/ **
* 指定需要格式化的欄位
* @var type
*/
public $formatParam = 'name';
/**
* 表格列名稱
* @var type
*/
public $tableHead = array();
/ **
* 父 ID
* @var 型態
*/
public $pid = 'pid';
/**
* 指定樹的類型
* true 表格類型樹
* false 下拉框類型樹
* @var type
*/
public $treeType = true;
/**
* 綁定下拉框value值
* @var type
*/
public $optionValue = 'id';
/**
* 格式化時間
* @var type
*/
public $formatTime = array();
/**
* 下拉框樣式
* @var type
*/
public $selectClass = 'class="span3"';
/**
* 設定下拉框的預設值和選項
* @var type
*/
public $defaultSelectValue = array(
0,'≡作為一級欄目≡',
);
/**
* 設定下拉框是否多選
* true 多選
* false 單選
* @var type
*/
public $isMultiple = false;
* 綁定到下拉框的預設值
* @var type
*/
public $isMultiple = false;
/**
* 操作列
* @var type
*/
public $bindSelectValue = 0;
/**
* 運行
*/
public $action = array();
/**
* 運行
* @param 型態 $datas
* @return 型別
*/
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));
}
/**
* 取得html
* @return type
* @param type $datas
* @return 類型
*/
private function _run($datas){
foreach ($datas as $data) {
if (!empty($this ->動作) && 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( $數據);
}
$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;
}
/**
* 設定分層欄位
* 表格類型
* @return string
*/
public function getHtml() { return $this->genHtml(); /***/ public function getItemName(){ $html = ''; foreach ($this->dataKey as $v) { if ($this->formatParam == $v) $str = '{$strSep}'; else $str = ''; $html 。 = ''.$str.'{$'.$v.'} '; } $html .= ' '; 回傳$html ; }
/**
* 테이블 열 이름 가져오기
* @return 문자열
*/
공용 함수 getTableHead(){
$html = '';
foreach($this->tableHead as $v )
$html .= ''.$v.' ';
$html .= ' ';
$html 반환 ;
}
/**
* 테이블 형식으로 트리 가져오기
* @return 문자열
*/
공용 함수 getTable() {
$this->strItem = $this->getItemName();
$strRe = '';
$strRe .= ''.$this->getTableHead().'< ;/thead> ';
$strRe .= $this->genHtml();
$strRe .= '
';
return $strRe;
}
/**
* 드롭다운 박스 형태로 트리 가져오기
* @param type $strName
* @param array $arrValue
* @param type $blmMulti
* @param type $ strExt
* @param 유형 $arrFirst
* @return 문자열
*/
공개 함수 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 = '<옵션 값= "{$'.$this->optionValue.'}"{$selected} title="{$'.$this->formatParam.'}">{$strSep}{$'.$this-> ;formatParam.'}';
$strRe = ' $strRe .= ($blmMulti ? ' multiple="multiple"' : '') . (빈($strExt) ? '' : ' ' . $strExt) . '>';
if (is_array($arrFirst) && count($arrFirst) == 2) {
$strRe .= 'strItem . '";');
개수($arrTemp) > 0 && $strRe .= $this->genHtml($arrTemp, ($intSep 1));
}
}
return $strRe;
}
}
? >
제조대码