boka3/include/UserPage.php

65 lines
2.1 KiB
PHP

<?php
class UserPage extends Page {
private $action = 'list';
private $user = null;
public function __construct() {
parent::__construct();
if(isset($_GET['action'])) {
$this->action = $_GET['action'];
}
if(isset($_GET['id'])) {
$id = $_GET['id'];
if($id) {
try {
$this->user = new User($_GET['id']);
} catch(Exception $e) {
$this->user = null;
$this->action = 'list';
$this->error = 'Det finns ingen användare med det ID-numret.';
}
}
}
switch($this->action) {
case 'show':
$this->subtitle = 'Låntagardetaljer';
break;
case 'list':
$this->subtitle = 'Låntagarlista';
break;
}
}
protected function render_body() {
switch($this->action) {
case 'list':
print($this->build_user_table(get_items('user')));
break;
case 'show':
print($this->build_user_details());
break;
}
}
private function build_user_details() {
$active_loans = $this->user->get_loans('active');
$table_active = 'Inga aktuella lån.';
if($active_loans) {
$table_active = $this->build_user_loan_table($active_loans);
}
$inactive_loans = $this->user->get_loans('inactive');
$table_inactive = 'Inga gamla lån.';
if($inactive_loans) {
$table_inactive = $this->build_user_loan_table($inactive_loans);
}
return replace(array('active_loans' => $table_active,
'inactive_loans' => $table_inactive,
'id' => $this->user->get_id(),
'name' => $this->user->get_name(),
'displayname' => $this->user->get_displayname($this->ldap),
'notes' => $this->user->get_notes()),
$this->fragments['user_details']);
}
}
?>