Dotclear

Changeset 452:c68ac440f56f


Ignore:
Timestamp:
06/30/11 10:55:01 (14 years ago)
Author:
Tomtom33 <tbouron@…>
Branch:
formfilters
Message:

Cleanup code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/lib.pager.php

    r449 r452  
    1212if (!defined('DC_RC_PATH')) { return; } 
    1313 
     14/** 
     15@ingroup DC_CORE 
     16@nosubgrouping 
     17@brief Dotclear Pager class. 
     18 
     19Dotclear Pager handles pagination for every admin list. 
     20*/ 
    1421class dcPager extends pager 
    1522{ 
     
    2734           
    2835          # Page text 
    29           $htmlText = sprintf(__('Page %s over %s'),$this->env,$this->nb_elements).'&nbsp;'; 
     36          $htmlText = sprintf(__('Page %s over %s'),$this->env,$this->nb_pages).'&nbsp;'; 
    3037           
    3138          # Previous page 
     
    8289} 
    8390 
     91/** 
     92@ingroup DC_CORE 
     93@nosubgrouping 
     94@brief Dotclear Generic column class. 
     95 
     96Dotclear Generic column handles each column object use in adminGenericList class. 
     97*/ 
    8498class adminGenericColumn 
    8599{ 
    86      protected $core; 
    87      protected $rs; 
    88      protected $id; 
    89      protected $title; 
    90      protected $callback; 
    91      protected $html; 
    92      protected $visibility; 
    93       
     100     protected $core;         /// <b>object</b> dcCore object 
     101     protected $id;           /// <b>string</b> ID of defined column 
     102     protected $title;        /// <b>string</b> Title of defined column 
     103     protected $callback;     /// <b>array</b> Callback calls to display defined column 
     104     protected $html;         /// <b>string</b> Extra HTML for defined column 
     105     protected $visibility;   /// <b>boolean</b> Visibility of defined column 
     106      
     107     /** 
     108     Inits Generic column object 
     109      
     110     @param    id        <b>string</b>       Column id 
     111     @param    title     <b>string</b>       Column title (for table headers) 
     112     @param    callback  <b>array</b>        Column callback (used for display) 
     113     @param    html      <b>string</b>       Extra html (used for table headers) 
     114     @param    can_hide  <b>boolean</b>      Defines if the column can be hidden or not 
     115     */ 
    94116     public function __construct($id,$title,$callback,$html = null,$can_hide = true) 
    95117     { 
     
    136158     } 
    137159      
    138      public function getInfo($k) 
    139      { 
    140           return property_exists(get_class($this),$k) ? $this->{$k} : null; 
    141      } 
    142       
     160     /** 
     161     Gets information of defined column 
     162      
     163     @param    info      <b>string</b>       Column info to retrive 
     164      
     165     @return   <b>mixed</b>   The information requested, null otherwise 
     166     */ 
     167     public function getInfo($info) 
     168     { 
     169          return property_exists(get_class($this),$info) ? $this->{$info} : null; 
     170     } 
     171      
     172     /** 
     173     Sets visibility of defined column 
     174      
     175     @param    visibility     <b>boolean</b>      Column visibility 
     176     */ 
    143177     public function setVisibility($visibility) 
    144178     { 
     
    148182     } 
    149183      
     184     /** 
     185     Returns visibility status of defined column 
     186      
     187     @return   <b>boolean</b>      true if column is visible, false otherwise 
     188     */ 
    150189     public function isVisible() 
    151190     { 
     
    153192     } 
    154193      
     194     /** 
     195     Returns if the defined column can be hidden 
     196      
     197     @return   <b>boolean</b> true if column can be hidden, false otherwise 
     198     */ 
    155199     public function canHide() 
    156200     { 
     
    159203} 
    160204 
    161 class adminGenericList 
     205/** 
     206@ingroup DC_CORE 
     207@nosubgrouping 
     208@brief abstract Generic list class. 
     209 
     210Dotclear Generic list handles administration lists 
     211*/ 
     212abstract class adminGenericList 
    162213{ 
    163214     protected $core; 
     
    166217     protected $columns; 
    167218      
     219     /* 
     220     Sets columns of defined list 
     221     */ 
     222     abstract function setColumns(); 
     223      
     224     /** 
     225     Inits List object 
     226      
     227     @param    core      <b>dcCore</b>       dcCore object 
     228     @param    rs        <b>recordSet</b>    Items recordSet to display 
     229     @param    rs_count  <b>int</b>          Total items number 
     230     */ 
    168231     public function __construct($core,$rs,$rs_count) 
    169232     { 
     
    181244          $this->html_end = __('end'); 
    182245           
    183           # Post columns 
    184           $this->addColumn('adminPostList','title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false); 
    185           $this->addColumn('adminPostList','date',__('Date'),array('adminPostList','getDate')); 
    186           $this->addColumn('adminPostList','datetime',__('Date and time'),array('adminPostList','getDateTime')); 
    187           $this->addColumn('adminPostList','category',__('Category'),array('adminPostList','getCategory')); 
    188           $this->addColumn('adminPostList','author',__('Author'),array('adminPostList','getAuthor')); 
    189           $this->addColumn('adminPostList','comment',__('Comments'),array('adminPostList','getComments')); 
    190           $this->addColumn('adminPostList','trackback',__('Trackbacks'),array('adminPostList','getTrackbacks')); 
    191           $this->addColumn('adminPostList','status',__('Status'),array('adminPostList','getStatus')); 
    192            
    193           # Post (mini list) columns 
    194           $this->addColumn('adminPostMiniList','title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false); 
    195           $this->addColumn('adminPostMiniList','date',__('Date'),array('adminPostList','getDate')); 
    196           $this->addColumn('adminPostMiniList','author',__('Author'),array('adminPostList','getAuthor')); 
    197           $this->addColumn('adminPostMiniList','status',__('Status'),array('adminPostList','getStatus')); 
    198            
    199           # Comment columns 
    200           $this->addColumn('adminCommentList','title',__('Title'),array('adminCommentList','getTitle'),' class="maximal"',false); 
    201           $this->addColumn('adminCommentList','date',__('Date'),array('adminCommentList','getDate')); 
    202           $this->addColumn('adminCommentList','author',__('Author'),array('adminCommentList','getAuthor')); 
    203           $this->addColumn('adminCommentList','type',__('Type'),array('adminCommentList','getType')); 
    204           $this->addColumn('adminCommentList','status',__('Status'),array('adminCommentList','getStatus')); 
    205           $this->addColumn('adminCommentList','edit','',array('adminCommentList','getEdit')); 
    206            
    207           # User columns 
    208           $this->addColumn('adminUserList','username',__('Username'),array('adminUserList','getUserName'),' class="maximal"',false); 
    209           $this->addColumn('adminUserList','firstname',__('First name'),array('adminUserList','getFirstName')); 
    210           $this->addColumn('adminUserList','lastname',__('Last name'),array('adminUserList','getLastName')); 
    211           $this->addColumn('adminUserList','displayname',__('Display name'),array('adminUserList','getDisplayName')); 
    212           $this->addColumn('adminUserList','entries',__('Entries'),array('adminUserList','getEntries')); 
    213            
    214           $core->callBehavior('adminGenericListConstruct',$this); 
     246          $this->setColumns(); 
     247           
     248          $core->callBehavior('adminListConstruct',$this); 
    215249           
    216250          $this->setColumnsVisibility(); 
    217251     } 
    218252      
    219      public function addColumn($context,$id,$title,$callback,$html = null,$can_hide = true) 
    220      { 
    221           try { 
    222                if (!array_key_exists($context,$this->columns)) { 
    223                     $this->columns[$context] = array(); 
    224                } 
    225                 
    226                $c = new adminGenericColumn($id,$title,$callback,$html,$can_hide); 
    227                $this->columns[$context][$c->getInfo('id')] = $c; 
    228           } 
    229           catch (Exception $e) { 
    230                if (DC_DEBUG) { 
    231                     $this->core->error->add($e->getMessage()); 
    232                } 
    233           } 
    234      } 
    235       
    236      public function setColumnsVisibility() 
    237      { 
    238           $ws = $this->core->auth->user_prefs->addWorkspace('lists'); 
    239            
    240           $user_pref = !is_null($ws->{$this->context}) ? unserialize($ws->{$this->context}) : array(); 
    241            
    242           foreach ($this->columns[$this->context] as $k => $v) { 
    243                $visibility =  array_key_exists($k,$user_pref) ? $user_pref[$k] : true; 
    244                if (array_key_exists($this->form_trigger,$_REQUEST)) { 
    245                     $key = sprintf($this->form_prefix,$k); 
    246                     $visibility = !array_key_exists($key,$_REQUEST) ? false : true; 
    247                } 
    248                if (!$v->canHide()) { 
    249                     $visibility = true; 
    250                } 
    251                $v->setVisibility($visibility); 
    252                $user_pref[$k] = $visibility; 
    253           } 
    254            
    255           if (array_key_exists($this->form_trigger,$_REQUEST)) { 
    256                $this->core->auth->user_prefs->lists->put($this->context,serialize($user_pref),'string'); 
    257           } 
    258      } 
    259       
     253     /** 
     254     Returns HTML code form used to choose which column to display 
     255      
     256     @return   <b>string</b>       HTML code form 
     257     */ 
    260258     public function getColumnsForm() 
    261259     { 
     
    266264          $list = array(); 
    267265           
    268           foreach ($this->columns[$this->context] as $k => $v) { 
     266          foreach ($this->columns as $k => $v) { 
    269267               $col_id = sprintf($this->form_prefix,$k); 
    270268               $col_label = sprintf('<label for="%s">%s</label>',$col_id,$v->getInfo('title')); 
     
    281279     } 
    282280      
    283      public function display($page,$nb_per_page,$enclose_block='') 
     281     /** 
     282     Returns HTML code list to display 
     283      
     284     @param    page           <b>string|int</b>   Current page 
     285     @param    nb_per_page    <b>string|int</b>   Number of items to display in each page 
     286     @param    enclose_block  <b>string</b>       HTML wrapper of defined list 
     287      
     288     @return   <b>string</b>       HTML code list 
     289     */ 
     290     public function display($page,$nb_per_page,$enclose_block = '') 
    284291     { 
    285292          if ($this->rs->isEmpty()) 
     
    301308               '<thead><tr>'; 
    302309                
    303                foreach ($this->columns[$this->context] as $k => $v) { 
     310               foreach ($this->columns as $k => $v) { 
    304311                    if ($v->isVisible()) { 
    305312                         $html_extra = $v->getInfo('html') != '' ? ' '.$v->getInfo('html') : ''; 
     
    334341     } 
    335342      
     343     /** 
     344     Adds column to defined list 
     345      
     346     @param    id        <b>string</b>       Column id 
     347     @param    title     <b>string</b>       Column title (for table headers) 
     348     @param    callback  <b>array</b>        Column callback (used for display) 
     349     @param    html      <b>string</b>       Extra html (used for table headers) 
     350     @param    can_hide  <b>boolean</b>      Defines if the column can be hidden or not 
     351     */ 
     352     protected function addColumn($id,$title,$callback,$html = null,$can_hide = true) 
     353     { 
     354          try { 
     355               $c = new adminGenericColumn($id,$title,$callback,$html,$can_hide); 
     356               $this->columns[$id] = $c; 
     357          } 
     358          catch (Exception $e) { 
     359               if (DC_DEBUG) { 
     360                    $this->core->error->add($e->getMessage()); 
     361               } 
     362          } 
     363     } 
     364      
     365     /** 
     366     Returns default caption text 
     367      
     368     @return   <b>string</b>       Default caption 
     369     */ 
     370     protected function getDefaultCaption() 
     371     { 
     372          return; 
     373     } 
     374      
     375     /** 
     376     Returns default HTMl code line 
     377      
     378     @return   <b>string</b>       Default HTMl code line 
     379     */ 
     380     protected function getDefaultLine() 
     381     { 
     382          return '<tr class="line">%s</tr>'; 
     383     } 
     384      
     385     /** 
     386     Sets columns visibility of defined list 
     387     */ 
     388     private function setColumnsVisibility() 
     389     { 
     390          $ws = $this->core->auth->user_prefs->addWorkspace('lists'); 
     391           
     392          $user_pref = !is_null($ws->{$this->context}) ? unserialize($ws->{$this->context}) : array(); 
     393           
     394          foreach ($this->columns as $k => $v) { 
     395               $visibility =  array_key_exists($k,$user_pref) ? $user_pref[$k] : true; 
     396               if (array_key_exists($this->form_trigger,$_REQUEST)) { 
     397                    $key = sprintf($this->form_prefix,$k); 
     398                    $visibility = !array_key_exists($key,$_REQUEST) ? false : true; 
     399               } 
     400               if (!$v->canHide()) { 
     401                    $visibility = true; 
     402               } 
     403               $v->setVisibility($visibility); 
     404               $user_pref[$k] = $visibility; 
     405          } 
     406           
     407          if (array_key_exists($this->form_trigger,$_REQUEST)) { 
     408               $this->core->auth->user_prefs->lists->put($this->context,serialize($user_pref),'string'); 
     409          } 
     410     } 
     411      
     412     /** 
     413     Returns HTML code for each line of defined list 
     414      
     415     @return   <b>string</b>       HTML code line 
     416     */ 
    336417     private function displayLine() 
    337418     { 
    338419          $res = ''; 
    339420           
    340           foreach ($this->columns[$this->context] as $k => $v) { 
     421          foreach ($this->columns as $k => $v) { 
    341422               if ($v->isVisible()) { 
    342423                    $c = $v->getInfo('callback'); 
     
    349430     } 
    350431      
     432     /** 
     433     Returns caption of defined list 
     434      
     435     @param    page           <b>string|int</b>   Current page 
     436      
     437     @return   <b>string</b>       HTML caption tag 
     438     */ 
    351439     private function getCaption($page) 
    352440     { 
     
    362450          return $caption; 
    363451     } 
    364       
    365      protected function getDefaultCaption() 
    366      { 
    367           return; 
    368      } 
    369       
    370      protected function getDefaultLine() 
    371      { 
    372           return '<tr class="line">%s</tr>'; 
    373      } 
    374452} 
    375453 
     454/** 
     455@ingroup DC_CORE 
     456@nosubgrouping 
     457@brief abstract posts list class. 
     458 
     459Handle posts list on admin side 
     460*/ 
    376461class adminPostList extends adminGenericList 
    377462{ 
     463     public function setColumns() 
     464     { 
     465          $this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false); 
     466          $this->addColumn('date',__('Date'),array('adminPostList','getDate')); 
     467          $this->addColumn('datetime',__('Date and time'),array('adminPostList','getDateTime')); 
     468          $this->addColumn('category',__('Category'),array('adminPostList','getCategory')); 
     469          $this->addColumn('author',__('Author'),array('adminPostList','getAuthor')); 
     470          $this->addColumn('comment',__('Comments'),array('adminPostList','getComments')); 
     471          $this->addColumn('trackback',__('Trackbacks'),array('adminPostList','getTrackbacks')); 
     472          $this->addColumn('status',__('Status'),array('adminPostList','getStatus')); 
     473     } 
     474      
    378475     protected function getDefaultCaption() 
    379476     { 
     
    479576} 
    480577 
     578/** 
     579@ingroup DC_CORE 
     580@nosubgrouping 
     581@brief abstract mini posts list class. 
     582 
     583Handle mini posts list on admin side (used for link popup) 
     584*/ 
    481585class adminPostMiniList extends adminPostList 
    482586{ 
     587     public function setColumns() 
     588     { 
     589          $this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false); 
     590          $this->addColumn('date',__('Date'),array('adminPostList','getDate')); 
     591          $this->addColumn('author',__('Author'),array('adminPostList','getAuthor')); 
     592          $this->addColumn('status',__('Status'),array('adminPostList','getStatus')); 
     593     } 
     594      
    483595     protected function getTitle()  
    484596     { 
     
    492604} 
    493605 
     606/** 
     607@ingroup DC_CORE 
     608@nosubgrouping 
     609@brief abstract comments list class. 
     610 
     611Handle comments list on admin side 
     612*/ 
    494613class adminCommentList extends adminGenericList 
    495614{ 
     615     public function setColumns() 
     616     { 
     617          $this->addColumn('title',__('Title'),array('adminCommentList','getTitle'),' class="maximal"',false); 
     618          $this->addColumn('date',__('Date'),array('adminCommentList','getDate')); 
     619          $this->addColumn('author',__('Author'),array('adminCommentList','getAuthor')); 
     620          $this->addColumn('type',__('Type'),array('adminCommentList','getType')); 
     621          $this->addColumn('status',__('Status'),array('adminCommentList','getStatus')); 
     622          $this->addColumn('edit','',array('adminCommentList','getEdit')); 
     623     } 
     624      
    496625     protected function getDefaultCaption() 
    497626     { 
     
    578707} 
    579708 
     709/** 
     710@ingroup DC_CORE 
     711@nosubgrouping 
     712@brief abstract users list class. 
     713 
     714Handle users list on admin side 
     715*/ 
    580716class adminUserList extends adminGenericList 
    581717{ 
     718     public function setColumns() 
     719     { 
     720          $this->addColumn('username',__('Username'),array('adminUserList','getUserName'),'class="maximal"',false); 
     721          $this->addColumn('firstname',__('First name'),array('adminUserList','getFirstName'),'class="nowrap"'); 
     722          $this->addColumn('lastname',__('Last name'),array('adminUserList','getLastName'),'class="nowrap"'); 
     723          $this->addColumn('displayname',__('Display name'),array('adminUserList','getDisplayName'),'class="nowrap"'); 
     724          $this->addColumn('entries',__('Entries'),array('adminUserList','getEntries'),'class="nowrap"'); 
     725     } 
     726      
    582727     protected function getDefaultCaption() 
    583728     { 
Note: See TracChangeset for help on using the changeset viewer.

Sites map