Dotclear


Ignore:
Timestamp:
08/20/13 16:32:39 (12 years ago)
Author:
Dsls
Branch:
twig
Message:

formfilters improvement, added applied filters features

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/class.dc.list.php

    r1491 r1498  
    1414 
    1515     protected $columns; 
     16     protected $columns_combo; 
    1617     protected $entries; 
    1718     protected $filterset; 
     
    5455     @param    form_prefix    <b>string</b>       form prefix to use for parameters 
    5556     */ 
    56      public function __construct($core,$name,$filterset,$fetcher,$action,$form_prefix="f_") { 
     57     public function __construct($core,$name,$fetcher,$action,$form_prefix="f_") { 
    5758          parent::__construct($core,$name,$action,'POST'); 
    5859          $this->entries = array(); 
     
    6061          $this->selection = new dcFieldCheckbox('entries',NULL,array('multiple' => true)); 
    6162          $this->addField($this->selection); 
    62           $this->filterset = $filterset; 
    6363          $this->fetcher = $fetcher; 
    64      } 
    65  
    66      public function setup() { 
    67           $this 
    68                ->addField(new dcFieldCombo('action','',array(), array( 
    69                     'label' => __('Selected entries action:')))) 
    70                ->addField(new dcFieldSubmit('ok',__('ok'), array())); 
    71           $columns_combo = array(); 
    72           foreach ($this->columns as $c) { 
    73                $columns_combo[$c->getID()] = $c->getName(); 
    74           } 
     64          $this->filterset = null; 
     65     } 
     66      
     67     protected function setupFilterset() { 
    7568          $this->sortby = new dcFilterCombo( 
    7669               'sortby', 
    7770               __('Sort By'),  
    78                __('Sort by'), 'sortby', $columns_combo,array('singleval'=> true,'static' => true)); 
     71               __('Sort by'), 'sortby', $this->columns_combo,array('singleval'=> true,'static' => true)); 
    7972          $this->filterset->addFilter($this->sortby); 
    8073          $order_combo = array('asc' => __('Ascending'),'desc' => __('Descending')); 
     
    8881          $this->filterset->addFilter($this->order); 
    8982          $this->filterset->addFilter($limit); 
    90           $this->filterset->setup(); 
     83          $this->filterset->setup();     
     84          $this->nb_items_per_page = $limit->getFields()->getValue(); 
     85 
     86     } 
     87      
     88     public function setup() { 
     89          $this 
     90               ->addField(new dcFieldCombo('action','',array(), array( 
     91                    'label' => __('Selected entries action:')))) 
     92               ->addField(new dcFieldSubmit('ok',__('ok'), array())); 
     93          $this->columns_combo = array(); 
     94          foreach ($this->columns as $c) { 
     95               $this->columns_combo[$c->getID()] = $c->getName(); 
     96          } 
     97          if ($this->filterset !== null) { 
     98               $this->setupFilterset(); 
     99          } 
    91100          parent::setup(); 
    92           $this->nb_items_per_page = $limit->getFields()->getValue(); 
    93101          if ($this->nb_items_per_page == 0) 
    94102               $this->nb_items_per_page = 10; 
     
    99107     protected function fetchEntries() { 
    100108          $params = new ArrayObject(); 
    101           $this->filterset->applyFilters($params); 
     109          if ($this->filterset != null) { 
     110               $this->filterset->applyFilters($params); 
     111          } 
    102112          $this->nb_items = $this->fetcher->getEntriesCount($params); 
    103113          $this->nb_pages = round($this->nb_items / $this->nb_items_per_page) + 1; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map