add a meaningful title to HTML-pages (Issue #185)

This commit is contained in:
coderkun 2014-05-04 01:41:54 +02:00
commit b5a4d875c8
22 changed files with 334 additions and 39 deletions

View file

@ -31,6 +31,12 @@
* @var array
*/
public static $user = null;
/**
* Title information
*
* @var array
*/
private $title = array();
@ -92,6 +98,56 @@
}
/**
* Return current title information.
*
* @return string Title information
*/
public function getTitle()
{
return $this->title;
}
/**
* Add a piece of information to the current title.
*
* @param string $title Title information
*/
protected function addTitle($title)
{
$this->title[] = $title;
}
/**
* Add a piece of information to the current title and localize
* it.
*
* @param string $title Title information
*/
protected function addTitleLocalized($title)
{
$title = gettext($title);
$args = func_get_args();
if(count($args) > 0) {
$title = call_user_func_array(
'sprintf',
array_merge(
array($title),
array_slice($args, 1)
)
);
}
$this->title[] = $title;
}
/**

View file

@ -113,7 +113,8 @@
*/
public static $misc = array(
'ranking_range' => 2,
'achievements_range' => 3
'achievements_range' => 3,
'title_delimiter' => ' '
);

View file

@ -158,6 +158,10 @@
$character['rank'] = $this->Achievements->getCountRank($seminary['id'], count($achievedAchievements));
// Set title
$this->addTitleLocalized('Achievements');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('character', $character);

View file

@ -86,6 +86,10 @@
$groupsgroups = $this->Charactergroups->getGroupsroupsForSeminary($seminary['id']);
// Set titile
$this->addTitleLocalized('Character Groups');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroups', $groupsgroups);
@ -117,6 +121,11 @@
$quests = $this->Charactergroupsquests->getQuestsForCharactergroupsgroup($groupsgroup['id']);
// Set titile
$this->addTitle($groupsgroup['name']);
$this->addTitleLocalized('Character Groups');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -178,6 +187,10 @@
}
// Set titile
$this->addTitleLocalized('New Character groups-group');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('charactergroupsgroupname', $charactergroupsgroupname);
@ -243,6 +256,10 @@
}
// Set titile
$this->addTitleLocalized('Edit Character groups-group');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('charactergroupsgroupname', $charactergroupsgroupname);
@ -287,6 +304,10 @@
}
// Set titile
$this->addTitleLocalized('Delete Character groups-group');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -330,6 +351,11 @@
$quests = $this->Charactergroupsquests->getQuestsForGroup($group['id']);
// Set titile
$this->addTitle($group['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -411,6 +437,11 @@
}
// Set titile
$this->addTitle($group['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -478,6 +509,11 @@
}
// Set title
$this->addTitleLocalized('New %s Character group', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -549,6 +585,11 @@
}
// Set title
$this->addTitleLocalized('Edit %s Character group', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -599,6 +640,11 @@
}
// Set title
$this->addTitleLocalized('Delete %s Character group', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);

View file

@ -94,6 +94,11 @@
}
// Set title
$this->addTitle($quest['title']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -226,7 +231,10 @@
}
// Set title
$this->addTitle($quest['title']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
@ -327,6 +335,11 @@
}
// Set title
$this->addTitleLocalized('New %s-Quest', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -436,6 +449,11 @@
}
// Set title
$this->addTitleLocalized('Edit %s-Quest', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);
@ -492,6 +510,11 @@
}
// Set title
$this->addTitleLocalized('Delete %s-Quest', $groupsgroup['name']);
$this->addTitle($groupsgroup['name']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('groupsgroup', $groupsgroup);

View file

@ -108,6 +108,10 @@
}
// Set titile
$this->addTitleLocalized('Characters');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('characters', $characters);
@ -180,6 +184,11 @@
}
// Set titile
$this->addTitle($character['name']);
$this->addTitleLocalized('Characters');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('character', $character);
@ -294,6 +303,10 @@
$xplevels = $this->Characters->getXPLevelsForSeminary($seminary['id']);
// Set titile
$this->addTitleLocalized('Create Character');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('types', $types);
@ -421,6 +434,10 @@
}
// Set titile
$this->addTitleLocalized('Manage Characters');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('characters', $characters);
@ -546,6 +563,11 @@
// Get XP-levels
$xplevels = $this->Characters->getXPLevelsForSeminary($seminary['id']);
// Set titile
$this->addTitleLocalized('Edit Character');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('types', $types);
@ -595,6 +617,10 @@
}
// Set titile
$this->addTitleLocalized('Delete Character');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('character', $character);

