Dotclear

source: inc/admin/lib.pager.php @ 873:f9ef04edef05

Revision 873:f9ef04edef05, 7.2 KB checked in by Dsls <dsls@…>, 13 years ago (diff)

Turned db fetches into foreach, upgraded jquery

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_RC_PATH')) { return; }
13
14class adminGenericList
15{
16     protected $core;
17     protected $items;
18     protected $item_count;
19     
20     public function __construct($core,$items,$item_count)
21     {
22          $this->core =& $core;
23          $this->items =& $items;
24          $this->item_count = $item_count;
25          $this->html_prev = __('&#171;prev.');
26          $this->html_next = __('next&#187;');
27     }
28}
29
30class adminPostList extends adminGenericList
31{
32     public function display($page,$nb_per_page,$enclose_block='')
33     {
34          if (count($this->items) == 0)
35          {
36               echo '<p><strong>'.__('No entry').'</strong></p>';
37          }
38          else
39          {
40               $pager = new pager($page,$this->item_count,$nb_per_page,10);
41               $pager->html_prev = $this->html_prev;
42               $pager->html_next = $this->html_next;
43               $pager->var_page = 'page';
44               
45               $html_block =
46               '<table class="clear"><tr>'.
47               '<th colspan="2">'.__('Title').'</th>'.
48               '<th>'.__('Date').'</th>'.
49               '<th>'.__('Author').'</th>'.
50               '<th>'.__('Status').'</th>'.
51               '</tr>%s</table>';
52               
53               if ($enclose_block) {
54                    $html_block = sprintf($enclose_block,$html_block);
55               }
56               
57               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
58               
59               $blocks = explode('%s',$html_block);
60               
61               echo $blocks[0];
62               
63               foreach ($this->items as $item)
64               {
65                    echo $this->postLine($item);
66               }
67               
68               echo $blocks[1];
69               
70               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
71          }
72     }
73     
74     private function postLine($item)
75     {
76          $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
77          switch ($item->post_status) {
78               case 1:
79                    $img_status = sprintf($img,__('published'),'check-on.png');
80                    break;
81               case 0:
82                    $img_status = sprintf($img,__('unpublished'),'check-off.png');
83                    break;
84               case -1:
85                    $img_status = sprintf($img,__('scheduled'),'scheduled.png');
86                    break;
87               case -2:
88                    $img_status = sprintf($img,__('pending'),'check-wrn.png');
89                    break;
90          }
91         
92          $protected = '';
93          if ($item->post_password) {
94               $protected = sprintf($img,__('protected'),'locker.png');
95          }
96         
97          $selected = '';
98          if ($item->post_selected) {
99               $selected = sprintf($img,__('selected'),'selected.png');
100          }
101         
102         
103          $res = '<tr class="line'.($item->post_status != 1 ? ' offline' : '').'"'.
104          ' id="p'.$item->post_id.'">';
105         
106          $res .=
107          '<td class="nowrap">'.
108          form::checkbox(array('entries[]'),$item->post_id,'','','',!$item->isEditable()).'</td>'.
109          '<td class="maximal"><a href="'.$this->core->getPostAdminURL($item->post_type,$item->post_id).'">'.
110          html::escapeHTML($item->post_title).'</a></td>'.
111          '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$item->post_dt).'</td>'.
112          '<td class="nowrap">'.$item->user_id.'</td>'.
113          '<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.'</td>'.
114          '</tr>';
115         
116          return $res;
117     }
118}
119
120class adminPostMiniList extends adminGenericList
121{
122     public function display($page,$nb_per_page,$enclose_block='')
123     {
124          if (count($this->items) == 0)
125          {
126               echo '<p><strong>'.__('No entry').'</strong></p>';
127          }
128          else
129          {
130               $pager = new pager($page,$this->item_count,$nb_per_page,10);
131               $pager->html_prev = $this->html_prev;
132               $pager->html_next = $this->html_next;
133               $pager->var_page = 'page';
134               
135               $html_block =
136               '<table class="clear"><tr>'.
137               '<th>'.__('Title').'</th>'.
138               '<th>'.__('Date').'</th>'.
139               '<th>'.__('Author').'</th>'.
140               '<th>'.__('Status').'</th>'.
141               '</tr>%s</table>';
142               
143               if ($enclose_block) {
144                    $html_block = sprintf($enclose_block,$html_block);
145               }
146               
147               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
148               
149               $blocks = explode('%s',$html_block);
150               
151               echo $blocks[0];
152               
153               foreach ($this->items as $item)
154               {
155                    echo $this->postLine($item);
156               }
157               
158               echo $blocks[1];
159               
160               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
161          }
162     }
163     
164     private function postLine($item)
165     {
166          $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
167          switch ($item->post_status) {
168               case 1:
169                    $img_status = sprintf($img,__('published'),'check-on.png');
170                    break;
171               case 0:
172                    $img_status = sprintf($img,__('unpublished'),'check-off.png');
173                    break;
174               case -1:
175                    $img_status = sprintf($img,__('scheduled'),'scheduled.png');
176                    break;
177               case -2:
178                    $img_status = sprintf($img,__('pending'),'check-wrn.png');
179                    break;
180          }
181         
182          $protected = '';
183          if ($item->post_password) {
184               $protected = sprintf($img,__('protected'),'locker.png');
185          }
186         
187          $selected = '';
188          if ($item->post_selected) {
189               $selected = sprintf($img,__('selected'),'selected.png');
190          }
191         
192         
193          $res = '<tr class="line'.($item->post_status != 1 ? ' offline' : '').'"'.
194          ' id="p'.$item->post_id.'">';
195         
196          $res .=
197          '<td class="maximal"><a href="'.$this->core->getPostAdminURL($item->post_type,$item->post_id).'" '.
198          'title="'.html::escapeHTML($item->getURL()).'">'.
199          html::escapeHTML($item->post_title).'</a></td>'.
200          '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$item->post_dt).'</td>'.
201          '<td class="nowrap">'.$item->user_id.'</td>'.
202          '<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.'</td>'.
203          '</tr>';
204         
205          return $res;
206     }
207}
208
209class adminUserList extends adminGenericList
210{
211     public function display($page,$nb_per_page,$enclose_block='')
212     {
213          if (count($this->items) == 0)
214          {
215               echo '<p><strong>'.__('No user').'</strong></p>';
216          }
217          else
218          {
219               $pager = new pager($page,$this->item_count,$nb_per_page,10);
220               $pager->html_prev = $this->html_prev;
221               $pager->html_next = $this->html_next;
222               $pager->var_page = 'page';
223               
224               $html_block =
225               '<table class="clear"><tr>'.
226               '<th colspan="2">'.__('Username').'</th>'.
227               '<th>'.__('First Name').'</th>'.
228               '<th>'.__('Last Name').'</th>'.
229               '<th>'.__('Display name').'</th>'.
230               '<th class="nowrap">'.__('Entries').'</th>'.
231               '</tr>%s</table>';
232               
233               if ($enclose_block) {
234                    $html_block = sprintf($enclose_block,$html_block);
235               }
236               
237               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
238               
239               $blocks = explode('%s',$html_block);
240               
241               echo $blocks[0];
242               
243               foreach ($this->items as $item)
244               {
245                    echo $this->userLine($item);
246               }
247               
248               echo $blocks[1];
249               
250               echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
251          }
252     }
253     
254     private function userLine($item)
255     {
256          $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
257          $img_status = '';
258         
259          $p = $this->core->getUserPermissions($item->user_id);
260         
261          if (isset($p[$this->core->blog->id]['p']['admin'])) {
262               $img_status = sprintf($img,__('admin'),'admin.png');
263          }
264          if ($item->user_super) {
265               $img_status = sprintf($img,__('superadmin'),'superadmin.png');
266          }
267          return
268          '<tr class="line">'.
269          '<td class="nowrap">'.form::hidden(array('nb_post[]'),(integer) $item->nb_post).
270          form::checkbox(array('user_id[]'),$item->user_id).'</td>'.
271          '<td class="maximal"><a href="user.php?id='.$item->user_id.'">'.
272          $item->user_id.'</a>&nbsp;'.$img_status.'</td>'.
273          '<td class="nowrap">'.$item->user_firstname.'</td>'.
274          '<td class="nowrap">'.$item->user_name.'</td>'.
275          '<td class="nowrap">'.$item->user_displayname.'</td>'.
276          '<td class="nowrap"><a href="posts.php?user_id='.$item->user_id.'">'.
277          $item->nb_post.'</a></td>'.
278          '</tr>';
279     }
280}
281?>
Note: See TracBrowser for help on using the repository browser.

Sites map