2013-07-13 2 views
1

나는 yii에 초보자입니다. 나는 Yii에서 작은 신청을하고있다. product, sales, discount, customer, 과 같은 테이블이 있다고 가정 해 보겠습니다. 이제이 테이블에 대한 모든 모델과 컨트롤러 (crud)를 수행했습니다. 이제 관리자가 하나의 신제품을 입력하려고 할 때Yii Framework에서 대시 보드 만들기

http://localhost/application/index.php?r=product 

을 입력하고 있습니다. 같은 방식으로 그는 할인 구간을 가기 위해 할인을 입력해야합니다. 이제 모든 모듈을 대시 보드처럼 하나의 응용 프로그램에 렌더링하려고합니다. 여기서 admin은 해당 단일 페이지에서 원하는 것을 직접 변경할 수 있습니다. 그래서 누군가가 친절하게이 문제를 해결하는 방법을 말해 줄 수 있습니다. 어떤 도움이나 제안이라도 대단히 감사 할 것입니다.

편집links 겪었지만 거기에 모든 문서를 발견하지 않았다.

+0

이 우리를 알려주십시오 참조

드류 그린 원래의 js를 썼다는 모든 시간을 개선 할 것으로 보인다. 기본적인 대답은 "매뉴얼을 읽는"것이기 때문에. 우리는 당신이 Yii에 대해 무엇을 알고 있는지를 알아야합니다;) –

+0

예 http : //www.yiiframework와 같은 yii의 일부 모듈을 검사했습니다.co.kr/extension/yii-dashboard /하지만 그 문서가 없습니다 – NewUser

+0

Yii에서 인터페이스를 좋아하는 django 관리자를 찾고 계십니까? – DevZer0

답변

2

먼저 this을 살펴보십시오. 어, 거의 200 페이지,하지만 여기에두고 다음 답변에서 참조하겠습니다.

1 게으른 codders에 대한인가, 또는 사람이 바로 시작 사람 :

그래서, 우리는/편집을 관리하는 테이블/업데이트 작업을 삭제하고 YII 2 가지 방법에 당신을 도울 수있는 페이지를 원하는 프레임 워크 작업. documentation으로 가서 1.6 첫 번째 Yii 응용 프로그램 만들기을 찾으십시오. 이 기사는 데모 모델/뷰/컨트롤러로 기본 구성을 설정하는 데 도움이됩니다. 이 데모 설치의 결과는 더 많은 기능을 필요로하는 대시 보드와 같습니다.

두 번째 단계는 여기에 많은 코드가 필요하며 단계별로 모든 단계를 구현하는 방법에 대한 지침 일뿐입니다. Yii와 함께 첫 번째 단계에서 자동으로 수행 할 수 있습니다. 당신이 그것에 대해 더 알고 싶은지 물어보십시오.

건배!

1

메뉴를 구현하려는 것 같습니다. Ignat B.가 언급 한 첫 번째 Yii 응용 프로그램 만들기을 완료했다고 가정하면 CMenu 클래스 설명서를 읽고 해당 내용을 확인하면 layout.php 파일의 protected\views에 수정 내용이 적용됩니다.

3

먼저 무엇을 대시 보드에 표시해야하는지 생각해야합니다. 이미 일부 항목을 선택했습니다. 그에서이 단체가 보여주는 항목에 대한 다른 기준이 될 수 있습니다 :

  • 한 최신 제품을 표시합니다
  • 다른 사용자
  • 에 의해 마지막으로 편집 한 게시물을 보여줍니다 그리고 어쩌면 sales이 가장 높은 매출을 보여줍니다?

이제는 항목에 대한 일부 작업을 허용 할 때를 선택해야합니다.고객 update

  • orders 지금
  • 는,이 acomplish하기 위해, 당신은 몇 가지를 정의해야있을 수 publish :

    • 제품에 대해 당신은 빠른 버튼/링크 일부 (샘플)을 가질 수있다 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) 
      
    +0

    '마지막으로 대시 보드 인덱스보기에서 해당 포틀릿을 배치하십시오. '- 해당보기는 어디에 있습니까? /components/products/views/index.php에 있습니까? – MEM

    +0

    인덱스 작업에 대한 일반적인보기처럼 (또는 이름을 지정하면 yii가보기 이름을 강제로 표시하지 않습니다.) –

    1

    소스의 안내에 따라 다음과 같이로드하려는 위치로 전화하십시오.

    $this->widget('ext.emetrotile.EMetroTile', array(
        'Tiles'=>array(
           array('title'=>'Test Title', 'tiles'=>array(
            array('content'=>array('test1-a','test1-b'), 'liveTileOptions'=>array('data-speed'=>750, 'data-delay'=>3000,'data-stack'=>true)), 
            array('content'=>'test2', 'position'=>'bottom'), 
            array('content'=>'test4', 'position'=>'bottom'), 
            array('content'=>'Blog', 'style'=>'vertical', 'url'=>'http://blog.expressthisout.com'), 
            array('content'=>'test3', 'style'=>'horizontal'), 
            array('content'=>'test5', 'position'=>'bottom'), 
            array('content'=>'test6', 'position'=>'top'), 
    
           )) 
         ) 
    )); 
    
    0

    Syakur Rahman이 말했듯이 emetrotile은 대시 보드를 만드는 좋은 확장 프로그램입니다. 나는 각각의 앞면에있는 이미지와 뒷면에있는 텍스트가있는 멋진 3 x 2 메뉴를 만들었고, 차례 차례로 뒤집습니다. 아주 멋진 효과가 있지만 Windows 느낌이 있습니다. 이미 한 일을 http://www.drewgreenwell.com/projects/metrojs