Fix up the titles in the default theme. They've been broken for a

while.  This fixes ticket #342.

The bug is that we were using $item instead of $theme->item().  But we
were also not special casing tags properly, and they are effectively
first class citizens (at least for now) so treat them properly.  Also,
set page_title by default in the theme so that we don't have to do an
empty() check on it (makes the theme easier to read) and move the
title out of Tags_Controller so that the theme has more control over
it.
This commit is contained in:
Bharat Mediratta
2009-06-15 18:15:41 -07:00
parent ff74d2d809
commit 79582ee5bf
4 changed files with 17 additions and 7 deletions

View File

@@ -27,6 +27,7 @@ class Albums_Controller extends Items_Controller {
if (!access::can("view", $album)) {
if ($album->id == 1) {
$view = new Theme_View("page.html", "page");
$view->page_title = t("Log in to Gallery");
$view->content = user::get_login_form("login/auth_html");
print $view;
return;

View File

@@ -47,6 +47,7 @@ class Theme_View_Core extends View {
$this->set_global("theme", $this);
$this->set_global("user", user::active());
$this->set_global("page_type", $page_type);
$this->set_global("page_title", null);
if ($page_type == "album") {
$this->set_global("thumb_proportion", $this->thumb_proportion());
}

View File

@@ -33,7 +33,6 @@ class Tags_Controller extends REST_Controller {
$template = new Theme_View("page.html", "tag");
$template->set_global("page_size", $page_size);
$template->set_global("page_title", t("Browse Tag::%name", array("name" => $tag->name)));
$template->set_global("tag", $tag);
$template->set_global("children", $tag->items($page_size, $offset));
$template->set_global("children_count", $children_count);

View File

@@ -5,13 +5,22 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>
<? if (empty($page_title)): ?>
<?= t("Browse Photos") ?>
<? if (!empty($item)): ?>
:: <?= p::clean($item->title) ?>
<? endif ?>
<? else: ?>
<? if ($page_title): ?>
<?= $page_title ?>
<? else: ?>
<? if ($theme->item()): ?>
<? if ($theme->item()->is_album()): ?>
<?= t("Browse Album :: %album_title", array("album_title" => p::clean($theme->item()->title))) ?>
<? elseif ($theme->item()->is_photo()): ?>
<?= t("Photo :: %photo_title", array("photo_title" => p::clean($theme->item()->title))) ?>
<? else: ?>
<?= t("Movie :: %movie_title", array("movie_title" => p::clean($theme->item()->title))) ?>
<? endif ?>
<? elseif ($theme->tag()): ?>
<?= t("Browse Tag :: %tag_title", array("tag_title" => p::clean($theme->tag()->title))) ?>
<? else: /* Not an item, not a tag, no page_title specified. Help! */ ?>
<?= t("Gallery") ?>
<? endif ?>
<? endif ?>
</title>
<link rel="shortcut icon" href="<?= $theme->url("images/favicon.ico") ?>" type="image/x-icon" />