제품에 대해 당신은 빠른 버튼/링크 일부 (샘플)을 가질 수있다 dataproviders, 여러 listviews를 설정하고 모든 것을 넣어 귀하의 DashboardController
. 아니! Yii 협약 및 MVC 일반적으로 있어야합니다 : 지방 모델, 이 컨트롤러 및 현명한보기. 위의 사항을 고려하여 데이터 유형별로 위젯을 만들어야합니다. 위젯은 "독립적"이어야하며 대시 보드의 "모델"과 같을 것입니다. 엔티티의 유형에 필요한 모든 로직을 포함해야하며, (자동 생성의 경우에도) 구성이 필요하지 않습니다.
대시 보드 위젯의 경우이 목적을 위해 기본 클래스를 만들어야하므로 대시 보드 위젯이 일관되게 보입니다.
좋은 시작은 CPortLet
입니다.이 제목은 이미 대시 보드 위젯과 같은 제목을 정의하고 제목은 div
입니다.
포틀릿보기에서 class ProductDashboard extends CPortlet // Or intermediate class, ie. DashboardItem
{
protected $_products = array();
public function init()
{
$this->_products = new CActiveDataProvider('Product', array(
'criteria'=>array(
'with'=>array('...'),
'order'=>'t.sort_order ASC',
'condition'=>'...',
'together'=>true,
),
));;
$this->title= 'Newset producs';
parent::init();
}
protected function renderContent()
{
$this->render('productDashboard');
}
}
, views/productDashboard.php
단지 장소 목록보기 :
<h4><?= CHtml::encode($data->name); ?></h4>
<p><?= CHtml::encode($data->description); ?></p>
<p>
<?= CHtml::link('Update', array('/product/update', 'id' => $data->id)); ?>
<?= CHtml::link('View', array('/product/view', 'id' => $data->id)); ?>
... More actions ...
</p>
: 제품에 대한
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_productView',
'enablePagination'=>true,
));
_productView
에서 장소 아무것도 여기
포틀릿으로 시작하는 몇 가지 예입니다 마지막으로 대시 보드 인덱스보기에서 해당 포트를 배치합니다. 수 : $this->widget('path.to.ProductDashboard');
$this->widget('path.to.SalesDashboard');
....
또는 일부 자동화 된 방법으로
: http://www.yiiframework.com/extension/emetrotile 당신이해야 할 모든 : 당신이 찾고있는 메뉴 목록, 당신은이 확장을 시도 할 수의 경우
// Possibly user defined only etc.
$widgets = array('ProductDashboard', 'SalesDashboard', ...);
foreach($widgets as $name)
$this->widget($name)
이 우리를 알려주십시오 참조
드류 그린 원래의 js를 썼다는 모든 시간을 개선 할 것으로 보인다. 기본적인 대답은 "매뉴얼을 읽는"것이기 때문에. 우리는 당신이 Yii에 대해 무엇을 알고 있는지를 알아야합니다;) –
예 http : //www.yiiframework와 같은 yii의 일부 모듈을 검사했습니다.co.kr/extension/yii-dashboard /하지만 그 문서가 없습니다 – NewUser
Yii에서 인터페이스를 좋아하는 django 관리자를 찾고 계십니까? – DevZer0