Index: admin/users.php
===================================================================
--- admin/users.php	(revision 3874)
+++ admin/users.php	(revision 0)
@@ -1,179 +1,174 @@
 <?php
-/**
- * @package Dotclear
- * @subpackage Backend
- *
- * @copyright Olivier Meunier & Association Dotclear
- * @copyright GPL-2.0-only
- */
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
 
-require dirname(__FILE__) . '/../inc/admin/prepend.php';
+require dirname(__FILE__).'/../inc/admin/prepend.php';
 
 dcPage::checkSuper();
 
+# Delete users
+if (!empty($delete_users))
+{
+	foreach ($delete_users as $u)
+	{
+		try
+		{
+			# --BEHAVIOR-- adminBeforeUserDelete
+			$core->callBehavior('adminBeforeUserDelete',$u);
+			
+			$core->delUser($u);
+		}
+		catch (Exception $e)
+		{
+			$core->error->add($e->getMessage());
+		}
+	}
+	
+	if (!$core->error->flag()) {
+		http::redirect('users.php?del=1');
+	}
+}
+
+
 # Creating filter combo boxes
-$sortby_combo = [
-    __('Username')          => 'user_id',
-    __('Last Name')         => 'user_name',
-    __('First Name')        => 'user_firstname',
-    __('Display name')      => 'user_displayname',
-    __('Number of entries') => 'nb_post'
-];
+$sortby_combo = array(
+__('Username') => 'U.user_id',
+__('Last Name') => 'user_name',
+__('First Name') => 'user_firstname',
+__('Display name') => 'user_displayname',
+__('Number of entries') => 'nb_post'
+);
 
-$sortby_lex = [
-    // key in sorty_combo (see above) => field in SQL request
-    'user_id'          => 'U.user_id',
-    'user_name'        => 'user_name',
-    'user_firstname'   => 'user_firstname',
-    'user_displayname' => 'user_displayname'];
-
-$order_combo = [
-    __('Descending') => 'desc',
-    __('Ascending')  => 'asc'
-];
+$order_combo = array(
+__('Descending') => 'desc',
+__('Ascending') => 'asc'
+);
 
 # Actions combo box
-$combo_action = [
-    __('Set permissions') => 'blogs',
-    __('Delete')          => 'deleteuser'
-];
+$combo_action = array(
+	__('Set permissions') => 'setpermissions',
+	__('Delete') => 'deleteuser'
+);
 
-# --BEHAVIOR-- adminUsersActionsCombo
-$core->callBehavior('adminUsersActionsCombo', [&$combo_action]);
+# --BEHAVIOR-- adminUser	sActionsCombo
+$core->callBehavior('adminUsersActionsCombo',array(&$combo_action));
+
+
+# Get users
+$page = !empty($_GET['page']) ? $_GET['page'] : 1;
+$nb_per_page =  30;
+
+if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
+	$nb_per_page = $_GET['nb'];
+}
+
+$q = !empty($_GET['q']) ? $_GET['q'] : '';
+$sortby = !empty($_GET['sortby']) ?	$_GET['sortby'] : 'user_id';
+$order = !empty($_GET['order']) ?		$_GET['order'] : 'asc';
+
+$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
 
 $show_filters = false;
 
-#?Get users
-$page        = !empty($_GET['page']) ? max(1, (integer) $_GET['page']) : 1;
-$nb_per_page = 30;
-
-if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
-    if ($nb_per_page != (integer) $_GET['nb']) {
-        $show_filters = true;
-    }
-    $nb_per_page = (integer) $_GET['nb'];
-}
-
-$q      = !empty($_GET['q']) ? $_GET['q'] : '';
-$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'user_id';
-$order  = !empty($_GET['order']) ? $_GET['order'] : 'asc';
-
-$params['limit'] = [(($page - 1) * $nb_per_page), $nb_per_page];
-
 # - Search filter
 if ($q) {
-    $params['q']  = $q;
-    $show_filters = true;
+	$params['q'] = $q;
+	$show_filters = true;
 }
 
 # - Sortby and order filter
-if ($sortby !== '' && in_array($sortby, $sortby_combo, true)) {
-    if (array_key_exists($sortby, $sortby_lex)) {
-        $params['order'] = $core->con->lexFields($sortby_lex[$sortby]);
-    } else {
-        $params['order'] = $sortby;
-    }
-    if ($order !== '' && in_array($order, $order_combo, true)) {
-        $params['order'] .= ' ' . $order;
-    } else {
-        $order = 'asc';
-    }
-} else {
-    $sortby = 'user_id';
-    $order  = 'asc';
-}
-if ($sortby != 'user_id' || $order != 'asc') {
-    $show_filters = true;
+if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
+	if ($order !== '' && in_array($order,$order_combo)) {
+		$params['order'] = $sortby.' '.$order;
+		$show_filters = true;
+	}
 }
 
-# Get users
 try {
-    $rs       = $core->getUsers($params);
-    $counter  = $core->getUsers($params, 1);
-    $rsStatic = $rs->toStatic();
-    if ($sortby != 'nb_post') {
-        // Sort user list using lexical order if necessary
-        $rsStatic->extend('rsExtUser');
-        $rsStatic = $rsStatic->toExtStatic();
-        $rsStatic->lexicalSort($sortby, $order);
-    }
-    $user_list = new adminUserList($core, $rsStatic, $counter->f(0));
+	$rs = $core->getUsers($params);
+	$counter = $core->getUsers($params,1);
+	$user_list = new adminUserList($core,$rs,$counter->f(0));
 } catch (Exception $e) {
-    $core->error->add($e->getMessage());
+	$core->error->add($e->getMessage());
 }
