From 7863aa16f9304e3c457898f22bce035bf4fedfd8 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Sat, 8 Aug 2009 14:30:21 -0700
Subject: Update tags module to notify modules when items related to a tag are
affected. Practically speaking this means that we'll reindex items when tags
are added or removed from them.
API change:
Remove item_related_updated_batch event.
Rationale:
While this is an efficient event, it requires module developers to
support two event APIs for staying up to date and increases the
likelihood that they'll forget one and have data corruption. Force
them all through the slower but more reliable pipe, for now. We
can always try to improve efficiency by using the batch_start and
batch_stop events.
---
modules/comment/helpers/comment_installer.php | 13 ++++++--
modules/search/helpers/search_event.php | 5 ---
modules/tag/models/tag.php | 48 +++++++++++++++++++++++++++
3 files changed, 58 insertions(+), 8 deletions(-)
(limited to 'modules')
diff --git a/modules/comment/helpers/comment_installer.php b/modules/comment/helpers/comment_installer.php
index f54913c3..edf2427c 100644
--- a/modules/comment/helpers/comment_installer.php
+++ b/modules/comment/helpers/comment_installer.php
@@ -52,8 +52,8 @@ class comment_installer {
}
static function upgrade($version) {
+ $db = Database::instance();
if ($version == 1) {
- $db = Database::instance();
$db->query("ALTER TABLE {comments} CHANGE `state` `state` varchar(15) default 'unpublished'");
module::set_version("comment", 2);
}
@@ -61,9 +61,16 @@ class comment_installer {
static function uninstall() {
$db = Database::instance();
- $sql = "SELECT `item_id` FROM {comments}";
- module::event("item_related_update_batch", $sql);
+ // Notify listeners that we're deleting some data. This is probably going to be very
+ // inefficient for large uninstalls, and we could make it better by doing things like passing
+ // a SQL fragment through so that the listeners could use subselects. But by using a single,
+ // simple event API we lighten the load on module developers.
+ foreach (ORM::factory("item")
+ ->join("comments", "items.id", "comments.item_id")
+ ->find_all() as $item) {
+ module::event("item_related_update", $item);
+ }
$db->query("DROP TABLE IF EXISTS {comments};");
}
}
diff --git a/modules/search/helpers/search_event.php b/modules/search/helpers/search_event.php
index b65763af..836bbe15 100644
--- a/modules/search/helpers/search_event.php
+++ b/modules/search/helpers/search_event.php
@@ -35,9 +35,4 @@ class search_event_Core {
static function item_related_update($item) {
search::update($item);
}
-
- static function item_related_update_batch($sql) {
- $db = Database::instance();
- $db->query("UPDATE {search_records} SET `dirty` = 1 WHERE item_id IN ($sql)");
- }
}
diff --git a/modules/tag/models/tag.php b/modules/tag/models/tag.php
index e910a8ee..d9488e1c 100644
--- a/modules/tag/models/tag.php
+++ b/modules/tag/models/tag.php
@@ -54,4 +54,52 @@ class Tag_Model extends ORM {
}
return $model->count_all();
}
+
+ /**
+ * Overload ORM::save() to trigger an item_related_update event for all items that are related
+ * to this tag. Since items can be added or removed as part of the save, we need to trigger an
+ * event for the union of all related items before and after the save.
+ */
+ public function save() {
+ $db = Database::instance();
+ $related_item_ids = array();
+ foreach ($db->getwhere("items_tags", array("tag_id" => $this->id)) as $row) {
+ $related_item_ids[$row->item_id] = 1;
+ }
+
+ $result = parent::save();
+
+ foreach ($db->getwhere("items_tags", array("tag_id" => $this->id)) as $row) {
+ $related_item_ids[$row->item_id] = 1;
+ }
+
+ if ($related_item_ids) {
+ foreach (ORM::factory("item")->in("id", array_keys($related_item_ids))->find_all() as $item) {
+ module::event("item_related_update", $item);
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Overload ORM::delete() to trigger an item_related_update event for all items that are
+ * related to this tag.
+ */
+ public function delete() {
+ $related_item_ids = array();
+ $db = Database::Instance();
+ foreach ($db->getwhere("items_tags", array("tag_id" => $this->id)) as $row) {
+ $related_item_ids[$row->item_id] = 1;
+ }
+
+ $result = parent::delete();
+
+ if ($related_item_ids) {
+ foreach (ORM::factory("item")->in("id", array_keys($related_item_ids))->find_all() as $item) {
+ module::event("item_related_update", $item);
+ }
+ }
+ return $result;
+ }
}
\ No newline at end of file
--
cgit v1.2.3
From cb1ae141bb65a5da42e94910214abbf5ac367920 Mon Sep 17 00:00:00 2001
From: Tim Almdal
Date: Sat, 8 Aug 2009 15:46:53 -0700
Subject: Create an new option 'immediate' and if set to true then don't try to
set up click events, but just show the dialog. Also remove the destroy
method and put all the cleanup into the dialog close handler
---
lib/gallery.dialog.js | 88 ++++++++++++++--------------
modules/gallery/js/quick.js | 2 +-
modules/gallery/views/after_install.html.php | 2 +-
3 files changed, 47 insertions(+), 45 deletions(-)
(limited to 'modules')
diff --git a/lib/gallery.dialog.js b/lib/gallery.dialog.js
index 51ebb21a..9aebd455 100644
--- a/lib/gallery.dialog.js
+++ b/lib/gallery.dialog.js
@@ -2,56 +2,54 @@
$.widget("ui.gallery_dialog", {
_init: function() {
var self = this;
- this.element.click(function(event){
- event.preventDefault();
- var element = event.currentTarget;
- var sHref = $(element).attr("href");
- var sTitle = $(element).attr("title");
- var eDialog = '';
-
- $("body").append(eDialog);
+ var options = self.options;
+ if (!self.options.immediate) {
+ this.element.click(function(event) {
+ event.preventDefault();
+ self._show($(event.currentTarget).attr("href"));
+ return false;
+ });
+ } else {
+ self._show(this.element.attr("href"));
+ }
+ },
- if (!self.options.close) {
- self.options.close = self.close_dialog;
- }
- $("#gDialog").dialog(self.options);
+ _show: function(sHref) {
+ var self = this;
+ var eDialog = '';
- $("#gDialog").gallery_show_loading();
+ $("body").append(eDialog);
- $.get(sHref, function(data) {
- $("#gDialog").html(data).gallery_show_loading();
+ if (!self.options.close) {
+ self.options.close = self.close_dialog;
+ }
+ $("#gDialog").dialog(self.options);
- if ($("#gDialog form").length) {
- self._trigger("form_loaded", null, $("#gDialog form"));
- }
- self._layout();
+ $("#gDialog").gallery_show_loading();
- $("#gDialog").dialog("open");
- // Remove titlebar for progress dialogs or set title
- if ($("#gDialog #gProgress").length) {
- $(".ui-dialog-titlebar").remove();
- } else if ($("#gDialog h1").length) {
- $("#gDialog").dialog('option', 'title', $("#gDialog h1:eq(0)").html());
- } else if ($("#gDialog fieldset legend").length) {
- $("#gDialog").dialog('option', 'title', $("#gDialog fieldset legend:eq(0)").html());
- }
+ $.get(sHref, function(data) {
+ $("#gDialog").html(data).gallery_show_loading();
- if ($("#gDialog form").length) {
- self._ajaxify_dialog();
- }
- });
- $("#gDialog").dialog("option", "self", self);
- return false;
- });
- },
+ if ($("#gDialog form").length) {
+ self._trigger("form_loaded", null, $("#gDialog form"));
+ }
+ self._layout();
- destroy: function() {
- if ($("#gDialog form").length) {
- this._trigger("form_closing", null, $("#gDialog form"));
- }
- this._trigger("dialog_closing", null, $("#gDialog"));
+ $("#gDialog").dialog("open");
+ // Remove titlebar for progress dialogs or set title
+ if ($("#gDialog #gProgress").length) {
+ $(".ui-dialog-titlebar").remove();
+ } else if ($("#gDialog h1").length) {
+ $("#gDialog").dialog('option', 'title', $("#gDialog h1:eq(0)").html());
+ } else if ($("#gDialog fieldset legend").length) {
+ $("#gDialog").dialog('option', 'title', $("#gDialog fieldset legend:eq(0)").html());
+ }
- $("#gDialog").dialog("destroy").remove();
+ if ($("#gDialog form").length) {
+ self._ajaxify_dialog();
+ }
+ });
+ $("#gDialog").dialog("option", "self", self);
},
_layout: function() {
@@ -93,7 +91,11 @@
close_dialog: function (event, ui) {
var self = $("#gDialog").dialog("option", "self");
- self.destroy();
+ if ($("#gDialog form").length) {
+ self._trigger("form_closing", null, $("#gDialog form"));
+ }
+ self._trigger("dialog_closing", null, $("#gDialog"));
+ $("#gDialog").dialog("destroy").remove();
},
_ajaxify_dialog: function() {
diff --git a/modules/gallery/js/quick.js b/modules/gallery/js/quick.js
index fda6470f..dfa61c20 100644
--- a/modules/gallery/js/quick.js
+++ b/modules/gallery/js/quick.js
@@ -46,7 +46,7 @@ var quick_do = function(cont, pane, img) {
return false;
}
if (pane.hasClass("gDialogLink")) {
- openDialog(pane);
+ $(pane).gallery_dialog({immediate: 1});
} else {
img.css("opacity", "0.1");
cont.addClass("gLoadingLarge");
diff --git a/modules/gallery/views/after_install.html.php b/modules/gallery/views/after_install.html.php
index bfce46f0..76b59474 100644
--- a/modules/gallery/views/after_install.html.php
+++ b/modules/gallery/views/after_install.html.php
@@ -16,7 +16,7 @@
title="= t("Edit Your Profile") ?>"
id="gAfterInstallChangePasswordLink" class="gButtonLink ui-state-default ui-corners-all">= t("Change Password Now") ?>
--
cgit v1.2.3
From e04675470bc43b8abd792c4c1621e5c0dc61f36a Mon Sep 17 00:00:00 2001
From: Tim Almdal
Date: Sat, 8 Aug 2009 16:01:20 -0700
Subject: Forgot to save this file when i changed the value from 1 to true
---
modules/gallery/views/after_install.html.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'modules')
diff --git a/modules/gallery/views/after_install.html.php b/modules/gallery/views/after_install.html.php
index 76b59474..41e600fb 100644
--- a/modules/gallery/views/after_install.html.php
+++ b/modules/gallery/views/after_install.html.php
@@ -16,7 +16,7 @@
title="= t("Edit Your Profile") ?>"
id="gAfterInstallChangePasswordLink" class="gButtonLink ui-state-default ui-corners-all">= t("Change Password Now") ?>
--
cgit v1.2.3
From e4fb6959aff3d688db9821eadd0d24006c9c77d6 Mon Sep 17 00:00:00 2001
From: Tim Almdal
Date: Sat, 8 Aug 2009 16:18:33 -0700
Subject: Forgot to save this one before committing the last two times... duh.
Completes the conversion from using 1 to true for the immediate paramter to
gallery_dialog
---
modules/gallery/js/quick.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'modules')
diff --git a/modules/gallery/js/quick.js b/modules/gallery/js/quick.js
index dfa61c20..1c243b79 100644
--- a/modules/gallery/js/quick.js
+++ b/modules/gallery/js/quick.js
@@ -46,7 +46,7 @@ var quick_do = function(cont, pane, img) {
return false;
}
if (pane.hasClass("gDialogLink")) {
- $(pane).gallery_dialog({immediate: 1});
+ $(pane).gallery_dialog({immediate: true});
} else {
img.css("opacity", "0.1");
cont.addClass("gLoadingLarge");
--
cgit v1.2.3
From c9f5000e65f66b3342f2cc6e2e9623eac72ff223 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Sat, 8 Aug 2009 20:31:16 -0700
Subject: Improve the graphics toolkit detection code so that properly
identifies situations where its restricted by open_basedir.
We now track more informatoin about the toolkit including the version
and any errors we encountered while doing the detection so that we can
provide more info downstream. This makes graphics::detect_toolkits()
a little heavier, but that's ok because it should not be called very
often.
In the process, refactor the controller and view hierarchy so that
it's a little more straightforward in the code.
Fixes ticket #616.
---
modules/gallery/controllers/admin_graphics.php | 39 +++------
modules/gallery/helpers/graphics.php | 92 ++++++++++++++++++++--
modules/gallery/views/admin_graphics.html.php | 14 +++-
modules/gallery/views/admin_graphics_gd.html.php | 15 ++--
.../views/admin_graphics_graphicsmagick.html.php | 10 +--
.../views/admin_graphics_imagemagick.html.php | 12 +--
modules/gallery/views/admin_graphics_none.html.php | 2 +-
7 files changed, 127 insertions(+), 57 deletions(-)
(limited to 'modules')
diff --git a/modules/gallery/controllers/admin_graphics.php b/modules/gallery/controllers/admin_graphics.php
index 72f8d8e1..565ee1b0 100644
--- a/modules/gallery/controllers/admin_graphics.php
+++ b/modules/gallery/controllers/admin_graphics.php
@@ -21,41 +21,24 @@ class Admin_Graphics_Controller extends Admin_Controller {
public function index() {
$view = new Admin_View("admin.html");
$view->content = new View("admin_graphics.html");
- $view->content->available = "";
-
- $tk = new ArrayObject(graphics::detect_toolkits(), ArrayObject::ARRAY_AS_PROPS);
- $active = module::get_var("gallery", "graphics_toolkit", "none");
- foreach (array("gd", "imagemagick", "graphicsmagick", "none") as $id) {
- if ($id == $active) {
- $view->content->active = new View("admin_graphics_$id.html");
- $view->content->active->tk = $tk;
- $view->content->active->is_active = true;
- } else if ($id != "none") {
- $v = new View("admin_graphics_$id.html");
- $v->tk = $tk;
- $v->is_active = false;
- $view->content->available .= $v;
- }
- }
-
+ $view->content->tk = graphics::detect_toolkits();
+ $view->content->active = module::get_var("gallery", "graphics_toolkit", "none");
print $view;
}
- public function choose($toolkit) {
+ public function choose($toolkit_id) {
access::verify_csrf();
- if ($toolkit != module::get_var("gallery", "graphics_toolkit")) {
- module::set_var("gallery", "graphics_toolkit", $toolkit);
-
- $toolkit_info = graphics::detect_toolkits();
- if ($toolkit == "graphicsmagick" || $toolkit == "imagemagick") {
- module::set_var("gallery", "graphics_toolkit_path", $toolkit_info[$toolkit]);
- }
+ if ($toolkit_id != module::get_var("gallery", "graphics_toolkit")) {
+ $tk = graphics::detect_toolkits();
+ module::set_var("gallery", "graphics_toolkit", $toolkit_id);
+ module::set_var("gallery", "graphics_toolkit_path", dirname($tk->$toolkit_id->dir));
site_status::clear("missing_graphics_toolkit");
- message::success(t("Updated Graphics Toolkit"));
- log::success("graphics", t("Changed graphics toolkit to: %toolkit",
- array("toolkit" => $toolkit)));
+
+ $msg = t("Changed graphics toolkit to: %toolkit", array("toolkit" => $tk->$toolkit_id->name));
+ message::success($msg);
+ log::success("graphics", $msg);
}
url::redirect("admin/graphics");
diff --git a/modules/gallery/helpers/graphics.php b/modules/gallery/helpers/graphics.php
index d506a982..7dc46eeb 100644
--- a/modules/gallery/helpers/graphics.php
+++ b/modules/gallery/helpers/graphics.php
@@ -339,15 +339,90 @@ class graphics_Core {
* GraphicsMagick we return the path to the directory containing the appropriate binaries.
*/
static function detect_toolkits() {
+ $toolkits = new stdClass();
+
+ // GD is special, it doesn't use exec()
$gd = function_exists("gd_info") ? gd_info() : array();
- $exec = function_exists("exec");
+ $toolkits->gd->name = "GD";
if (!isset($gd["GD Version"])) {
- $gd["GD Version"] = false;
+ $toolkits->gd->installed = false;
+ $toolkits->gd->error = t("GD is not installed");
+ } else {
+ $toolkits->gd->installed = true;
+ $toolkits->gd->version = $gd["GD Version"];
+ $toolkits->gd->rotate = function_exists("imagerotate");
+ $toolkits->gd->binary = "";
+ $toolkits->gd->dir = "";
+
+ if (!$toolkits->gd->rotate) {
+ $toolkits->gd->error =
+ t("You have GD version %version, but it lacks image rotation.",
+ array("version" => $gd["GD Version"]));
+ }
+ }
+
+ if (!function_exists("exec")) {
+ $toolkits->imagemagick->installed = false;
+ $toolkits->imagemagick->error = t("ImageMagick requires the exec function");
+
+ $toolkits->graphicsmagick->installed = false;
+ $toolkits->graphicsmagick->error = t("GraphicsMagick requires the exec function");
+ } else {
+ putenv("PATH=" . getenv("PATH") . ":/usr/local/bin:/opt/local/bin:/opt/bin");
+
+ // @todo: consider refactoring the two segments below into a loop since they are so
+ // similar.
+
+ // ImageMagick
+ $path = exec("which convert");
+ $toolkits->imagemagick->name = "ImageMagick";
+ if ($path) {
+ if (@is_file($path)) {
+ preg_match('/Version: \S+ (\S+)/', `convert -v`, $matches);
+ $version = $matches[1];
+
+ $toolkits->imagemagick->installed = true;
+ $toolkits->imagemagick->version = $version;
+ $toolkits->imagemagick->binary = $path;
+ $toolkits->imagemagick->dir = dirname($path);
+ $toolkits->imagemagick->rotate = true;
+ } else {
+ $toolkits->imagemagick->installed = false;
+ $toolkits->imagemagick->error =
+ t("ImageMagick is installed, but PHP's open_basedir restriction " .
+ "prevents Gallery from using it.");
+ }
+ } else {
+ $toolkits->imagemagick->installed = false;
+ $toolkits->imagemagick->error = t("We could not locate ImageMagick on your system.");
+ }
+
+ // GraphicsMagick
+ $path = exec("which gm");
+ $toolkits->graphicsmagick->name = "GraphicsMagick";
+ if ($path) {
+ if (@is_file($path)) {
+ preg_match('/\S+ (\S+)/', `gm version`, $matches);
+ $version = $matches[1];
+
+ $toolkits->graphicsmagick->installed = true;
+ $toolkits->graphicsmagick->version = $version;
+ $toolkits->graphicsmagick->binary = $path;
+ $toolkits->graphicsmagick->dir = dirname($path);
+ $toolkits->graphicsmagick->rotate = true;
+ } else {
+ $toolkits->graphicsmagick->installed = false;
+ $toolkits->graphicsmagick->error =
+ t("GraphicsMagick is installed, but PHP's open_basedir restriction " .
+ "prevents Gallery from using it.");
+ }
+ } else {
+ $toolkits->graphicsmagick->installed = false;
+ $toolkits->graphicsmagick->error = t("We could not locate GraphicsMagick on your system.");
+ }
}
- putenv("PATH=" . getenv("PATH") . ":/usr/local/bin:/opt/local/bin:/opt/bin");
- return array("gd" => $gd,
- "imagemagick" => $exec ? dirname(exec("which convert")) : false,
- "graphicsmagick" => $exec ? dirname(exec("which gm")) : false);
+
+ return $toolkits;
}
/**
@@ -357,12 +432,13 @@ class graphics_Core {
// Detect a graphics toolkit
$toolkits = graphics::detect_toolkits();
foreach (array("imagemagick", "graphicsmagick", "gd") as $tk) {
- if ($toolkits[$tk]) {
+ if ($toolkits->$tk->installed) {
module::set_var("gallery", "graphics_toolkit", $tk);
- module::set_var("gallery", "graphics_toolkit_path", $tk == "gd" ? "" : $toolkits[$tk]);
+ module::set_var("gallery", "graphics_toolkit_path", $toolkits->$tk->dir);
break;
}
}
+
if (!module::get_var("gallery", "graphics_toolkit")) {
site_status::warning(
t("Graphics toolkit missing! Please choose a toolkit",
diff --git a/modules/gallery/views/admin_graphics.html.php b/modules/gallery/views/admin_graphics.html.php
index 08374471..c4a2f5c6 100644
--- a/modules/gallery/views/admin_graphics.html.php
+++ b/modules/gallery/views/admin_graphics.html.php
@@ -9,8 +9,8 @@
};
$("#gAdminGraphics div.gAvailable .gBlock").click(select_toolkit);
});
-
+
= t("Graphics Settings") ?>
@@ -18,11 +18,19 @@
= t("Active Toolkit") ?>
- = $active ?>
+ if ($active == "none"): ?>
+ = new View("admin_graphics_none.html") ?>
+ else: ?>
+ = new View("admin_graphics_$active.html", array("tk" => $tk->$active, "is_active" => true)) ?>
+ endif ?>
= t("Available Toolkits") ?>
- = $available ?>
+ foreach (array_keys((array)$tk) as $id): ?>
+ if ($id != $active): ?>
+ = new View("admin_graphics_$id.html", array("tk" => $tk->$id, "is_active" => false)) ?>
+ endif ?>
+ endforeach ?>
diff --git a/modules/gallery/views/admin_graphics_gd.html.php b/modules/gallery/views/admin_graphics_gd.html.php
index b77da8e3..aa9ee67c 100644
--- a/modules/gallery/views/admin_graphics_gd.html.php
+++ b/modules/gallery/views/admin_graphics_gd.html.php
@@ -1,23 +1,26 @@
-= $tk->gd["GD Version"] ? " gInstalledToolkit" : " gUnavailable" ?>">
+
= $tk->installed ? " gInstalledToolkit" : " gUnavailable" ?>">

" alt=" t("Visit the GD lib project site") ?>" />
= t("GD") ?>
= t("The GD graphics library is an extension to PHP commonly installed most webservers. Please refer to the GD website for more information.",
array("url" => "http://www.boutell.com/gd")) ?>
- if ($tk->gd["GD Version"] && function_exists('imagerotate')): ?>
+ if ($tk->installed && $tk->rotate): ?>
- = t("You have GD version %version.", array("version" => $tk->gd["GD Version"])) ?>
+ = t("You have GD version %version.", array("version" => $tk->version)) ?>
= t("Activate GD") ?>
- elseif ($tk->gd["GD Version"]): ?>
+ elseif ($tk->installed): ?>
+
+ if ($tk->error): ?>
- = t("You have GD version %version, but it lacks image rotation.",
- array("version" => $tk->gd["GD Version"])) ?>
+ = $tk->error ?>
+ endif ?>
+
= t("Activate GD") ?>
diff --git a/modules/gallery/views/admin_graphics_graphicsmagick.html.php b/modules/gallery/views/admin_graphics_graphicsmagick.html.php
index e2cd0777..bf3ad339 100644
--- a/modules/gallery/views/admin_graphics_graphicsmagick.html.php
+++ b/modules/gallery/views/admin_graphics_graphicsmagick.html.php
@@ -1,21 +1,21 @@
-
= $tk->graphicsmagick ? " gInstalledToolkit" : " gUnavailable" ?>">
+
= $tk->installed ? " gInstalledToolkit" : " gUnavailable" ?>">
= t("GraphicsMagick") ?>

" alt=" t("Visit the GraphicsMagick project site") ?>" />
= t("GraphicsMagick is a standalone graphics program available on most Linux systems. Please refer to the GraphicsMagick website for more information.",
array("url" => "http://www.graphicsmagick.org")) ?>
- if ($tk->graphicsmagick): ?>
+ if ($tk->installed): ?>
- = t("GraphicsMagick is available in %path", array("path" => $tk->graphicsmagick)) ?>
+ = t("GraphicsMagick version %version is available in %dir", array("version" => $tk->version, "dir" => $tk->dir)) ?>
= t("Activate Graphics Magic") ?>
else: ?>
-
- = t("GraphicsMagick is not available on your system.") ?>
+
+ = $tk->error ?>
endif ?>
diff --git a/modules/gallery/views/admin_graphics_imagemagick.html.php b/modules/gallery/views/admin_graphics_imagemagick.html.php
index 081ddc15..b8f7ffb8 100644
--- a/modules/gallery/views/admin_graphics_imagemagick.html.php
+++ b/modules/gallery/views/admin_graphics_imagemagick.html.php
@@ -1,21 +1,21 @@
-
= $tk->imagemagick ? " gInstalledToolkit" : " gUnavailable" ?>">
+
= $tk->installed ? " gInstalledToolkit" : " gUnavailable" ?>">
= t("ImageMagick") ?>

" alt=" t("Visit the ImageMagick project site") ?>" />
= t("ImageMagick is a standalone graphics program available on most Linux systems. Please refer to the ImageMagick website for more information.",
array("url" => "http://www.imagemagick.org")) ?>
- if ($tk->imagemagick): ?>
+ if ($tk->installed): ?>
- = t("ImageMagick is available in %path", array("path" => $tk->imagemagick)) ?>
+ = t("ImageMagick version %version is available in %dir", array("version" => $tk->version, "dir" => $tk->dir)) ?>
= t("Activate ImageMagick") ?>
- else: ?>
-
- = t("ImageMagick is not available on your system.") ?>
+ elseif ($tk->error): ?>
+
+ = $tk->error ?>
endif ?>
diff --git a/modules/gallery/views/admin_graphics_none.html.php b/modules/gallery/views/admin_graphics_none.html.php
index 5306a70d..be2a580d 100644
--- a/modules/gallery/views/admin_graphics_none.html.php
+++ b/modules/gallery/views/admin_graphics_none.html.php
@@ -2,6 +2,6 @@
= t("No Active Toolkit") ?>
- = t("We were unable to detect a graphics program. You must install one of the toolkits below in order to many Gallery features.") ?>
+ = t("We were unable to detect a graphics program. You must install one of the toolkits below in order to use many Gallery features.") ?>
--
cgit v1.2.3