View file

@ -44,6 +44,19 @@
}
/**
* Postfilter that is executed after running the Controller.
*
* @param Request $request Current request
* @param Response $response Current response
*/
public function postFilter(\nre\core\Request $request, \nre\core\Response $response)
{
// Get title
$this->set('title', $this->getTitle());
}
/**
* Action: index.
*
@ -63,6 +76,36 @@
$this->set('notifications', $this->Notification->getNotifications());
}
/**
* Get title information from IntermediateController if possible
* and create a title.
*
* @return string Title for the current page
*/
private function getTitle()
{
$title = array();
// Get title of IntermediateController
$intermediateController = $this->agent->getIntermediateAgent()->controller;
if($intermediateController instanceof \hhu\z\controllers\IntermediateController) {
$title = $intermediateController->getTitle();
}
if(!is_array($title)) {
$title = array($title);
}
// Add application name
$title[] = \nre\configs\AppConfig::$app['name'];
// Return title with delimiter
return implode(\nre\configs\AppConfig::$misc['title_delimiter'], $title);
}
}
?>

View file

@ -77,6 +77,10 @@
}
// Set title
$this->addTitleLocalized('Library');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('totalQuestcount', $totalQuestcount);
@ -124,6 +128,11 @@
}
// Set title
$this->addTitle($questtopic['title']);
$this->addTitleLocalized('Library');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questtopic', $questtopic);

View file

@ -185,6 +185,15 @@
}
// Set titile
if(!is_null($questgroup['hierarchy'])) {
$this->addTitle(sprintf('%s %d: %s', $questgroup['hierarchy']['title_singular'], $questgroup['hierarchy']['questgroup_pos'], $questgroup['title']));
}
else {
$this->addTitle($questgroup['title']);
}
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroup', $questgroup);
@ -229,6 +238,10 @@
}
// Set titile
$this->addTitleLocalized('Create Questgroup');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
}

View file

@ -107,6 +107,10 @@
}
// Set titile
$this->addTitleLocalized('Quests');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('quests', $quests);
@ -285,6 +289,10 @@
}
// Set titile
$this->addTitle($quest['title']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroup', $questgroup);
@ -340,6 +348,11 @@
$solvedSubmissionCharacters = $this->Characters->getCharactersSolvedQuest($quest['id']);
// Set titile
$this->addTitleLocalized('Submissions');
$this->addTitle($quest['title']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroup', $questgroup);
@ -391,6 +404,11 @@
$output = $this->renderTaskSubmission($questtype['classname'], $seminary, $questgroup, $quest, $character);
// Set titile
$this->addTitleLocalized('Submission of %s', $character['name']);
$this->addTitle($quest['title']);
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroup', $questgroup);
@ -510,6 +528,10 @@
}
// Set titile
$this->addTitleLocalized('Create Quest');
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroups', $questgroups);

View file

@ -80,6 +80,9 @@
}
// Set titile
$this->addTitleLocalized('Seminaries');
// Pass data to view
$this->set('seminaries', $seminaries);
}
@ -147,6 +150,9 @@
}
// Set titile
$this->addTitle($seminary['title']);
// Pass data to view
$this->set('seminary', $seminary);
$this->set('questgroupshierarchy', $questgroupshierarchy);
@ -172,6 +178,10 @@
$user = $this->Seminaries->getSeminaryById($seminaryId);
$this->redirect($this->linker->link(array($seminary['url']), 1));
}
// Set titile
$this->addTitleLocalized('New seminary');
}
@ -208,6 +218,9 @@
}
// Set titile
$this->addTitleLocalized('Edit seminary');
// Pass data to view
$this->set('seminary', $seminary);
}
@ -244,6 +257,9 @@
}
// Set titile
$this->addTitleLocalized('Delete seminary');
// Show confirmation
$this->set('seminary', $seminary);
}