+
 
 /* DISPLAY
 -------------------------------------------------------- */
+$starting_script = dcPage::jsLoad('js/_users.js');
+if (!$show_filters) {
+	$starting_script .= dcPage::jsLoad('js/filter-controls.js');
+}
 
-dcPage::open(__('Users'),
-    dcPage::jsLoad('js/_users.js') . dcPage::jsFilterControl($show_filters),
-    dcPage::breadcrumb(
-        [
-            __('System') => '',
-            __('Users')  => ''
-        ])
-);
+dcPage::open(__('users'),$starting_script);
 
-if (!$core->error->flag()) {
-    if (!empty($_GET['del'])) {
-        dcPage::message(__('User has been successfully removed.'));
-    }
-    if (!empty($_GET['upd'])) {
-        dcPage::message(__('The permissions have been successfully updated.'));
-    }
+if (!$core->error->flag())
+{
+	if (!empty($_GET['del'])) {
+		echo '<p class="message">'.__('User has been successfully removed.').'</p>';
+	}
+	
+	echo '<h2>'.__('Users').'</h2>';
+	
+	echo '<p><strong><a href="user.php">'.__('Create a new user').'</a></strong></p>';
+	
+	if (!$show_filters) {
+		echo '<p><a id="filter-control" class="form-control" href="#">'.__('Filters').'</a></p>';
+	}
+	
+	echo
+	'<form action="users.php" method="get" id="filters-form">'.
+	'<fieldset class="two-cols"><legend>'.__('Filters').'</legend>'.
+	
+	'<div class="col">'.
+	'<p><label>'.__('Order by:').' '.
+	form::combo('sortby',$sortby_combo,$sortby).
+	'</label> '.
+	'<label>'.__('Sort:').' '.
+	form::combo('order',$order_combo,$order).
+	'</label></p>'.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<p><label>'.__('Search:').' '.
+	form::field('q',20,255,html::escapeHTML($q)).
+	'</label></p>'.
+	'<p><label class="classic">'.	form::field('nb',3,3,$nb_per_page).' '.
+	__('Users per page').'</label> '.
+	'<input type="submit" value="'.__('filter').'" /></p>'.
+	'</div>'.
+	
+	'<br class="clear" />'. //Opera sucks
+	'</fieldset>'.
+	'</form>';
+	
+	# Show users
+	$user_list->display($page,$nb_per_page,
+	'<form action="dispatcher.php" method="get" id="form-users">'.
+	
+	'%s'.
+	
+	'<div class="two-cols">'.
+	'<p class="col checkboxes-helpers"></p>'.
+	
+	'<p class="col right"><label class="classic">'.
+	__('Selected users action:').' '.
+	form::combo('dispatch_action',$combo_action).
+	'</label> '.
+	'<input type="submit" value="'.__('ok').'" />'.
+	'</p>'.
+	'</div>'.
+	'</form>'
+	);
+}
 
-    echo
-    '<p class="top-add"><strong><a class="button add" href="' . $core->adminurl->get("admin.user") . '">' . __('New user') . '</a></strong></p>' .
-    '<form action="' . $core->adminurl->get("admin.users") . '" method="get" id="filters-form">' .
-    '<h3 class="out-of-screen-if-js">' . __('Show filters and display options') . '</h3>' .
-
-    '<div class="table">' .
-    '<div class="cell">' .
-    '<h4>' . __('Filters') . '</h4>' .
-    '<p><label for="q" class="ib">' . __('Search:') . '</label> ' .
-    form::field('q', 20, 255, html::escapeHTML($q)) . '</p>' .
-    '</div>' .
-
-    '<div class="cell filters-options">' .
-    '<h4>' . __('Display options') . '</h4>' .
-    '<p><label for="sortby" class="ib">' . __('Order by:') . '</label> ' .
-    form::combo('sortby', $sortby_combo, $sortby) . '</p> ' .
-    '<p><label for="order" class="ib">' . __('Sort:') . '</label> ' .
-    form::combo('order', $order_combo, $order) . '</p>' .
-    '<p><span class="label ib">' . __('Show') . '</span> <label for="nb" class="classic">' .
-    form::number('nb', 0, 999, $nb_per_page) . ' ' . __('users per page') . '</label></p> ' .
-    '</div>' .
-    '</div>' .
-
-    '<p><input type="submit" value="' . __('Apply filters and display options') . '" />' .
-    '<br class="clear" /></p>' . //Opera sucks
-    '</form>';
-
-    # Show users
-    $user_list->display($page, $nb_per_page,
-        '<form action="' . $core->adminurl->get("admin.user.actions") . '" method="post" id="form-users">' .
-
-        '%s' .
-
-        '<div class="two-cols">' .
-        '<p class="col checkboxes-helpers"></p>' .
-
-        '<p class="col right"><label for="action" class="classic">' .
-        __('Selected users action:') . ' ' .
-        form::combo('action', $combo_action) .
-        '</label> ' .
-        '<input id="do-action" type="submit" value="' . __('ok') . '" />' .
-        form::hidden(['q'], html::escapeHTML($q)) .
-        form::hidden(['sortby'], $sortby) .
-        form::hidden(['order'], $order) .
-        form::hidden(['page'], $page) .
-        form::hidden(['nb'], $nb_per_page) .
-        $core->formNonce() .
-        '</p>' .
-        '</div>' .
-        '</form>',
-        $show_filters
-    );
-}
-dcPage::helpBlock('core_users');
 dcPage::close();
+?>
