<?php
require_once $_SERVER["DOCUMENT_ROOT"]."/".FOLDER."/classes/controller.class.php";
require_once $_SERVER["DOCUMENT_ROOT"]."/".FOLDER."/classes/database.class.php";
require_once $_SERVER["DOCUMENT_ROOT"]."/".FOLDER."/classes/activerecord.class.php";
require_once $_SERVER["DOCUMENT_ROOT"]."/".FOLDER."/classes/authentication.class.php";
require_once $_SERVER["DOCUMENT_ROOT"]."/".FOLDER."/model/user.class.php";
class Users extends Controller {
var $db;
var $auth;
var $current_user;
var $order;
var $sense;
function init() {
// database connection
$this->db = new Database(DATABASE_NAME, USER_NAME, PASSWORD);
// authentication
$this->auth = new Authentication($this->db);
if (!$this->auth->isLogged())
$this->redirect("login.php");
// current user
$this->current_user = new User($this->db, $this->auth->getUserId());
// messages
$this->loadMessages("messages/generic", $this->current_user->getLanguage());
$this->loadMessages("messages/user", $this->current_user->getLanguage());
// default parameters
$this->loadParams("order=date", "sense=desc");
$this->order = $this->getParam("order");
$this->sense = $this->getParam("sense");
}
function onPost() {
// parameters
$item_ids = $this->getParam("item_id:array");
if ($this->getAction() == "order_by") {
$this->setParam("order", $this->getValue("column"));
$this->setParam("sense", $this->getValue("sense"));
} else
if ($this->getAction() == "delete") {
foreach($item_ids as $item_id) {
$t = new ActiveRecord($this->db, "user", $item_id);
$t->delete();
}
} else
if ($this->getAction() == "delete_item") {
$item_id = $this->getValue();
$t = new ActiveRecord($this->db, "user", $item_id);
$t->delete();
}
}
function getRelativeSense($order) {
if (($this->order == $order) && ($this->sense == "asc"))
return "desc";
return "asc";
}
function getStringSense($order) {
if ($this->order == $order)
return $this->sense == "asc"? "(a..z)": "(z..a)";
return NULL;
}
function getRows() {
$ret = array();
// order
$order = NULL;
if ($this->order == "updated")
$order = "updated_on";
else
if ($this->order == "date")
$order = "created_on";
else
if ($this->order == "username")
$order = "username";
else
if ($this->order == "full_name")
$order = "full_name";
else
if ($this->order == "email")
$order = "email";
else
if ($this->order == "admin")
$order = "admin";
// sense
$sense = $this->sense == "asc"? NULL: " desc";
// sql
$sql = "
select
id,
created_on,
username,
full_name,
email,
receive_notifications,
admin
from user
order by ".$order.$sense.", id desc";
$result = $this->db->getResult($sql);
while ($row = $this->db->getRow($result))
array_push($ret, $row);
return $ret;
}
function getLoginName() {
$user_id = $this->auth->getUserId();
$t = new ActiveRecord($this->db, "user", $user_id);
return $t->get("username");
}
function getCurrentUser() {
return $this->current_user;
}
}
?>