View file

@ -56,6 +56,9 @@
$users = $this->Users->getUsers();
// Set titile
$this->addTitleLocalized('Users');
// Pass data to view
$this->set('users', $users);
}
@ -103,6 +106,10 @@
}
// Set titile
$this->addTitleLocalized($user['username']);
$this->addTitleLocalized('Users');
// Pass data to view
$this->set('user', $user);
$this->set('characters', $characters);
@ -144,6 +151,9 @@
}
// Set titile
$this->addTitleLocalized('Login');
// Pass data to view
$this->set('username', $username);
$this->set('referrer', $referrer);
@ -213,6 +223,9 @@
}
// Set titile
$this->addTitleLocalized('Registration');
// Pass data to view
$this->set('username', $username);
$this->set('prename', $prename);
@ -326,6 +339,9 @@
}
// Set titile
$this->addTitleLocalized('Manage users');
// Pass data to view
$this->set('users', $users);
$this->set('selectedUsers', $selectedUsers);
@ -388,6 +404,9 @@
}
// Set titile
$this->addTitleLocalized('New user');
// Pass data to view
$this->set('username', $username);
$this->set('prename', $prename);
@ -476,6 +495,9 @@
}
// Set titile
$this->addTitleLocalized('Edit user');
// Pass data to view
$this->set('username', $username);
$this->set('prename', $prename);
@ -517,6 +539,9 @@
}
// Set titile
$this->addTitleLocalized('Delete user');
// Show confirmation
$this->set('user', $user);
}

View file

