Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Refactor of Info module to allow admins to hide fields, modules to add their own fields #11

Merged
10 commits merged into from

2 participants

@ckieffer
Collaborator

Info block updates:

  • Added an event, info_block_metadata, allowing other modules to add block fields.
  • Added Advanced Settings to control which metadata fields are shown in the block
  • Bumped version from 1 to 2.
@bharat
Owner

Generally looks pretty good. We're tracking all of these changes in our Trac instance, so other steps that somebody has to do:

1) Create a descriptive ticket here
https://sourceforge.net/apps/trac/gallery/newticket?version=GIT+HEAD&milestone=3.0.1
2) Assign it to yourself

After I pull your changes into master, I'll annotate it with the commit ids and close it out in your name.

@ckieffer
Collaborator

I had an old ticket that was related, #662. I just re-titled it for this purpose.
https://sourceforge.net/apps/trac/gallery/ticket/662

Here are the updates per your review. Note that I'd missed checking in an update to add Advanced Settings for the info module to allow admins to control what core metadata items are displayed. I have not added a similar setting for the tags module yet. Should I?

ckieffer/gallery3@06d9406

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
View
41 modules/info/helpers/info_block.php
@@ -31,6 +31,47 @@ static function get($block_id, $theme) {
$block->css_id = "g-metadata";
$block->title = $theme->item()->is_album() ? t("Album info") : t("Photo info");
$block->content = new View("info_block.html");
+ if ($theme->item->title && module::get_var("info", "show_title")) {
+ $info["title"] = array(
+ "label" => t("Title:"),
+ "value" => html::purify($theme->item->title)
+ );
+ }
+ if ($theme->item->description && module::get_var("info", "show_description")) {
+ $info["description"] = array(
+ "label" => t("Description:"),
+ "value" => nl2br(html::purify($theme->item->description))
+ );
+ }
+ if (!$theme->item->is_album() && module::get_var("info", "show_name")) {
+ $info["file_name"] = array(
+ "label" => t("File name:"),
+ "value" => html::clean($theme->item->name)
+ );
+ }
+ if ($theme->item->captured && module::get_var("info", "show_captured")) {
+ $info["captured"] = array(
+ "label" => t("Captured:"),
+ "value" => gallery::date_time($theme->item->captured)
+ );
+ }
+ if ($theme->item->owner && module::get_var("info", "show_owner")) {
+ $display_name = $theme->item->owner->display_name();
+ if ($theme->item->owner->url) {
+ $info["owner"] = array(
+ "label" => t("Owner:"),
+ "value" => "<a href=\"{$theme->item->owner->url}\">" . html::clean($display_name) . "</a>"
+ );
+ } else {
+ $info["owner"] = array(
+ "label" => t("Owner:"),
+ "value" => html::clean($display_name)
+ );
+ }
+ }
+ $block->content->metadata = $info;
+
+ module::event("info_block_get_metadata", $block, $theme->item);
}
break;
}
View
41 modules/info/helpers/info_installer.php
@@ -0,0 +1,41 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2010 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+class info_installer {
+
+ static function install() {
+ module::set_var("info", "show_title", 1);
+ module::set_var("info", "show_description", 1);
+ module::set_var("info", "show_owner", 1);
+ module::set_var("info", "show_name", 1);
+ module::set_var("info", "show_captured", 1);
+ module::set_version("info", 2);
+ }
+
+ static function upgrade($version) {
+ if ($version == 1) {
+ module::set_var("info", "show_title", 1);
+ module::set_var("info", "show_description", 1);
+ module::set_var("info", "show_owner", 1);
+ module::set_var("info", "show_name", 1);
+ module::set_var("info", "show_captured", 1);
+ module::set_version("info", $version = 2);
+ }
+ }
+}
View
2  modules/info/module.info
@@ -1,3 +1,3 @@
name = "Info"
description = "Display extra information about photos and albums"
-version = 1
+version = 2
View
33 modules/info/views/info_block.html.php
@@ -1,35 +1,8 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<ul class="g-metadata">
+ <? foreach($metadata as $info): ?>
<li>
- <strong class="caption"><?= t("Title:") ?></strong>
- <?= html::purify($item->title) ?>
+ <strong class="caption"><?= $info["label"] ?></strong> <?= $info["value"] ?>
</li>
- <? if ($item->description): ?>
- <li>
- <strong class="caption"><?= t("Description:") ?></strong>
- <?= nl2br(html::purify($item->description)) ?>
- </li>
- <? endif ?>
- <? if (!$item->is_album()): ?>
- <li>
- <strong class="caption"><?= t("File name:") ?></strong>
- <?= html::clean($item->name) ?>
- </li>
- <? endif ?>
- <? if ($item->captured): ?>
- <li>
- <strong class="caption"><?= t("Captured:") ?></strong>
- <?= gallery::date_time($item->captured)?>
- </li>
- <? endif ?>
- <? if ($item->owner): ?>
- <li>
- <strong class="caption"><?= t("Owner:") ?></strong>
- <? if ($item->owner->url): ?>
- <a href="<?= $item->owner->url ?>"><?= html::clean($item->owner->display_name()) ?></a>
- <? else: ?>
- <?= html::clean($item->owner->display_name()) ?>
- <? endif ?>
- </li>
- <? endif ?>
+ <? endforeach; ?>
</ul>
View
16 modules/tag/helpers/tag_event.php
@@ -147,4 +147,20 @@ static function add_photos_form_completed($album, $form) {
}
}
}
+
+ static function info_block_get_metadata($block, $item) {
+ $tags = array();
+ foreach (tag::item_tags($item) as $tag) {
+ $tags[] = "<a href=\"" . url::site("tag/{$tag->name}") . "\">{$tag->name}</a>";
+ }
+ if ($tags) {
+ $info = $block->content->metadata;
+ $info["tags"] = array(
+ "label" => t("Tags:"),
+ "value" => implode(", ", $tags)
+ );
+ $block->content->metadata = $info;
+ }
+ }
+
}
Something went wrong with that request. Please try again.