summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Staudacher <andy.st@gmail.com>2010-02-02 13:41:50 -0800
committerAndy Staudacher <andy.st@gmail.com>2010-02-02 13:41:50 -0800
commit31aaf7555f51dd80cf1e97fd3c20a1c245cbf61b (patch)
tree594ca1cebbe5b8b58b4c50cb3c88487574dba712
parentbe5f38adea89bdb95be359aea3d97615b6b530a3 (diff)
parent3c3671cff25f28e21a702b1f665a6baa282d045f (diff)
Merge commit 'upstream/master'
-rw-r--r--index.php3
-rw-r--r--lib/gallery.in_place_edit.js43
-rw-r--r--modules/comment/controllers/admin_comments.php1
-rw-r--r--modules/comment/helpers/comment_rss.php1
-rw-r--r--modules/comment/models/comment.php3
-rw-r--r--modules/digibug/controllers/digibug.php2
-rw-r--r--modules/forge/libraries/Form_Group.php2
-rw-r--r--modules/g2_import/controllers/admin_g2_import.php5
-rw-r--r--modules/g2_import/helpers/g2_import.php11
-rw-r--r--modules/g2_import/helpers/g2_import_task.php12
-rw-r--r--modules/g2_import/views/admin_g2_import.html.php2
-rw-r--r--modules/gallery/config/locale.php4
-rw-r--r--modules/gallery/controllers/admin_dashboard.php2
-rw-r--r--modules/gallery/controllers/admin_modules.php1
-rw-r--r--modules/gallery/controllers/combined.php2
-rw-r--r--modules/gallery/controllers/file_proxy.php2
-rw-r--r--modules/gallery/css/l10n_client.css3
-rw-r--r--modules/gallery/helpers/access.php33
-rw-r--r--modules/gallery/helpers/gallery_block.php2
-rw-r--r--modules/gallery/helpers/gallery_rss.php1
-rw-r--r--modules/gallery/helpers/gallery_task.php20
-rw-r--r--modules/gallery/helpers/graphics.php3
-rw-r--r--modules/gallery/helpers/l10n_client.php1
-rw-r--r--modules/gallery/helpers/module.php3
-rw-r--r--modules/gallery/libraries/Form_Script.php4
-rw-r--r--modules/gallery/libraries/MY_Database.php2
-rw-r--r--modules/gallery/libraries/MY_View.php2
-rw-r--r--modules/gallery/libraries/ORM_MPTT.php2
-rw-r--r--modules/gallery/models/item.php7
-rw-r--r--modules/gallery/models/task.php4
-rw-r--r--modules/gallery/tests/Database_Test.php8
-rw-r--r--modules/gallery/tests/Item_Rest_Helper_Test.php17
-rw-r--r--modules/gallery/views/admin_advanced_settings.html.php6
-rw-r--r--modules/gallery/views/in_place_edit.html.php6
-rw-r--r--modules/gallery_unit_test/controllers/gallery_unit_test.php6
-rw-r--r--modules/rest/controllers/rest.php1
-rw-r--r--modules/rest/helpers/rest.php2
-rw-r--r--modules/rest/tests/Rest_Controller_Test.php8
-rw-r--r--modules/search/helpers/search.php3
-rw-r--r--modules/server_add/controllers/server_add.php1
-rw-r--r--modules/tag/controllers/admin_tags.php3
-rw-r--r--modules/tag/helpers/tag_rss.php2
-rw-r--r--modules/tag/helpers/tags_rest.php1
-rw-r--r--modules/tag/models/tag.php2
-rw-r--r--modules/tag/tests/Tag_Item_Rest_Helper_Test.php4
-rw-r--r--modules/tag/tests/Tag_Rest_Helper_Test.php8
-rw-r--r--modules/tag/tests/Tags_Rest_Helper_Test.php4
-rw-r--r--modules/user/controllers/admin_users.php2
-rw-r--r--modules/user/helpers/user_installer.php16
-rw-r--r--modules/user/module.info2
-rw-r--r--modules/watermark/helpers/watermark_installer.php2
51 files changed, 195 insertions, 92 deletions
diff --git a/index.php b/index.php
index 8bfbbb54..1816d7fa 100644
--- a/index.php
+++ b/index.php
@@ -27,7 +27,8 @@ version_compare(PHP_VERSION, "5.2.3", "<") and
// Gallery requires short_tags to be on
!ini_get("short_open_tag") and exit("Gallery requires short_open_tag to be on.");
-// Set the error reporting level. Use E_ALL unless you have a special need.
+// Suppress errors. For information on how to debug Gallery 3, see:
+// http://codex.gallery2.org/Gallery3:FAQ#How_do_I_see_debug_information.3F
error_reporting(0);
// Disabling display_errors will effectively disable Kohana error display
diff --git a/lib/gallery.in_place_edit.js b/lib/gallery.in_place_edit.js
index 681688e5..5a815dac 100644
--- a/lib/gallery.in_place_edit.js
+++ b/lib/gallery.in_place_edit.js
@@ -10,6 +10,10 @@
},
_show: function(target) {
+ if ($(target).data("gallery_in_place_edit") == true) {
+ return;
+ }
+ $(target).data("gallery_in_place_edit", true);
var self = this;
var tag_width = $(target).width();
$(self).data("tag_width", tag_width);
@@ -23,25 +27,28 @@
var parent = $(target).parent();
parent.children().hide();
parent.append(data);
- parent.find("form :text")
- .width(tag_width)
- .focus();
- $(".g-short-form").gallery_short_form();
- parent.find("form .g-cancel").click(function(event) {
- self._cancel();
- event.preventDefault();
- return false;
- });
- self._ajaxify_edit();
+ self._setup_form(parent.find("form"));
});
+ },
+ _setup_form: function(form) {
+ var self = this;
+ var width = $(self).data("tag_width");
+ form.find(":text").width(width).focus();
+ form.find(".g-cancel").click(function(event) {
+ self._cancel();
+ event.preventDefault();
+ return false;
+ });
+ $(".g-short-form").gallery_short_form();
+ this._ajaxify_edit();
},
_cancel: function() {
var parent = $("#g-in-place-edit-form").parent();
- $(parent).find("form").remove();
+ $("#g-in-place-edit-form").remove();
$(parent).children().show();
- $("#g-in-place-edit-message").remove();
+ $(parent).find(".g-editable").data("gallery_in_place_edit", false);
},
_ajaxify_edit: function() {
@@ -55,17 +62,7 @@
} else {
var parent = $(form).parent();
$(form).replaceWith(data.form);
- var width = $(self).data("tag_width");
- $(parent).find("form :text")
- .width(width)
- .focus();
- $(".g-short-form").gallery_short_form();
- $(parent).find("form .g-cancel").click(function(event) {
- self._cancel();
- event.preventDefault();
- return false;
- });
- self._ajaxify_edit();
+ self._setup_form(parent.find("form"));
}
}
});
diff --git a/modules/comment/controllers/admin_comments.php b/modules/comment/controllers/admin_comments.php
index b7dc5fb3..3dd45919 100644
--- a/modules/comment/controllers/admin_comments.php
+++ b/modules/comment/controllers/admin_comments.php
@@ -92,6 +92,7 @@ class Admin_Comments_Controller extends Admin_Controller {
}
private function _counts() {
+ $counts = new stdClass();
$counts->unpublished = 0;
$counts->published = 0;
$counts->spam = 0;
diff --git a/modules/comment/helpers/comment_rss.php b/modules/comment/helpers/comment_rss.php
index 77044884..79fa07df 100644
--- a/modules/comment/helpers/comment_rss.php
+++ b/modules/comment/helpers/comment_rss.php
@@ -42,6 +42,7 @@ class comment_rss_Core {
$comments->where("item_id", "=", $id);
}
+ $feed = new stdClass();
$feed->view = "comment.mrss";
$feed->children = array();
foreach ($comments->find_all($limit, $offset) as $comment) {
diff --git a/modules/comment/models/comment.php b/modules/comment/models/comment.php
index add15ce8..d9d05995 100644
--- a/modules/comment/models/comment.php
+++ b/modules/comment/models/comment.php
@@ -116,7 +116,8 @@ class Comment_Model extends ORM {
// We only notify on the related items if we're making a visible change.
if ($visible_change) {
- module::event("item_related_update", $this->item());
+ $item = $this->item();
+ module::event("item_related_update", $item);
}
return $this;
diff --git a/modules/digibug/controllers/digibug.php b/modules/digibug/controllers/digibug.php
index e3b06196..c98ae20c 100644
--- a/modules/digibug/controllers/digibug.php
+++ b/modules/digibug/controllers/digibug.php
@@ -91,7 +91,7 @@ class Digibug_Controller extends Controller {
}
// We don't need to save the session for this request
- Session::abort_save();
+ Session::instance()->abort_save();
if (!TEST_MODE) {
// Dump out the image
diff --git a/modules/forge/libraries/Form_Group.php b/modules/forge/libraries/Form_Group.php
index e0601321..0a04912b 100644
--- a/modules/forge/libraries/Form_Group.php
+++ b/modules/forge/libraries/Form_Group.php
@@ -80,7 +80,7 @@ class Form_Group_Core extends Forge {
}
}
- public function render()
+ public function render($template = 'forge_template', $custom = FALSE)
{
// No Sir, we don't want any html today thank you
return;
diff --git a/modules/g2_import/controllers/admin_g2_import.php b/modules/g2_import/controllers/admin_g2_import.php
index 1c65f482..6dd155b9 100644
--- a/modules/g2_import/controllers/admin_g2_import.php
+++ b/modules/g2_import/controllers/admin_g2_import.php
@@ -19,6 +19,7 @@
*/
class Admin_g2_import_Controller extends Admin_Controller {
public function index() {
+ g2_import::lower_error_reporting();
if (g2_import::is_configured()) {
g2_import::init();
}
@@ -31,6 +32,7 @@ class Admin_g2_import_Controller extends Admin_Controller {
$view = new Admin_View("admin.html");
$view->content = new View("admin_g2_import.html");
$view->content->form = $this->_get_import_form();
+ $view->content->version = g2_import::version();
if (g2_import::is_initialized()) {
$view->content->g2_stats = $g2_stats;
@@ -38,11 +40,13 @@ class Admin_g2_import_Controller extends Admin_Controller {
$view->content->thumb_size = module::get_var("gallery", "thumb_size");
$view->content->resize_size = module::get_var("gallery", "resize_size");
}
+ g2_import::restore_error_reporting();
print $view;
}
public function save() {
access::verify_csrf();
+ g2_import::lower_error_reporting();
$form = $this->_get_import_form();
if ($form->validate()) {
@@ -63,6 +67,7 @@ class Admin_g2_import_Controller extends Admin_Controller {
$view = new Admin_View("admin.html");
$view->content = new View("admin_g2_import.html");
$view->content->form = $form;
+ g2_import::restore_error_reporting();
print $view;
}
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php
index fa95e547..0fcc0539 100644
--- a/modules/g2_import/helpers/g2_import.php
+++ b/modules/g2_import/helpers/g2_import.php
@@ -24,6 +24,7 @@ class g2_import_Core {
public static $g2_base_url = null;
private static $current_g2_item = null;
+ private static $error_reporting = null;
static function is_configured() {
return module::get_var("g2_import", "embed_path");
@@ -931,6 +932,16 @@ class g2_import_Core {
"useAuthToken" => false));
return str_replace(self::$g2_base_url, "", $url);
}
+
+ static function lower_error_reporting() {
+ // Gallery 2 was not designed to run in E_STRICT mode and will barf out errors. So dial down
+ // the error reporting when we make G2 calls.
+ self::$error_reporting = error_reporting(error_reporting() & ~E_STRICT);
+ }
+
+ static function restore_error_reporting() {
+ error_reporting(self::$error_reporting);
+ }
}
/**
diff --git a/modules/g2_import/helpers/g2_import_task.php b/modules/g2_import/helpers/g2_import_task.php
index e80b88b9..e0212b33 100644
--- a/modules/g2_import/helpers/g2_import_task.php
+++ b/modules/g2_import/helpers/g2_import_task.php
@@ -19,17 +19,19 @@
*/
class g2_import_task_Core {
static function available_tasks() {
+ g2_import::lower_error_reporting();
if (g2_import::is_configured()) {
g2_import::init();
}
-
+ $version = g2_import::version();
+ g2_import::restore_error_reporting();
if (class_exists("GalleryCoreApi")) {
return array(Task_Definition::factory()
->callback("g2_import_task::import")
->name(t("Import from Gallery 2"))
->description(
- t("Gallery %version detected", array("version" => g2_import::version())))
+ t("Gallery %version detected", array("version" => $version)))
->severity(log::SUCCESS));
}
@@ -37,6 +39,8 @@ class g2_import_task_Core {
}
static function import($task) {
+ g2_import::lower_error_reporting();
+
$start = microtime(true);
g2_import::init();
@@ -185,7 +189,7 @@ class g2_import_task_Core {
}
$task->status = t(
"Album highlights (%count of %total)",
- array("count" => $done["tags"] + 1, "total" => $stats["albums"]));
+ array("count" => $done["highlights"] + 1, "total" => $stats["highlights"]));
break;
@@ -207,5 +211,7 @@ class g2_import_task_Core {
$task->set("mode", $mode);
$task->set("queue", $queue);
$task->set("done", $done);
+
+ g2_import::restore_error_reporting();
}
}
diff --git a/modules/g2_import/views/admin_g2_import.html.php b/modules/g2_import/views/admin_g2_import.html.php
index 0875e7f7..6a5214a3 100644
--- a/modules/g2_import/views/admin_g2_import.html.php
+++ b/modules/g2_import/views/admin_g2_import.html.php
@@ -34,7 +34,7 @@
<h2> <?= t("Import") ?> </h2>
<ul id="g-action-status" class="g-message-block">
<li class="g-success">
- <?= t("Gallery version %version detected", array("version" => g2_import::version())) ?>
+ <?= t("Gallery version %version detected", array("version" => $version)) ?>
</li>
<? if ($g2_sizes["thumb"]["size"] && $thumb_size != $g2_sizes["thumb"]["size"]): ?>
<li class="g-warning">
diff --git a/modules/gallery/config/locale.php b/modules/gallery/config/locale.php
index 2d401758..f8241444 100644
--- a/modules/gallery/config/locale.php
+++ b/modules/gallery/config/locale.php
@@ -33,6 +33,10 @@ $config['language'] = array('en_US', 'English_United States');
* @see http://php.net/timezones
*/
$config['timezone'] = ini_get('date.timezone');
+if (empty($config['timezone'])) {
+ // This is a required field. Pick something as a default.
+ $config['timezone'] = "America/Los_Angeles";
+}
// i18n settings
diff --git a/modules/gallery/controllers/admin_dashboard.php b/modules/gallery/controllers/admin_dashboard.php
index 5f2cb41d..42a3c081 100644
--- a/modules/gallery/controllers/admin_dashboard.php
+++ b/modules/gallery/controllers/admin_dashboard.php
@@ -91,7 +91,5 @@ class Admin_Dashboard_Controller extends Admin_Controller {
}
block_manager::set_active($location, $new_blocks);
}
-
- $this->_force_block_adder();
}
}
diff --git a/modules/gallery/controllers/admin_modules.php b/modules/gallery/controllers/admin_modules.php
index 84fee25d..081b3f12 100644
--- a/modules/gallery/controllers/admin_modules.php
+++ b/modules/gallery/controllers/admin_modules.php
@@ -67,6 +67,7 @@ class Admin_Modules_Controller extends Admin_Controller {
}
private function _do_save() {
+ $changes = new stdClass();
$changes->activate = array();
$changes->deactivate = array();
$activated_names = array();
diff --git a/modules/gallery/controllers/combined.php b/modules/gallery/controllers/combined.php
index e90a2f1a..7f3a3c7d 100644
--- a/modules/gallery/controllers/combined.php
+++ b/modules/gallery/controllers/combined.php
@@ -41,7 +41,7 @@ class Combined_Controller extends Controller {
$input = Input::instance();
// We don't need to save the session for this request
- Session::abort_save();
+ Session::instance()->abort_save();
// Our data is immutable, so if they already have a copy then it needs no updating.
if ($input->server("HTTP_IF_MODIFIED_SINCE")) {
diff --git a/modules/gallery/controllers/file_proxy.php b/modules/gallery/controllers/file_proxy.php
index 646edf17..33952366 100644
--- a/modules/gallery/controllers/file_proxy.php
+++ b/modules/gallery/controllers/file_proxy.php
@@ -121,7 +121,7 @@ class File_Proxy_Controller extends Controller {
expires::check(2592000, $item->updated);
// We don't need to save the session for this request
- Session::abort_save();
+ Session::instance()->abort_save();
expires::set(2592000, $item->updated); // 30 days
diff --git a/modules/gallery/css/l10n_client.css b/modules/gallery/css/l10n_client.css
index 053b4432..90034d0c 100644
--- a/modules/gallery/css/l10n_client.css
+++ b/modules/gallery/css/l10n_client.css
@@ -45,7 +45,6 @@
display:block;
position:absolute; right:0em;
height:2em; line-height:2em;
- text-transform:uppercase;
text-align:center; background:#000;
}
#l10n-client-toggler a {
@@ -62,7 +61,7 @@
height:1em; line-height:1em;
padding: .5em; margin:0px;
font-size:1em;
- text-transform:uppercase;}
+}
#l10n-client .strings h2 {
border:0px;}
diff --git a/modules/gallery/helpers/access.php b/modules/gallery/helpers/access.php
index 10fa8666..29b981e8 100644
--- a/modules/gallery/helpers/access.php
+++ b/modules/gallery/helpers/access.php
@@ -663,23 +663,28 @@ class access_Core {
* working and our permission system works.
*/
static function htaccess_works() {
- $success_url = url::file("var/tmp/security_test/success");
+ $success_url = url::file("var/security_test/success");
- @mkdir(VARPATH . "tmp/security_test");
- if ($fp = @fopen(VARPATH . "tmp/security_test/.htaccess", "w+")) {
- fwrite($fp, "RewriteEngine On\n");
- fwrite($fp, "RewriteRule verify $success_url [L]\n");
- fclose($fp);
- }
+ @mkdir(VARPATH . "security_test");
+ try {
+ if ($fp = @fopen(VARPATH . "security_test/.htaccess", "w+")) {
+ fwrite($fp, "RewriteEngine On\n");
+ fwrite($fp, "RewriteRule verify $success_url [L]\n");
+ fclose($fp);
+ }
- if ($fp = @fopen(VARPATH . "tmp/security_test/success", "w+")) {
- fwrite($fp, "success");
- fclose($fp);
- }
+ if ($fp = @fopen(VARPATH . "security_test/success", "w+")) {
+ fwrite($fp, "success");
+ fclose($fp);
+ }
- list ($response) = remote::do_request(url::abs_file("var/tmp/security_test/verify"));
- $works = $response == "HTTP/1.1 200 OK";
- @dir::unlink(VARPATH . "tmp/security_test");
+ list ($response) = remote::do_request(url::abs_file("var/security_test/verify"));
+ $works = $response == "HTTP/1.1 200 OK";
+ } catch (Exception $e) {
+ @dir::unlink(VARPATH . "security_test");
+ throw $e;
+ }
+ @dir::unlink(VARPATH . "security_test");
return $works;
}
diff --git a/modules/gallery/helpers/gallery_block.php b/modules/gallery/helpers/gallery_block.php
index 9d4e81b6..be0f11b8 100644
--- a/modules/gallery/helpers/gallery_block.php
+++ b/modules/gallery/helpers/gallery_block.php
@@ -72,7 +72,7 @@ class gallery_block_Core {
$block->content = new View("admin_block_platform.html");
if (is_readable("/proc/loadavg")) {
$block->content->load_average =
- join(" ", array_slice(explode(" ", array_shift(file("/proc/loadavg"))), 0, 3));
+ join(" ", array_slice(explode(" ", current(file("/proc/loadavg"))), 0, 3));
} else {
$block->content->load_average = t("Unavailable");
}
diff --git a/modules/gallery/helpers/gallery_rss.php b/modules/gallery/helpers/gallery_rss.php
index d422636f..c1790d28 100644
--- a/modules/gallery/helpers/gallery_rss.php
+++ b/modules/gallery/helpers/gallery_rss.php
@@ -25,6 +25,7 @@ class gallery_rss_Core {
}
static function feed($feed_id, $offset, $limit, $id) {
+ $feed = new stdClass();
switch ($feed_id) {
case "latest":
$feed->children = ORM::factory("item")
diff --git a/modules/gallery/helpers/gallery_task.php b/modules/gallery/helpers/gallery_task.php
index c75e050a..3e6278e5 100644
--- a/modules/gallery/helpers/gallery_task.php
+++ b/modules/gallery/helpers/gallery_task.php
@@ -40,7 +40,7 @@ class gallery_task_Core {
$tasks[] = Task_Definition::factory()
->callback("gallery_task::file_cleanup")
->name(t("Remove old files"))
- ->description(t("Remove files from the logs and tmp directory"))
+ ->description(t("Remove expired files from the logs and tmp directory"))
->severity(log::SUCCESS);
return $tasks;
}
@@ -111,6 +111,7 @@ class gallery_task_Core {
site_status::clear("graphics_dirty");
}
} catch (Exception $e) {
+ Kohana_Log::add("error",(string)$e);
$task->done = true;
$task->state = "error";
$task->status = $e->getMessage();
@@ -214,6 +215,7 @@ class gallery_task_Core {
Cache::instance()->delete("update_l10n_cache:{$task->id}");
}
} catch (Exception $e) {
+ Kohana_Log::add("error",(string)$e);
$task->done = true;
$task->state = "error";
$task->status = $e->getMessage();
@@ -233,13 +235,13 @@ class gallery_task_Core {
try {
$start = microtime(true);
$data = Cache::instance()->get("file_cleanup_cache:{$task->id}");
- if ($data) {
- $files = unserialize($data);
- }
+ $files = $data ? unserialize($data) : array();
$i = 0;
+ $current = 0;
+ $total = 0;
switch ($task->get("mode", "init")) {
- case "init": // 0%
+ case "init":
$threshold = time() - 1209600; // older than 2 weeks
foreach(array("logs", "tmp") as $dir) {
$dir = VARPATH . $dir;
@@ -262,6 +264,7 @@ class gallery_task_Core {
if (count($files) == 0) {
break;
}
+
case "delete_files":
$current = $task->get("current");
$total = $task->get("total");
@@ -273,14 +276,17 @@ class gallery_task_Core {
$task->set("current", $current);
}
- $task->status = t("Removed: %count files. Total: %total_count.",
- array("count" => $current, "total_count" => $total));
+ $task->status = t2("Removed: 1 file. Total: %total_count.",
+ "Removed: %count files. Total: %total_count.",
+ $current, array("total_count" => $total));
if ($total == $current) {
$task->done = true;
$task->state = "success";
+ $task->percent_complete = 100;
}
} catch (Exception $e) {
+ Kohana_Log::add("error",(string)$e);
$task->done = true;
$task->state = "error";
$task->status = $e->getMessage();
diff --git a/modules/gallery/helpers/graphics.php b/modules/gallery/helpers/graphics.php
index 5a290905..c85c7750 100644
--- a/modules/gallery/helpers/graphics.php
+++ b/modules/gallery/helpers/graphics.php
@@ -262,6 +262,9 @@ class graphics_Core {
*/
static function detect_toolkits() {
$toolkits = new stdClass();
+ $toolkits->gd = new stdClass();
+ $toolkits->imagemagick = new stdClass();
+ $toolkits->graphicsmagick = new stdClass();
// GD is special, it doesn't use exec()
$gd = function_exists("gd_info") ? gd_info() : array();
diff --git a/modules/gallery/helpers/l10n_client.php b/modules/gallery/helpers/l10n_client.php
index 086245e8..c27e4e5b 100644
--- a/modules/gallery/helpers/l10n_client.php
+++ b/modules/gallery/helpers/l10n_client.php
@@ -77,6 +77,7 @@ class l10n_client_Core {
* translations for.
*/
static function fetch_updates(&$num_fetched) {
+ $request = new stdClass();
$request->locales = array();
$request->messages = new stdClass();
diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php
index 95e426c4..9523d1d2 100644
--- a/modules/gallery/helpers/module.php
+++ b/modules/gallery/helpers/module.php
@@ -430,7 +430,8 @@ class module_Core {
// This could happen if there's a race condition
continue;
}
- self::$var_cache->{$row->module_name}->{$row->name} = $row->value;
+ // Mute the "Creating default object from empty value" warning below
+ @self::$var_cache->{$row->module_name}->{$row->name} = $row->value;
}
$cache = ORM::factory("var");
$cache->module_name = "gallery";
diff --git a/modules/gallery/libraries/Form_Script.php b/modules/gallery/libraries/Form_Script.php
index e841408d..1f965767 100644
--- a/modules/gallery/libraries/Form_Script.php
+++ b/modules/gallery/libraries/Form_Script.php
@@ -50,7 +50,7 @@ class Form_Script_Core extends Forge {
return $this;
}
- public function render() {
+ public function render($template="forge_template", $custom=false) {
$script = array();
if (!empty($this->data["url"])) {
$script[] = html::script($this->data["url"]);
@@ -63,4 +63,4 @@ class Form_Script_Core extends Forge {
return implode("\n", $script);
}
-} // End Form Script \ No newline at end of file
+} \ No newline at end of file
diff --git a/modules/gallery/libraries/MY_Database.php b/modules/gallery/libraries/MY_Database.php
index 61f23fb0..e2ef68cd 100644
--- a/modules/gallery/libraries/MY_Database.php
+++ b/modules/gallery/libraries/MY_Database.php
@@ -38,7 +38,7 @@ abstract class Database extends Database_Core {
* Parse the query string and convert any strings of the form `\([a-zA-Z0-9_]*?)\]
* table prefix . $1
*/
- public function query($sql = '') {
+ public function query($sql) {
if (!empty($sql)) {
$sql = $this->add_table_prefixes($sql);
}
diff --git a/modules/gallery/libraries/MY_View.php b/modules/gallery/libraries/MY_View.php
index cec59ec1..83e0d0be 100644
--- a/modules/gallery/libraries/MY_View.php
+++ b/modules/gallery/libraries/MY_View.php
@@ -27,7 +27,7 @@ class View extends View_Core {
View::$global_data[$key] = $value;
}
- public function is_set($key) {
+ public function is_set($key=null) {
return parent::is_set($key) ? true : array_key_exists($key, View::$global_data);
}
diff --git a/modules/gallery/libraries/ORM_MPTT.php b/modules/gallery/libraries/ORM_MPTT.php
index 83f9b51e..3668d42d 100644
--- a/modules/gallery/libraries/ORM_MPTT.php
+++ b/modules/gallery/libraries/ORM_MPTT.php
@@ -85,7 +85,7 @@ class ORM_MPTT_Core extends ORM {
/**
* Delete this node and all of its children.
*/
- public function delete() {
+ public function delete($ignored_id=null) {
$children = $this->children();
if ($children) {
foreach ($this->children() as $item) {
diff --git a/modules/gallery/models/item.php b/modules/gallery/models/item.php
index fd121a5a..dbd56fa2 100644
--- a/modules/gallery/models/item.php
+++ b/modules/gallery/models/item.php
@@ -70,7 +70,7 @@ class Item_Model extends ORM_MPTT {
return $this->type == 'movie';
}
- public function delete() {
+ public function delete($ignored_id=null) {
if ($this->id == 1) {
$v = new Validation(array("id"));
$v->add_error("id", "cant_delete_root_album");
@@ -929,6 +929,11 @@ class Item_Model extends ORM_MPTT {
$data["album_cover"] = rest::url("item", $tmp);
}
unset($data["album_cover_item_id"]);
+
+ // Elide some internal-only data that is going to cause confusion in the client.
+ foreach (array("relative_path_cache", "relative_url_cache", "left_ptr", "right_ptr") as $key) {
+ unset($data[$key]);
+ }
return $data;
}
}
diff --git a/modules/gallery/models/task.php b/modules/gallery/models/task.php
index f40be492..24d909cb 100644
--- a/modules/gallery/models/task.php
+++ b/modules/gallery/models/task.php
@@ -27,7 +27,7 @@ class Task_Model extends ORM {
}
}
- public function set($key, $value) {
+ public function set($key, $value=null) {
$context = unserialize($this->context);
$context[$key] = $value;
$this->context = serialize($context);
@@ -40,7 +40,7 @@ class Task_Model extends ORM {
return parent::save();
}
- public function delete() {
+ public function delete($ignored_id=null) {
Cache::instance()->delete($this->_cache_key());
return parent::delete();
}
diff --git a/modules/gallery/tests/Database_Test.php b/modules/gallery/tests/Database_Test.php
index e58f73eb..861f7bba 100644
--- a/modules/gallery/tests/Database_Test.php
+++ b/modules/gallery/tests/Database_Test.php
@@ -168,12 +168,12 @@ class Database_Mock extends Database {
return array("test");
}
- public function quote_column($val) {
- return "[$val]";
+ public function quote_column($val, $alias=null) {
+ return $alias ? "[$val,$alias]" : "[$val]";
}
- public function quote_table($val) {
- return "[$val]";
+ public function quote_table($val, $alias=null) {
+ return $alias ? "[$val,$alias]" : "[$val]";
}
public function quote($val) {
diff --git a/modules/gallery/tests/Item_Rest_Helper_Test.php b/modules/gallery/tests/Item_Rest_Helper_Test.php
index 088b1cbd..6d1dd864 100644
--- a/modules/gallery/tests/Item_Rest_Helper_Test.php
+++ b/modules/gallery/tests/Item_Rest_Helper_Test.php
@@ -32,6 +32,7 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1->reload();
// No scope is the same as "direct"
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
$request->params = new stdClass();
$this->assert_equal_array(
@@ -84,7 +85,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$photo2->save();
$album1->reload();
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->name = "foo";
$this->assert_equal_array(
array("url" => rest::url("item", $album1),
@@ -104,7 +107,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album2 = test::random_album($album1);
$album1->reload();
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->type = "album";
$this->assert_equal_array(
array("url" => rest::url("item", $album1),
@@ -122,7 +127,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->title = "my new title";
item_rest::put($request);
@@ -133,7 +140,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->title = "my new title";
$request->params->slug = "not url safe";
@@ -150,7 +159,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->type = "album";
$request->params->name = "my album";
$request->params->title = "my album";
@@ -165,7 +176,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->type = "album";
$request->params->name = "my album";
$request->params->title = "my album";
@@ -185,7 +198,9 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
+ $request->params = new stdClass();
$request->params->type = "photo";
$request->params->name = "my photo.jpg";
$request->file = MODPATH . "gallery/tests/test.jpg";
@@ -200,6 +215,7 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album1 = test::random_album();
access::allow(identity::everybody(), "edit", $album1);
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
item_rest::delete($request);
@@ -212,6 +228,7 @@ class Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
access::deny(identity::everybody(), "edit", $album1);
identity::set_active_user(identity::guest());
+ $request = new stdClass();
$request->url = rest::url("item", $album1);
try {
item_rest::delete($request);
diff --git a/modules/gallery/views/admin_advanced_settings.html.php b/modules/gallery/views/admin_advanced_settings.html.php
index 2d4b11a1..1f7d2f64 100644
--- a/modules/gallery/views/admin_advanced_settings.html.php
+++ b/modules/gallery/views/admin_advanced_settings.html.php
@@ -25,10 +25,10 @@
<a href="<?= url::site("admin/advanced_settings/edit/$var->module_name/" . html::clean($var->name)) ?>"
class="g-dialog-link"
title="<?= t("Edit %var (%module_name)", array("var" => $var->name, "module_name" => $var->module_name))->for_html_attr() ?>">
- <? if (isset($var->value)): ?>
- <?= html::clean($var->value) ?>
- <? else: ?>
+ <? if (!isset($var->value) || $var->value === ""): ?>
<i> <?= t("empty") ?> </i>
+ <? else: ?>
+ <?= html::clean($var->value) ?>
<? endif ?>
</a>
</td>
diff --git a/modules/gallery/views/in_place_edit.html.php b/modules/gallery/views/in_place_edit.html.php
index 05a16ad4..2d6cbe90 100644
--- a/modules/gallery/views/in_place_edit.html.php
+++ b/modules/gallery/views/in_place_edit.html.php
@@ -9,7 +9,13 @@
<?= form::submit(array("class" => "submit ui-state-default"), t("Save")) ?>
</li>
<li><a href="#" class="g-cancel"><?= t("Cancel") ?></a></li>
+ <? if (!empty($errors["input"])): ?>
+ <li>
+ <p id="g-in-place-edit-message" class="g-error"><?= $errors["input"] ?></p>
+ </li>
+ <? endif ?>
</ul>
</form>
+
diff --git a/modules/gallery_unit_test/controllers/gallery_unit_test.php b/modules/gallery_unit_test/controllers/gallery_unit_test.php
index e05fcbaa..2690ad24 100644
--- a/modules/gallery_unit_test/controllers/gallery_unit_test.php
+++ b/modules/gallery_unit_test/controllers/gallery_unit_test.php
@@ -18,11 +18,15 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Gallery_Unit_Test_Controller extends Controller {
- function Index() {
+ function index() {
if (!TEST_MODE) {
throw new Kohana_404_Exception();
}
+ // Force strict behavior to flush out bugs early
+ ini_set("display_errors", true);
+ error_reporting(-1);
+
// Jump through some hoops to satisfy the way that we check for the site_domain in
// config.php. We structure this such that the code in config will leave us with a
// site_domain of "." (for historical reasons)
diff --git a/modules/rest/controllers/rest.php b/modules/rest/controllers/rest.php
index 9141d6d4..374ae0d2 100644
--- a/modules/rest/controllers/rest.php
+++ b/modules/rest/controllers/rest.php
@@ -40,6 +40,7 @@ class Rest_Controller extends Controller {
public function __call($function, $args) {
$input = Input::instance();
+ $request = new stdClass();
switch ($method = strtolower($input->server("REQUEST_METHOD"))) {
case "get":
$request->params = (object) $input->get();
diff --git a/modules/rest/helpers/rest.php b/modules/rest/helpers/rest.php
index b3f80a55..a61aba2f 100644
--- a/modules/rest/helpers/rest.php
+++ b/modules/rest/helpers/rest.php
@@ -19,7 +19,7 @@
*/
class rest_Core {
static function reply($data=array()) {
- Session::abort_save();
+ Session::instance()->abort_save();
if ($data) {
if (Input::instance()->get("output") == "html") {
diff --git a/modules/rest/tests/Rest_Controller_Test.php b/modules/rest/tests/Rest_Controller_Test.php
index 5e624112..9f73bed9 100644
--- a/modules/rest/tests/Rest_Controller_Test.php
+++ b/modules/rest/tests/Rest_Controller_Test.php
@@ -138,8 +138,8 @@ class Rest_Controller_Test extends Gallery_Unit_Test_Case {
}
class mock_rest {
- function get($request) { return $request; }
- function post($request) { return $request; }
- function put($request) { return $request; }
- function delete($request) { return $request; }
+ static function get($request) { return $request; }
+ static function post($request) { return $request; }
+ static function put($request) { return $request; }
+ static function delete($request) { return $request; }
} \ No newline at end of file
diff --git a/modules/search/helpers/search.php b/modules/search/helpers/search.php
index b2497eae..9018ffa2 100644
--- a/modules/search/helpers/search.php
+++ b/modules/search/helpers/search.php
@@ -65,7 +65,8 @@ class search_Core {
$record->item_id = $item->id;
}
- module::event("item_index_data", $record->item(), $data);
+ $item = $record->item();
+ module::event("item_index_data", $item, $data);
$record->data = join(" ", (array)$data);
$record->dirty = 0;
$record->save();
diff --git a/modules/server_add/controllers/server_add.php b/modules/server_add/controllers/server_add.php
index 2a948653..f68335df 100644
--- a/modules/server_add/controllers/server_add.php
+++ b/modules/server_add/controllers/server_add.php
@@ -42,7 +42,6 @@ class Server_Add_Controller extends Admin_Controller {
// Make a tree with the parents back up to the authorized path, and all the children under the
// current path.
- Kohana_Log::add("error", $path);
if (server_add::is_valid_path($path)) {
$tree->parents[] = $path;
while (server_add::is_valid_path(dirname($tree->parents[0]))) {
diff --git a/modules/tag/controllers/admin_tags.php b/modules/tag/controllers/admin_tags.php
index 3b605a4e..9092ec68 100644
--- a/modules/tag/controllers/admin_tags.php
+++ b/modules/tag/controllers/admin_tags.php
@@ -97,7 +97,8 @@ class Admin_Tags_Controller extends Admin_Controller {
message::success($message);
log::success("tags", $message);
- print json_encode(array("result" => "success"));
+ print json_encode(array("result" => "success",
+ "location" => url::site("admin/tags")));
} else {
print json_encode(array("result" => "error", "form" => $in_place_edit->render()));
}
diff --git a/modules/tag/helpers/tag_rss.php b/modules/tag/helpers/tag_rss.php
index f09a4530..5d42caab 100644
--- a/modules/tag/helpers/tag_rss.php
+++ b/modules/tag/helpers/tag_rss.php
@@ -34,6 +34,8 @@ class tag_rss_Core {
if (!$tag->loaded()) {
throw new Kohana_404_Exception();
}
+
+ $feed = new stdClass();
$feed->children = $tag->items($limit, $offset, "photo");
$feed->max_pages = ceil($tag->count / $limit);
$feed->title = $tag->name;
diff --git a/modules/tag/helpers/tags_rest.php b/modules/tag/helpers/tags_rest.php
index ac0eb81d..f28be7b5 100644
--- a/modules/tag/helpers/tags_rest.php
+++ b/modules/tag/helpers/tags_rest.php
@@ -35,7 +35,6 @@ class tags_rest_Core {
$query->or_where("edit_{$group->id}", "=", access::ALLOW);
}
$has_any_edit_perm = $query->close()->count_records();
-
if (!$has_any_edit_perm) {
access::forbidden();
}
diff --git a/modules/tag/models/tag.php b/modules/tag/models/tag.php
index 2b33c30d..38a8ed69 100644
--- a/modules/tag/models/tag.php
+++ b/modules/tag/models/tag.php
@@ -95,7 +95,7 @@ class Tag_Model extends ORM {
* Overload ORM::delete() to trigger an item_related_update event for all items that are
* related to this tag.
*/
- public function delete() {
+ public function delete($ignored_id=null) {
$related_item_ids = array();
foreach (db::build()
->select("item_id")
diff --git a/modules/tag/tests/Tag_Item_Rest_Helper_Test.php b/modules/tag/tests/Tag_Item_Rest_Helper_Test.php
index 69c580f1..cb368790 100644
--- a/modules/tag/tests/Tag_Item_Rest_Helper_Test.php
+++ b/modules/tag/tests/Tag_Item_Rest_Helper_Test.php
@@ -28,6 +28,7 @@ class Tag_Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function get_test() {
$tag = tag::add(item::root(), "tag1")->reload();
+ $request = new stdClass();
$request->url = rest::url("tag_item", $tag, item::root());
$this->assert_equal_array(
array("url" => rest::url("tag_item", $tag, item::root()),
@@ -38,6 +39,7 @@ class Tag_Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
}
public function get_with_invalid_url_test() {
+ $request = new stdClass();
$request->url = "bogus";
try {
tag_item_rest::get($request);
@@ -50,6 +52,7 @@ class Tag_Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function delete_test() {
$tag = tag::add(item::root(), "tag1")->reload();
+ $request = new stdClass();
$request->url = rest::url("tag_item", $tag, item::root());
tag_item_rest::delete($request);
@@ -60,7 +63,6 @@ class Tag_Item_Rest_Helper_Test extends Gallery_Unit_Test_Case {
$album = test::random_album();
$tag = tag::add($album, "tag1")->reload();
-
$tuple = rest::resolve(rest::url("tag_item", $tag, $album));
$this->assert_equal_array($tag->as_array(), $tuple[0]->as_array());
$this->assert_equal_array($album->as_array(), $tuple[1]->as_array());
diff --git a/modules/tag/tests/Tag_Rest_Helper_Test.php b/modules/tag/tests/Tag_Rest_Helper_Test.php
index d3cae0fb..838de975 100644
--- a/modules/tag/tests/Tag_Rest_Helper_Test.php
+++ b/modules/tag/tests/Tag_Rest_Helper_Test.php
@@ -28,6 +28,7 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function get_test() {
$tag = tag::add(item::root(), "tag1")->reload();
+ $request = new stdClass();
$request->url = rest::url("tag", $tag);
$this->assert_equal_array(
array("url" => rest::url("tag", $tag),
@@ -41,6 +42,7 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
}
public function get_with_invalid_url_test() {
+ $request = new stdClass();
$request->url = "bogus";
try {
tag_rest::get($request);
@@ -53,6 +55,7 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function get_with_no_relationships_test() {
$tag = test::random_tag();
+ $request = new stdClass();
$request->url = rest::url("tag", $tag);
$this->assert_equal_array(
array("url" => rest::url("tag", $tag),
@@ -72,7 +75,9 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
access::allow(identity::everybody(), "edit", $album);
// Add the album to the tag
+ $request = new stdClass();
$request->url = rest::url("tag", $tag);
+ $request->params = new stdClass();
$request->params->url = rest::url("item", $album);
$this->assert_equal_array(
array("url" => rest::url("tag_item", $tag, $album)),
@@ -93,7 +98,9 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function put_test() {
$tag = test::random_tag();
+ $request = new stdClass();
$request->url = rest::url("tag", $tag);
+ $request->params = new stdClass();
$request->params->name = "new name";
tag_rest::put($request);
@@ -102,6 +109,7 @@ class Tag_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function delete_tag_test() {
$tag = test::random_tag();
+ $request = new stdClass();
$request->url = rest::url("tag", $tag);
tag_rest::delete($request);
diff --git a/modules/tag/tests/Tags_Rest_Helper_Test.php b/modules/tag/tests/Tags_Rest_Helper_Test.php
index a1713811..cdf7bfdf 100644
--- a/modules/tag/tests/Tags_Rest_Helper_Test.php
+++ b/modules/tag/tests/Tags_Rest_Helper_Test.php
@@ -43,6 +43,8 @@ class Tags_Rest_Helper_Test extends Gallery_Unit_Test_Case {
public function post_test() {
access::allow(identity::everybody(), "edit", item::root());
+ $request = new stdClass();
+ $request->params = new stdClass();
$request->params->name = "test tag";
$this->assert_equal(
array("url" => url::site("rest/tag/1")),
@@ -55,6 +57,8 @@ class Tags_Rest_Helper_Test extends Gallery_Unit_Test_Case {
identity::set_active_user(identity::guest());
try {
+ $request = new stdClass();
+ $request->params = new stdClass();
$request->params->name = "test tag";
tags_rest::post($request);
} catch (Exception $e) {
diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php
index c11b0596..03d9858b 100644
--- a/modules/user/controllers/admin_users.php
+++ b/modules/user/controllers/admin_users.php
@@ -323,7 +323,7 @@ class Admin_Users_Controller extends Admin_Controller {
return $form;
}
- private function _add_locale_dropdown(&$form, $user=null) {
+ private static function _add_locale_dropdown(&$form, $user=null) {
$locales = locales::installed();
foreach ($locales as $locale => $display_name) {
$locales[$locale] = SafeString::of_safe_html($display_name);
diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php
index 1d49998d..729f087a 100644
--- a/modules/user/helpers/user_installer.php
+++ b/modules/user/helpers/user_installer.php
@@ -29,9 +29,21 @@ class user_installer {
static function upgrade($version) {
if ($version == 1) {
module::set_var("user", "mininum_password_length", 5);
-
module::set_version("user", $version = 2);
}
+
+ if ($version == 2) {
+ db::build()
+ ->update("users")
+ ->set("email", "unknown@unknown.com")
+ ->where("guest", "=", 0)
+ ->and_open()
+ ->where("email", "IS", null)
+ ->or_where("email", "=", "")
+ ->close()
+ ->execute();
+ module::set_version("user", $version = 3);
+ }
}
static function uninstall() {
@@ -117,7 +129,7 @@ class user_installer {
access::allow($registered, "view", $root);
access::allow($registered, "view_full", $root);
- module::set_version("user", 2);
module::set_var("user", "mininum_password_length", 5);
+ module::set_version("user", 3);
}
} \ No newline at end of file
diff --git a/modules/user/module.info b/modules/user/module.info
index d1e02382..185a3e3a 100644
--- a/modules/user/module.info
+++ b/modules/user/module.info
@@ -1,4 +1,4 @@
name = "Users and Groups"
description = "Gallery 3 user and group management"
-version = 2
+version = 3
diff --git a/modules/watermark/helpers/watermark_installer.php b/modules/watermark/helpers/watermark_installer.php
index b3e91044..e45ef746 100644
--- a/modules/watermark/helpers/watermark_installer.php
+++ b/modules/watermark/helpers/watermark_installer.php
@@ -33,7 +33,7 @@ class watermark_installer {
DEFAULT CHARSET=utf8;");
@mkdir(VARPATH . "modules/watermark");
- module::set_version("watermark", 1);
+ module::set_version("watermark", 2);
}
static function uninstall() {