@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: The Legend of Z\n"
"POT-Creation-Date: 2014-05-03 22:40+0100\n"
"PO-Revision-Date: 2014-05-03 22:41+0100\n"
"POT-Creation-Date: 2014-05-04 01:22+0100\n"
"PO-Revision-Date: 2014-05-04 01:22+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de_DE\n"
@ -89,7 +89,7 @@ msgid "max."
msgstr "max."
#: questtypes/submit/html/quest.tpl:28
msgid "Submissions"
msgid "Your submissions"
msgstr "Deine Lösungsvorschläge"
#: questtypes/submit/html/quest.tpl:32 questtypes/submit/html/submission.tpl:6
@ -289,7 +289,7 @@ msgstr "Motto"
#: views/html/charactergroups/creategroup.tpl:59
#: views/html/charactergroups/creategroupsgroup.tpl:50
#: views/html/charactergroupsquests/create.tpl:75
#: views/html/characters/register.tpl:94 views/html/seminaries/create.tpl:12
#: views/html/characters/register.tpl:94 views/html/seminaries/create.tpl:14
#: views/html/users/create.tpl:96
msgid "create"
msgstr "erstellen"
@ -317,7 +317,7 @@ msgstr "Soll die %s-Gruppen „%s“ wirklich gelöscht werden?"
#: views/html/charactergroups/deletegroup.tpl:15
#: views/html/charactergroups/deletegroupsgroup.tpl:14
#: views/html/charactergroupsquests/delete.tpl:15
#: views/html/characters/delete.tpl:17 views/html/seminaries/delete.tpl:11
#: views/html/characters/delete.tpl:17 views/html/seminaries/delete.tpl:13
#: views/html/users/delete.tpl:11
msgid "delete"
msgstr "löschen"
@ -325,7 +325,7 @@ msgstr "löschen"
#: views/html/charactergroups/deletegroup.tpl:16
#: views/html/charactergroups/deletegroupsgroup.tpl:15
#: views/html/charactergroupsquests/delete.tpl:16
#: views/html/characters/delete.tpl:18 views/html/seminaries/delete.tpl:12
#: views/html/characters/delete.tpl:18 views/html/seminaries/delete.tpl:14
#: views/html/users/delete.tpl:12
msgid "cancel"
msgstr "abbrechen"
@ -501,8 +501,8 @@ msgstr "Die XP-Angabe ist ungültig"
#: views/html/charactergroupsquests/edit.tpl:56
#: views/html/charactergroupsquests/edit.tpl:57
#: views/html/questgroups/create.tpl:14 views/html/questgroups/create.tpl:15
#: views/html/seminaries/create.tpl:9 views/html/seminaries/create.tpl:10
#: views/html/seminaries/edit.tpl:11 views/html/seminaries/edit.tpl:12
#: views/html/seminaries/create.tpl:11 views/html/seminaries/create.tpl:12
#: views/html/seminaries/edit.tpl:13 views/html/seminaries/edit.tpl:14
msgid "Title"
msgstr "Titel"
@ -569,7 +569,7 @@ msgid "File invalid"
msgstr "Die Datei ist ungültig"
#: views/html/charactergroupsquests/manage.tpl:66
#: views/html/seminaries/edit.tpl:14 views/html/users/edit.tpl:103
#: views/html/seminaries/edit.tpl:16 views/html/users/edit.tpl:103
msgid "save"
msgstr "speichern"
@ -677,8 +677,7 @@ msgstr "Das Kursfeld „%s“ ist ungültig"
msgid "Seminary fields"
msgstr "Kursfelder"
#: views/html/characters/index.tpl:13 views/html/characters/manage.tpl:10
#: views/html/users/index.tpl:7 views/html/users/manage.tpl:8
#: views/html/characters/index.tpl:13 views/html/users/index.tpl:7
msgid "Manage"
msgstr "Verwalten"
@ -718,6 +717,10 @@ msgstr "Moderator"
msgid "User"
msgstr "Benutzer"
#: views/html/characters/manage.tpl:10
msgid "Manage Characters"
msgstr "Charaktere verwalten"
#: views/html/characters/manage.tpl:48 views/html/users/manage.tpl:39
msgid "Add role"
msgstr "Füge Rolle hinzu"
@ -767,15 +770,15 @@ msgstr "oder"
msgid "register yourself"
msgstr "registriere dich"
#: views/html/html.tpl:76
#: views/html/html.tpl:77
msgid "Achievement"
msgstr "Achievement"
#: views/html/html.tpl:86
#: views/html/html.tpl:87
msgid "Level-up"
msgstr "Levelaufstieg"
#: views/html/html.tpl:88 views/html/html.tpl:90
#: views/html/html.tpl:89 views/html/html.tpl:91
#, php-format
msgid "You have reached level %d"
msgstr "Du hast Level %d erreicht"
@ -812,8 +815,8 @@ msgstr "Gesamtfortschritt: %d%%"
msgid "Users"
msgstr "Benutzer"
#: views/html/menu/index.tpl:3 views/html/seminaries/create.tpl:4
#: views/html/seminaries/delete.tpl:6 views/html/seminaries/edit.tpl:6
#: views/html/menu/index.tpl:3 views/html/seminaries/create.tpl:5
#: views/html/seminaries/delete.tpl:7 views/html/seminaries/edit.tpl:7
#: views/html/seminaries/index.tpl:4
msgid "Seminaries"
msgstr "Kurse"
@ -912,24 +915,28 @@ msgstr "Auf ins Abenteuer!"
msgid "Submission of %s"
msgstr "Lösung von %s"
#: views/html/quests/submissions.tpl:7
msgid "Submissions"
msgstr "Lösungen"
#: views/html/quests/submissions.tpl:10
msgid "submitted"
msgstr "eingereicht"
#: views/html/seminaries/create.tpl:5
#: views/html/seminaries/create.tpl:8
msgid "New seminary"
msgstr "Neuer Kurs"
#: views/html/seminaries/delete.tpl:7 views/html/seminaries/seminary.tpl:10
#: views/html/seminaries/delete.tpl:10 views/html/seminaries/seminary.tpl:10
msgid "Delete seminary"
msgstr "Kurs löschen"
#: views/html/seminaries/delete.tpl:9
#: views/html/seminaries/delete.tpl:11
#, php-format
msgid "Should the seminary “%s” really be deleted?"
msgstr "Soll der Kurs „%s“ wirklich gelöscht werden?"
#: views/html/seminaries/edit.tpl:7 views/html/seminaries/seminary.tpl:9
#: views/html/seminaries/edit.tpl:10 views/html/seminaries/seminary.tpl:9
msgid "Edit seminary"
msgstr "Kurs bearbeiten"
@ -1115,6 +1122,10 @@ msgstr "registriert am %s"
msgid "Login failed"
msgstr "Die Anmeldung war nicht korrekt"
#: views/html/users/manage.tpl:8
msgid "Manage users"
msgstr "Benutzer verwalten"
#: views/html/users/register.tpl:8
msgid "Registration"
msgstr "Registrierung"
@ -1127,15 +1138,9 @@ msgstr "Registrieren"
msgid "Roles"
msgstr "Rollen"
#~ msgid "Past submissions"
#~ msgstr "Vorherige Lösungen"
#~ msgid "Edit Character group"
#~ msgstr "Gruppe bearbeiten"
#~ msgid "Manage Character group"
#~ msgstr "Gruppe verwalten"
#~ msgid "Delete Character group"
#~ msgstr "Gruppe löschen"

