Dotclear

source: admin/users.php @ 565:a094a2471615

Revision 565:a094a2471615, 4.1 KB checked in by kozlika, 14 years ago (diff)

Accessib/ergo: améliorations des formulaires et titres de blog, antispam, users

Et le souci du détail avec une coquille dans un commentaire de users.php révélée par notre découvreur du jour. Thanks to adjaya  http://forum.dotclear.org/viewtopic.php?pid=306160#p306160

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 -----------------------------------------
12
13require dirname(__FILE__).'/../inc/admin/prepend.php';
14
15dcPage::checkSuper();
16
17# Delete users
18if (!empty($delete_users))
19{
20     foreach ($delete_users as $u)
21     {
22          try
23          {
24               # --BEHAVIOR-- adminBeforeUserDelete
25               $core->callBehavior('adminBeforeUserDelete',$u);
26               if ($u != $core->auth->userID()) {
27                    $core->delUser($u);
28               }
29          }
30          catch (Exception $e)
31          {
32               $core->error->add($e->getMessage());
33          }
34     }
35     if (!$core->error->flag()) {
36          http::redirect('users.php?del=1');
37     }
38}
39
40
41# Creating filter combo boxes
42$sortby_combo = array(
43__('Username') => 'U.user_id',
44__('Last Name') => 'user_name',
45__('First Name') => 'user_firstname',
46__('Display name') => 'user_displayname',
47__('Number of entries') => 'nb_post'
48);
49
50$order_combo = array(
51__('Descending') => 'desc',
52__('Ascending') => 'asc'
53);
54
55# Actions combo box
56$combo_action = array(
57     __('Set permissions') => 'setpermissions',
58     __('Delete') => 'deleteuser'
59);
60
61# --BEHAVIOR-- adminUsersActionsCombo
62$core->callBehavior('adminUsersActionsCombo',array(&$combo_action));
63
64
65# Get users
66$page = !empty($_GET['page']) ? $_GET['page'] : 1;
67$nb_per_page =  30;
68
69if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
70     $nb_per_page = $_GET['nb'];
71}
72
73$q = !empty($_GET['q']) ? $_GET['q'] : '';
74$sortby = !empty($_GET['sortby']) ?     $_GET['sortby'] : 'user_id';
75$order = !empty($_GET['order']) ?       $_GET['order'] : 'asc';
76
77$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
78
79$show_filters = false;
80
81# - Search filter
82if ($q) {
83     $params['q'] = $q;
84     $show_filters = true;
85}
86
87# - Sortby and order filter
88if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
89     if ($order !== '' && in_array($order,$order_combo)) {
90          $params['order'] = $sortby.' '.$order;
91          $show_filters = true;
92     }
93}
94
95try {
96     $rs = $core->getUsers($params);
97     $counter = $core->getUsers($params,1);
98     $user_list = new adminUserList($core,$rs,$counter->f(0));
99} catch (Exception $e) {
100     $core->error->add($e->getMessage());
101}
102
103
104/* DISPLAY
105-------------------------------------------------------- */
106$starting_script = dcPage::jsLoad('js/_users.js');
107if (!$show_filters) {
108     $starting_script .= dcPage::jsLoad('js/filter-controls.js');
109}
110
111dcPage::open(__('users'),$starting_script);
112
113if (!$core->error->flag())
114{
115     if (!empty($_GET['del'])) {
116          echo '<p class="message">'.__('User has been successfully removed.').'</p>';
117     }
118     
119     echo 
120     '<h2 class="post-title">'.__('Users').'</h2>'.
121     '<p class="top-add"><strong><a class="button add" href="user.php">'.__('Create a new user').'</a></strong></p>';
122     
123     if (!$show_filters) {
124          echo '<p><a id="filter-control" class="form-control" href="#">'.__('Filters').'</a></p>';
125     }
126     
127     echo
128     '<form action="users.php" method="get" id="filters-form">'.
129     '<fieldset class="two-cols"><legend>'.__('Filters').'</legend>'.
130     
131     '<div class="col">'.
132     '<p><label for="sortby">'.__('Order by:').' '.
133     form::combo('sortby',$sortby_combo,$sortby).
134     '</label> '.
135     '<label for="order">'.__('Sort:').' '.
136     form::combo('order',$order_combo,$order).
137     '</label></p>'.
138     '</div>'.
139     
140     '<div class="col">'.
141     '<p><label for="q">'.__('Search:').' '.
142     form::field('q',20,255,html::escapeHTML($q)).
143     '</label></p>'.
144     '<p><label for="nb" class="classic">'.  form::field('nb',3,3,$nb_per_page).' '.
145     __('Users per page').'</label> '.
146     '<input type="submit" value="'.__('Apply filters').'" /></p>'.
147     '</div>'.
148     
149     '<br class="clear" />'. //Opera sucks
150     '</fieldset>'.
151     '</form>';
152     
153     # Show users
154     $user_list->display($page,$nb_per_page,
155     '<form action="dispatcher.php" method="get" id="form-users">'.
156     
157     '%s'.
158     
159     '<div class="two-cols">'.
160     '<p class="col checkboxes-helpers"></p>'.
161     
162     '<p class="col right"><label for="dispatch_action" class="classic">'.
163     __('Selected users action:').' '.
164     form::combo('dispatch_action',$combo_action).
165     '</label> '.
166     '<input type="submit" value="'.__('ok').'" />'.
167     '</p>'.
168     '</div>'.
169     '</form>'
170     );
171}
172
173dcPage::close();
174?>
Note: See TracBrowser for help on using the repository browser.

Sites map