View file

@ -25,7 +25,7 @@
<?php endif ?>
<?php if(count($submissions) > 0) : ?>
<h2><?=_('Submissions')?></h2>
<h2><?=_('Your submissions')?></h2>
<ol class="admnql">
<?php foreach($submissions as $index => &$submission) : ?>
<li>

View file

@ -7,7 +7,7 @@
<li><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></li>
<li><i class="fa fa-chevron-right fa-fw"></i><a href="<?=$linker->link(array('characters','index',$seminary['url']))?>"><?=_('Characters')?></a></li>
</ul>
<h1><?=_('Manage')?></h1>
<h1><?=_('Manage Characters')?></h1>
<form method="post">
<fieldset class="filter">

View file

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<title><?=\nre\configs\AppConfig::$app['name']?></title>
<title><?=(isset($title)) ? $title : \nre\configs\AppConfig::$app['name']?></title>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,700" rel="stylesheet" type="text/css">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">

View file

@ -4,7 +4,7 @@
</div>
<?php endif ?>
<?=$questgroupshierarchypath?>
<h1><?=$quest['title']?></h1>
<h1><?=$quest['title']?> (<?=_('Submissions')?>)</h1>
<section>
<h1><?=_('submitted')?></h1>

View file

@ -1,9 +1,11 @@
<div class="moodpic">
<img src="<?=$linker->link(array('grafics','questlab.jpg'))?>" />
</div>
<h1><?=_('Seminaries')?></h1>
<h2><?=_('New seminary')?></h2>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link('index',1)?>"><?=_('Seminaries')?></a></li>
</ul>
<h1><?=_('New seminary')?></h1>
<form method="post" action="<?=$linker->link('create', 1)?>" class="logreg">
<fieldset>
<label for="title"><?=_('Title')?>:</label>

View file

@ -3,9 +3,11 @@
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url']))?>">
</div>
<?php endif ?>
<h1><?=_('Seminaries')?></h1>
<h2><?=_('Delete seminary')?></h2>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link('index',1)?>"><?=_('Seminaries')?></a></li>
</ul>
<h1><?=_('Delete seminary')?></h1>
<?=sprintf(_('Should the seminary “%s” really be deleted?'), $seminary['title'])?>
<form method="post">
<input type="submit" name="delete" value="<?=_('delete')?>" />

View file

@ -3,9 +3,11 @@
<img src="<?=$linker->link(array('media','seminarymoodpic',$seminary['url']))?>">
</div>
<?php endif ?>
<h1><?=_('Seminaries')?></h1>
<h2><?=_('Edit seminary')?></h2>
<ul class="breadcrumbs">
<li><a href="<?=$linker->link('index',1)?>"><?=_('Seminaries')?></a></li>
</ul>
<h1><?=_('Edit seminary')?></h1>
<form method="post" class="logreg">
<fieldset>
<label for="title"><?=_('Title')?>:</label>

View file

@ -5,7 +5,7 @@
<li><a href="<?=$linker->link('index',1)?>"><?=_('Users')?></a></li>
</ul>
<h1><?=_('Manage')?></h1>
<h1><?=_('Manage users')?></h1>
<form method="post">
<fieldset class="filter">