From 74328584205c6685af44de6ea011f5e337fa9155 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 27 Sep 2009 11:25:03 -0700 Subject: Fix one more place in the installer where we referring to the old default theme names. Update installer.sql --- installer/install.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index e8aaa681..12785f09 100755 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,7 +228,7 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',12); +INSERT INTO {modules} VALUES (1,1,'gallery',13); INSERT INTO {modules} VALUES (2,1,'user',1); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); @@ -331,8 +331,8 @@ CREATE TABLE {themes} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {themes} VALUES (1,'default',1); -INSERT INTO {themes} VALUES (2,'admin_default',1); +INSERT INTO {themes} VALUES (1,'wind',1); +INSERT INTO {themes} VALUES (2,'admin_wind',1); DROP TABLE IF EXISTS {users}; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; @@ -368,8 +368,8 @@ CREATE TABLE {vars} ( UNIQUE KEY `module_name` (`module_name`,`name`) ) AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','default'); -INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_default'); +INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','wind'); +INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_wind'); INSERT INTO {vars} VALUES (3,'gallery','page_size','9'); INSERT INTO {vars} VALUES (4,'gallery','thumb_size','200'); INSERT INTO {vars} VALUES (5,'gallery','resize_size','640'); -- cgit v1.2.3 From 467b74c3106558d1656301b9c73236417d4421ac Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sun, 27 Sep 2009 15:24:51 -0700 Subject: This path requires the upgrader to be run and applies the following changes: * moves the composite method back into core * requires that the operation be fully qualified i.e. gallery_graphics::resize * caches the graphics rules on each request --- installer/install.sql | 4 +- .../gallery/controllers/admin_theme_options.php | 8 +-- modules/gallery/helpers/gallery_graphics.php | 55 ++++++++++++++++ modules/gallery/helpers/gallery_installer.php | 21 +++++- modules/gallery/helpers/graphics.php | 30 ++++++--- modules/gallery/module.info | 2 +- modules/watermark/controllers/admin_watermarks.php | 2 +- modules/watermark/helpers/watermark_graphics.php | 75 ---------------------- modules/watermark/helpers/watermark_installer.php | 22 ++++++- modules/watermark/module.info | 2 +- 10 files changed, 124 insertions(+), 97 deletions(-) delete mode 100644 modules/watermark/helpers/watermark_graphics.php (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 12785f09..80042b10 100755 --- a/installer/install.sql +++ b/installer/install.sql @@ -88,8 +88,8 @@ CREATE TABLE {graphics_rules} ( PRIMARY KEY (`id`) ) AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {graphics_rules} VALUES (1,1,'a:3:{s:5:\"width\";i:200;s:6:\"height\";i:200;s:6:\"master\";i:2;}','gallery','resize',100,'thumb'); -INSERT INTO {graphics_rules} VALUES (2,1,'a:3:{s:5:\"width\";i:640;s:6:\"height\";i:480;s:6:\"master\";i:2;}','gallery','resize',100,'resize'); +INSERT INTO {graphics_rules} VALUES (1,1,'a:3:{s:5:\"width\";i:200;s:6:\"height\";i:200;s:6:\"master\";i:2;}','gallery','gallery_graphics::resize',100,'thumb'); +INSERT INTO {graphics_rules} VALUES (2,1,'a:3:{s:5:\"width\";i:640;s:6:\"height\";i:480;s:6:\"master\";i:2;}','gallery','gallery_graphics::resize',100,'resize'); DROP TABLE IF EXISTS {groups}; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; diff --git a/modules/gallery/controllers/admin_theme_options.php b/modules/gallery/controllers/admin_theme_options.php index 8970c3c9..27a67bdb 100644 --- a/modules/gallery/controllers/admin_theme_options.php +++ b/modules/gallery/controllers/admin_theme_options.php @@ -35,9 +35,9 @@ class Admin_Theme_Options_Controller extends Admin_Controller { $thumb_size = $form->edit_theme->thumb_size->value; $thumb_dirty = false; if (module::get_var("gallery", "thumb_size") != $thumb_size) { - graphics::remove_rule("gallery", "thumb", "resize"); + graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); graphics::add_rule( - "gallery", "thumb", "resize", + "gallery", "thumb", "gallery_graphics::resize", array("width" => $thumb_size, "height" => $thumb_size, "master" => Image::AUTO), 100); module::set_var("gallery", "thumb_size", $thumb_size); @@ -46,9 +46,9 @@ class Admin_Theme_Options_Controller extends Admin_Controller { $resize_size = $form->edit_theme->resize_size->value; $resize_dirty = false; if (module::get_var("gallery", "resize_size") != $resize_size) { - graphics::remove_rule("gallery", "resize", "resize"); + graphics::remove_rule("gallery", "resize", "gallery_graphics::resize"); graphics::add_rule( - "gallery", "resize", "resize", + "gallery", "resize", "gallery_graphics::resize", array("width" => $resize_size, "height" => $resize_size, "master" => Image::AUTO), 100); module::set_var("gallery", "resize_size", $resize_size); diff --git a/modules/gallery/helpers/gallery_graphics.php b/modules/gallery/helpers/gallery_graphics.php index f62fbf97..bdd600c5 100644 --- a/modules/gallery/helpers/gallery_graphics.php +++ b/modules/gallery/helpers/gallery_graphics.php @@ -51,4 +51,59 @@ class gallery_graphics_Core { module::event("graphics_resize_completed", $input_file, $output_file, $options); } + + /** + * Overlay an image on top of the input file. + * + * Valid options are: file, mime_type, position, transparency_percent, padding + * + * Valid positions: northwest, north, northeast, + * west, center, east, + * southwest, south, southeast + * + * padding is in pixels + * + * @param string $input_file + * @param string $output_file + * @param array $options + */ + static function composite($input_file, $output_file, $options) { + try { + graphics::init_toolkit(); + + module::event("graphics_composite", $input_file, $output_file, $options); + + list ($width, $height) = getimagesize($input_file); + list ($w_width, $w_height) = getimagesize($options["file"]); + + $pad = isset($options["padding"]) ? $options["padding"] : 10; + $top = $pad; + $left = $pad; + $y_center = max($height / 2 - $w_height / 2, $pad); + $x_center = max($width / 2 - $w_width / 2, $pad); + $bottom = max($height - $w_height - $pad, $pad); + $right = max($width - $w_width - $pad, $pad); + + switch ($options["position"]) { + case "northwest": $x = $left; $y = $top; break; + case "north": $x = $x_center; $y = $top; break; + case "northeast": $x = $right; $y = $top; break; + case "west": $x = $left; $y = $y_center; break; + case "center": $x = $x_center; $y = $y_center; break; + case "east": $x = $right; $y = $y_center; break; + case "southwest": $x = $left; $y = $bottom; break; + case "south": $x = $x_center; $y = $bottom; break; + case "southeast": $x = $right; $y = $bottom; break; + } + + Image::factory($input_file) + ->composite($options["file"], $x, $y, $options["transparency"]) + ->quality(module::get_var("gallery", "image_quality")) + ->save($output_file); + + module::event("graphics_composite_completed", $input_file, $output_file, $options); + } catch (ErrorException $e) { + Kohana::log("error", $e->get_message()); + } + } } diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index d4aae4c3..f995b606 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -235,11 +235,11 @@ class gallery_installer { // Add rules for generating our thumbnails and resizes graphics::add_rule( - "gallery", "thumb", "resize", + "gallery", "thumb", "gallery_graphics::resize", array("width" => 200, "height" => 200, "master" => Image::AUTO), 100); graphics::add_rule( - "gallery", "resize", "resize", + "gallery", "resize", "gallery_graphics::resize", array("width" => 640, "height" => 480, "master" => Image::AUTO), 100); @@ -268,7 +268,7 @@ class gallery_installer { module::set_var("gallery", "show_credits", 1); // @todo this string needs to be picked up by l10n_scanner module::set_var("gallery", "credits", "Powered by Gallery %version"); - module::set_version("gallery", 13); + module::set_version("gallery", 14); } static function upgrade($version) { @@ -375,6 +375,21 @@ class gallery_installer { module::set_version("gallery", $version = 13); } + if ($version == 13) { + // Add rules for generating our thumbnails and resizes + graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); + graphics::remove_rule("gallery", "resize", "gallery_graphics::resize"); + graphics::add_rule( + "gallery", "thumb", "gallery_graphics::resize", + array("width" => 200, "height" => 200, "master" => Image::AUTO), + 100); + graphics::add_rule( + "gallery", "resize", "gallery_graphics::resize", + array("width" => 640, "height" => 480, "master" => Image::AUTO), + 100); + module::set_version("gallery", $version = 14); + } + } static function uninstall() { diff --git a/modules/gallery/helpers/graphics.php b/modules/gallery/helpers/graphics.php index 6705652f..0e32022f 100644 --- a/modules/gallery/helpers/graphics.php +++ b/modules/gallery/helpers/graphics.php @@ -19,6 +19,7 @@ */ class graphics_Core { private static $init; + private static $_rules_cache = array(); /** * Add a new graphics rule. @@ -26,7 +27,7 @@ class graphics_Core { * Rules are applied to targets (thumbnails and resizes) in priority order. Rules are functions * in the graphics class. So for example, the following rule: * - * graphics::add_rule("gallery", "thumb", "resize", + * graphics::add_rule("gallery", "thumb", "gallery_graphics::resize", * array("width" => 200, "height" => 200, "master" => Image::AUTO), 100); * * Specifies that "gallery" is adding a rule to resize thumbnails down to a max of 200px on @@ -35,7 +36,7 @@ class graphics_Core { * * @param string $module_name the module that added the rule * @param string $target the target for this operation ("thumb" or "resize") - * @param string $operation the name of the operation + * @param string $operation the name of the operation (::method) * @param array $args arguments to the operation * @param integer $priority the priority for this rule (lower priorities are run first) */ @@ -56,7 +57,7 @@ class graphics_Core { * Remove any matching graphics rules * @param string $module_name the module that added the rule * @param string $target the target for this operation ("thumb" or "resize") - * @param string $operation the name of the operation + * @param string $operation the name of the operation(::method) */ static function remove_rule($module_name, $target, $operation) { ORM::factory("graphics_rule") @@ -146,13 +147,9 @@ class graphics_Core { $working_file = $input_file; } - foreach (ORM::factory("graphics_rule") - ->where("target", $target) - ->where("active", true) - ->orderby("priority", "asc") - ->find_all() as $rule) { + foreach (self::_get_rules($target) as $rule) { $args = array($working_file, $output_file, unserialize($rule->args)); - call_user_func_array(array("{$rule->module_name}_graphics", $rule->operation), $args); + call_user_func_array($rule->operation, $args); $working_file = $output_file; } } @@ -180,6 +177,21 @@ class graphics_Core { } } + private static function _get_rules($target) { + if (empty(self::$_rules_cache[$target])) { + $rules = array(); + foreach (ORM::factory("graphics_rule") + ->where("target", $target) + ->where("active", true) + ->orderby("priority", "asc") + ->find_all() as $rule) { + $rules[] = (object)$rule->as_array(); + } + self::$_rules_cache[$target] = $rules; + } + return self::$_rules_cache[$target]; + } + /** * Rotate an image. Valid options are degrees * diff --git a/modules/gallery/module.info b/modules/gallery/module.info index 65a0691c..bffcb1c6 100644 --- a/modules/gallery/module.info +++ b/modules/gallery/module.info @@ -1,3 +1,3 @@ name = "Gallery 3" description = "Gallery core application" -version = 13 +version = 14 diff --git a/modules/watermark/controllers/admin_watermarks.php b/modules/watermark/controllers/admin_watermarks.php index 423196ac..2a1d5f60 100644 --- a/modules/watermark/controllers/admin_watermarks.php +++ b/modules/watermark/controllers/admin_watermarks.php @@ -138,7 +138,7 @@ class Admin_Watermarks_Controller extends Admin_Controller { if ($name = module::get_var("watermark", "name")) { foreach (array("thumb", "resize") as $target) { graphics::add_rule( - "watermark", $target, "composite", + "watermark", $target, "gallery_graphics::composite", array("file" => VARPATH . "modules/watermark/$name", "width" => module::get_var("watermark", "width"), "height" => module::get_var("watermark", "height"), diff --git a/modules/watermark/helpers/watermark_graphics.php b/modules/watermark/helpers/watermark_graphics.php deleted file mode 100644 index aef7586b..00000000 --- a/modules/watermark/helpers/watermark_graphics.php +++ /dev/null @@ -1,75 +0,0 @@ -composite($options["file"], $x, $y, $options["transparency"]) - ->quality(module::get_var("gallery", "image_quality")) - ->save($output_file); - - module::event("graphics_composite_completed", $input_file, $output_file, $options); - } catch (ErrorException $e) { - Kohana::log("error", $e->get_message()); - } - } -} diff --git a/modules/watermark/helpers/watermark_installer.php b/modules/watermark/helpers/watermark_installer.php index b3e91044..5c7dfdab 100644 --- a/modules/watermark/helpers/watermark_installer.php +++ b/modules/watermark/helpers/watermark_installer.php @@ -33,11 +33,31 @@ class watermark_installer { DEFAULT CHARSET=utf8;"); @mkdir(VARPATH . "modules/watermark"); - module::set_version("watermark", 1); + module::set_version("watermark", 2); } static function uninstall() { Database::instance()->query("DROP TABLE {watermarks}"); dir::unlink(VARPATH . "modules/watermark"); } + + static function upgrade($version) { + $db = Database::instance(); + if ($version == 1) { + graphics::remove_rules("watermark"); + if ($name = module::get_var("watermark", "name")) { + foreach (array("thumb", "resize") as $target) { + graphics::add_rule( + "watermark", $target, "gallery_graphics::composite", + array("file" => VARPATH . "modules/watermark/$name", + "width" => module::get_var("watermark", "width"), + "height" => module::get_var("watermark", "height"), + "position" => module::get_var("watermark", "position"), + "transparency" => 101 - module::get_var("watermark", "transparency")), + 1000); + } + } + module::set_version("watermark", $version = 2); + } + } } diff --git a/modules/watermark/module.info b/modules/watermark/module.info index abd4a3cf..41a871bd 100644 --- a/modules/watermark/module.info +++ b/modules/watermark/module.info @@ -1,3 +1,3 @@ name = "Watermarks" description = "Allows users to watermark their photos" -version = 1 +version = 2 -- cgit v1.2.3 From c97a88599eb7b199294edbfae382353456061bef Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sun, 27 Sep 2009 17:55:48 -0700 Subject: Change gallery installer to do a direct update to the database, preppending gallery_graphics:: to each of the defined rules operations --- installer/install.sql | 2 +- modules/gallery/helpers/gallery_installer.php | 12 ++---------- modules/watermark/helpers/watermark_installer.php | 22 +--------------------- 3 files changed, 4 insertions(+), 32 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 80042b10..da349c36 100755 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,7 +228,7 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',13); +INSERT INTO {modules} VALUES (1,1,'gallery',14); INSERT INTO {modules} VALUES (2,1,'user',1); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index f995b606..49bd9bb7 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -377,16 +377,8 @@ class gallery_installer { if ($version == 13) { // Add rules for generating our thumbnails and resizes - graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); - graphics::remove_rule("gallery", "resize", "gallery_graphics::resize"); - graphics::add_rule( - "gallery", "thumb", "gallery_graphics::resize", - array("width" => 200, "height" => 200, "master" => Image::AUTO), - 100); - graphics::add_rule( - "gallery", "resize", "gallery_graphics::resize", - array("width" => 640, "height" => 480, "master" => Image::AUTO), - 100); + Database::instance()->query("update g3_graphics_rules g + set operation=concat(\"gallery_graphics::\", g.operation);"); module::set_version("gallery", $version = 14); } diff --git a/modules/watermark/helpers/watermark_installer.php b/modules/watermark/helpers/watermark_installer.php index 5c7dfdab..b3e91044 100644 --- a/modules/watermark/helpers/watermark_installer.php +++ b/modules/watermark/helpers/watermark_installer.php @@ -33,31 +33,11 @@ class watermark_installer { DEFAULT CHARSET=utf8;"); @mkdir(VARPATH . "modules/watermark"); - module::set_version("watermark", 2); + module::set_version("watermark", 1); } static function uninstall() { Database::instance()->query("DROP TABLE {watermarks}"); dir::unlink(VARPATH . "modules/watermark"); } - - static function upgrade($version) { - $db = Database::instance(); - if ($version == 1) { - graphics::remove_rules("watermark"); - if ($name = module::get_var("watermark", "name")) { - foreach (array("thumb", "resize") as $target) { - graphics::add_rule( - "watermark", $target, "gallery_graphics::composite", - array("file" => VARPATH . "modules/watermark/$name", - "width" => module::get_var("watermark", "width"), - "height" => module::get_var("watermark", "height"), - "position" => module::get_var("watermark", "position"), - "transparency" => 101 - module::get_var("watermark", "transparency")), - 1000); - } - } - module::set_version("watermark", $version = 2); - } - } } -- cgit v1.2.3 From 312811c783a14d33556acfb4ecdbd335c2605df0 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 21 Oct 2009 08:07:49 -0700 Subject: Change the default install.sql such that the owner id of root album is the defined admin (id = 2) --- installer/install.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index da349c36..9ec6ff48 100755 --- a/installer/install.sql +++ b/installer/install.sql @@ -175,7 +175,7 @@ CREATE TABLE {items} ( KEY `weight` (`weight`) ) AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {items} VALUES (1,NULL,NULL,UNIX_TIMESTAMP(),'',NULL,1,1,NULL,NULL,NULL,0,NULL,'','',1,NULL,NULL,2,NULL,'weight','ASC',1,NULL,NULL,'Gallery','album',UNIX_TIMESTAMP(),0,1,NULL,'1','1'); +INSERT INTO {items} VALUES (1,NULL,NULL,UNIX_TIMESTAMP(),'',NULL,1,1,NULL,NULL,2,0,NULL,'','',1,NULL,NULL,2,NULL,'weight','ASC',1,NULL,NULL,'Gallery','album',UNIX_TIMESTAMP(),0,1,NULL,'1','1'); DROP TABLE IF EXISTS {items_tags}; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; -- cgit v1.2.3 From 3573544104c68b3f329fd291ab3093d85dbd5694 Mon Sep 17 00:00:00 2001 From: Chad Kieffer Date: Thu, 22 Oct 2009 23:36:05 -0600 Subject: Poor man's merge. Note to self, git pull before working. Next pound the steps to merge into your head. --- installer/install.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 installer/install.sql (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql old mode 100755 new mode 100644 -- cgit v1.2.3 From 599cfab3b30be4a7495ec4bf58b06a805e23c829 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 26 Oct 2009 10:04:09 -0700 Subject: Update the install.sql to reflect the current version number(16) and the refactoring of the user module into an idnetity provider --- installer/install.sql | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 9ec6ff48..714d8ab7 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,7 +228,7 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',14); +INSERT INTO {modules} VALUES (1,1,'gallery',16); INSERT INTO {modules} VALUES (2,1,'user',1); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); @@ -366,7 +366,7 @@ CREATE TABLE {vars} ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `module_name` (`module_name`,`name`) -) AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','wind'); INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_wind'); @@ -376,12 +376,14 @@ INSERT INTO {vars} VALUES (5,'gallery','resize_size','640'); INSERT INTO {vars} VALUES (6,'gallery','default_locale','en_US'); INSERT INTO {vars} VALUES (7,'gallery','image_quality','75'); INSERT INTO {vars} VALUES (8,'gallery','image_sharpen','15'); -INSERT INTO {vars} VALUES (21,'gallery','time_format','H:i:s'); -INSERT INTO {vars} VALUES (22,'gallery','show_credits','1'); -INSERT INTO {vars} VALUES (23,'gallery','credits','Powered by Gallery %version'); -INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); -INSERT INTO {vars} VALUES (20,'gallery','date_time_format','Y-M-d H:i:s'); -INSERT INTO {vars} VALUES (19,'gallery','date_format','Y-M-d'); -INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:4:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}i:9;a:2:{i:0;s:7:\"comment\";i:1;s:15:\"recent_comments\";}}'); -INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); -INSERT INTO {vars} VALUES (25,'comment','spam_caught','0'); +INSERT INTO {vars} VALUES (9,'gallery','identity_provider','user'); +INSERT INTO {vars} VALUES (22,'gallery','time_format','H:i:s'); +INSERT INTO {vars} VALUES (23,'gallery','show_credits','1'); +INSERT INTO {vars} VALUES (24,'gallery','credits','Powered by Gallery %version'); +INSERT INTO {vars} VALUES (11,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); +INSERT INTO {vars} VALUES (21,'gallery','date_time_format','Y-M-d H:i:s'); +INSERT INTO {vars} VALUES (20,'gallery','date_format','Y-M-d'); +INSERT INTO {vars} VALUES (16,'gallery','blocks_dashboard_center','a:4:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}i:9;a:2:{i:0;s:7:\"comment\";i:1;s:15:\"recent_comments\";}}'); +INSERT INTO {vars} VALUES (19,'gallery','choose_default_tookit','1'); +INSERT INTO {vars} VALUES (26,'comment','spam_caught','0'); +INSERT INTO {vars} VALUES (28,'gallery','blocks_site.sidebar','a:3:{i:596516649;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:1189641421;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:1025202362;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); -- cgit v1.2.3 From 79f700ef9f79926d5e806bd48e5a6f99b6ecc5bb Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 12 Nov 2009 09:29:17 -0800 Subject: Change the keys of the block arrays in block manager to be a md5 hash of module_name:block_id. This allows easier lookup of blocks to remove when modules are being deactivated. Change the module activation/deactivation to call (activate|deactivate)_blocks instead of just the sidebar blocks. This insures that when a module is deactivated any admin dashboard blocks are removed as well the site sideboard blocks. Fix for ticket #876. --- installer/install.sql | 31 ++++++++++++++------------- modules/gallery/helpers/block_manager.php | 18 ++++++++++++---- modules/gallery/helpers/gallery_installer.php | 14 +++++++++++- modules/gallery/helpers/module.php | 4 ++-- modules/gallery/module.info | 2 +- 5 files changed, 46 insertions(+), 23 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 714d8ab7..617d89ff 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,8 +228,8 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',16); -INSERT INTO {modules} VALUES (2,1,'user',1); +INSERT INTO {modules} VALUES (1,1,'gallery',17); +INSERT INTO {modules} VALUES (2,1,'user',2); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); INSERT INTO {modules} VALUES (5,1,'info',1); @@ -264,7 +264,7 @@ CREATE TABLE {permissions} ( ) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; INSERT INTO {permissions} VALUES (1,'View','view'); -INSERT INTO {permissions} VALUES (2,'View Full Size','view_full'); +INSERT INTO {permissions} VALUES (2,'View full size','view_full'); INSERT INTO {permissions} VALUES (3,'Edit','edit'); INSERT INTO {permissions} VALUES (4,'Add','add'); DROP TABLE IF EXISTS {search_records}; @@ -366,7 +366,7 @@ CREATE TABLE {vars} ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `module_name` (`module_name`,`name`) -) AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','wind'); INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_wind'); @@ -376,14 +376,15 @@ INSERT INTO {vars} VALUES (5,'gallery','resize_size','640'); INSERT INTO {vars} VALUES (6,'gallery','default_locale','en_US'); INSERT INTO {vars} VALUES (7,'gallery','image_quality','75'); INSERT INTO {vars} VALUES (8,'gallery','image_sharpen','15'); -INSERT INTO {vars} VALUES (9,'gallery','identity_provider','user'); -INSERT INTO {vars} VALUES (22,'gallery','time_format','H:i:s'); -INSERT INTO {vars} VALUES (23,'gallery','show_credits','1'); -INSERT INTO {vars} VALUES (24,'gallery','credits','Powered by Gallery %version'); -INSERT INTO {vars} VALUES (11,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); -INSERT INTO {vars} VALUES (21,'gallery','date_time_format','Y-M-d H:i:s'); -INSERT INTO {vars} VALUES (20,'gallery','date_format','Y-M-d'); -INSERT INTO {vars} VALUES (16,'gallery','blocks_dashboard_center','a:4:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}i:9;a:2:{i:0;s:7:\"comment\";i:1;s:15:\"recent_comments\";}}'); -INSERT INTO {vars} VALUES (19,'gallery','choose_default_tookit','1'); -INSERT INTO {vars} VALUES (26,'comment','spam_caught','0'); -INSERT INTO {vars} VALUES (28,'gallery','blocks_site.sidebar','a:3:{i:596516649;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:1189641421;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:1025202362;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); +INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); +INSERT INTO {vars} VALUES (22,'gallery','show_credits','1'); +INSERT INTO {vars} VALUES (23,'gallery','credits','Powered by Gallery %version'); +INSERT INTO {vars} VALUES (20,'gallery','date_time_format','Y-M-d H:i:s'); +INSERT INTO {vars} VALUES (21,'gallery','time_format','H:i:s'); +INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:4:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}i:9;a:2:{i:0;s:7:\"comment\";i:1;s:15:\"recent_comments\";}}'); +INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); +INSERT INTO {vars} VALUES (19,'gallery','date_format','Y-M-d'); +INSERT INTO {vars} VALUES (26,'user','mininum_password_length','5'); +INSERT INTO {vars} VALUES (25,'gallery','identity_provider','user'); +INSERT INTO {vars} VALUES (28,'comment','spam_caught','0'); +INSERT INTO {vars} VALUES (30,'gallery','blocks_site.sidebar','a:3:{s:32:\"6e901fd82a43b0e07ebbd7123b5ee349\";a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}s:32:\"c07f62cf746316b111a61681fe49ad39\";a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}s:32:\"2eef3fd349091e4e1cee9e27072bff39\";a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); diff --git a/modules/gallery/helpers/block_manager.php b/modules/gallery/helpers/block_manager.php index 0e78661a..980d1db5 100644 --- a/modules/gallery/helpers/block_manager.php +++ b/modules/gallery/helpers/block_manager.php @@ -28,11 +28,12 @@ class block_manager_Core { static function add($location, $module_name, $block_id) { $blocks = self::get_active($location); - $blocks[rand()] = array($module_name, $block_id); + $blocks[md5("$module_name:$block_id")] = array($module_name, $block_id); + self::set_active($location, $blocks); } - static function activate_sidebar_blocks($module_name) { + static function activate_blocks($module_name) { $block_class = "{$module_name}_block"; if (method_exists($block_class, "get_site_list")) { $blocks = call_user_func(array($block_class, "get_site_list")); @@ -48,12 +49,21 @@ class block_manager_Core { self::set_active($location, $blocks); } - static function deactivate_sidebar_blocks($module_name) { + static function deactivate_blocks($module_name) { $block_class = "{$module_name}_block"; if (method_exists($block_class, "get_site_list")) { $blocks = call_user_func(array($block_class, "get_site_list")); foreach (array_keys($blocks) as $block_id) { - self::remove("site.sidebar", $module_name, $block_id); + self::remove("site.sidebar", md5("$module_name:$block_id")); + } + } + + if (method_exists($block_class, "get_admin_list")) { + $blocks = call_user_func(array($block_class, "get_admin_list")); + foreach (array("dashboard_sidebar", "dashboard_center") as $location) { + foreach (array_keys($blocks) as $block_id) { + self::remove($location, md5("$module_name:$block_id")); + } } } } diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index 2eb02546..26cd14f5 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -268,7 +268,7 @@ class gallery_installer { module::set_var("gallery", "show_credits", 1); // @todo this string needs to be picked up by l10n_scanner module::set_var("gallery", "credits", "Powered by Gallery %version"); - module::set_version("gallery", 16); + module::set_version("gallery", 17); } static function upgrade($version) { @@ -398,6 +398,18 @@ class gallery_installer { module::set_var("gallery", "identity_provider", "user"); module::set_version("gallery", $version = 16); } + + if ($version == 16) { + foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $location) { + $blocks = block_manager::get_active($location); + $new_blocks = array(); + foreach ($blocks as $block) { + $new_blocks[md5("{$block[0]}:{$block[1]}")] = $block; + } + block_manager::set_active($location, $new_blocks); + } + module::set_version("gallery", $version = 17); + } } static function uninstall() { diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index da334370..e6c196ce 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -211,7 +211,7 @@ class module_Core { graphics::activate_rules($module_name); - block_manager::activate_sidebar_blocks($module_name); + block_manager::activate_blocks($module_name); log::success( "module", t("Activated module %module_name", array("module_name" => $module_name))); @@ -238,7 +238,7 @@ class module_Core { graphics::deactivate_rules($module_name); - block_manager::deactivate_sidebar_blocks($module_name); + block_manager::deactivate_blocks($module_name); log::success( "module", t("Deactivated module %module_name", array("module_name" => $module_name))); diff --git a/modules/gallery/module.info b/modules/gallery/module.info index e21431a7..2a35b809 100644 --- a/modules/gallery/module.info +++ b/modules/gallery/module.info @@ -1,3 +1,3 @@ name = "Gallery 3" description = "Gallery core application" -version = 16 +version = 17 -- cgit v1.2.3 From a5a8cfd1bc7cd03c224c731c3ff433eec033457d Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 12 Nov 2009 13:08:29 -0800 Subject: Re-generate the install.sql so that the keys of the block lists are an md5 hash of the module_name:block_id. Also change the packager so we delete the _cache variable for the module gallery not core. --- installer/install.sql | 10 +++++----- modules/comment/helpers/comment_installer.php | 1 - modules/gallery/controllers/admin_sidebar.php | 2 +- modules/gallery/controllers/packager.php | 14 ++------------ 4 files changed, 8 insertions(+), 19 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 617d89ff..1f6014a7 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -366,7 +366,7 @@ CREATE TABLE {vars} ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `module_name` (`module_name`,`name`) -) AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','wind'); INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_wind'); @@ -376,15 +376,15 @@ INSERT INTO {vars} VALUES (5,'gallery','resize_size','640'); INSERT INTO {vars} VALUES (6,'gallery','default_locale','en_US'); INSERT INTO {vars} VALUES (7,'gallery','image_quality','75'); INSERT INTO {vars} VALUES (8,'gallery','image_sharpen','15'); -INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); +INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{s:32:\"ea6daed3baa18234bb574af71ab42250\";a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}s:32:\"f566a858e4b0238c0429d7b03b9f136f\";a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}s:32:\"4a3e6ed692f52ff14fbc0bfb94a1a130\";a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}s:32:\"53c72b14ba93d7f23d0efb72cc4d7cd1\";a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); INSERT INTO {vars} VALUES (22,'gallery','show_credits','1'); INSERT INTO {vars} VALUES (23,'gallery','credits','Powered by Gallery %version'); INSERT INTO {vars} VALUES (20,'gallery','date_time_format','Y-M-d H:i:s'); INSERT INTO {vars} VALUES (21,'gallery','time_format','H:i:s'); -INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:4:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}i:9;a:2:{i:0;s:7:\"comment\";i:1;s:15:\"recent_comments\";}}'); +INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:3:{s:32:\"0fb54e06307c0ec68ff9494082191235\";a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}s:32:\"f76ac022796947436740be2144b6d776\";a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}s:32:\"42a3ca45d2397f2d3e59dacae4caf3e0\";a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}}'); INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); INSERT INTO {vars} VALUES (19,'gallery','date_format','Y-M-d'); INSERT INTO {vars} VALUES (26,'user','mininum_password_length','5'); +INSERT INTO {vars} VALUES (27,'comment','spam_caught','0'); INSERT INTO {vars} VALUES (25,'gallery','identity_provider','user'); -INSERT INTO {vars} VALUES (28,'comment','spam_caught','0'); -INSERT INTO {vars} VALUES (30,'gallery','blocks_site.sidebar','a:3:{s:32:\"6e901fd82a43b0e07ebbd7123b5ee349\";a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}s:32:\"c07f62cf746316b111a61681fe49ad39\";a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}s:32:\"2eef3fd349091e4e1cee9e27072bff39\";a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); +INSERT INTO {vars} VALUES (29,'gallery','blocks_site.sidebar','a:3:{s:32:\"6e901fd82a43b0e07ebbd7123b5ee349\";a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}s:32:\"c07f62cf746316b111a61681fe49ad39\";a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}s:32:\"2eef3fd349091e4e1cee9e27072bff39\";a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); diff --git a/modules/comment/helpers/comment_installer.php b/modules/comment/helpers/comment_installer.php index 80594c16..707a98d1 100644 --- a/modules/comment/helpers/comment_installer.php +++ b/modules/comment/helpers/comment_installer.php @@ -46,7 +46,6 @@ class comment_installer { PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;"); - block_manager::add("dashboard_center", "comment", "recent_comments"); module::set_var("comment", "spam_caught", 0); module::set_version("comment", 2); } diff --git a/modules/gallery/controllers/admin_sidebar.php b/modules/gallery/controllers/admin_sidebar.php index c83b5a37..6c8d15f1 100644 --- a/modules/gallery/controllers/admin_sidebar.php +++ b/modules/gallery/controllers/admin_sidebar.php @@ -35,7 +35,7 @@ class Admin_Sidebar_Controller extends Admin_Controller { $active_blocks = array(); foreach ($this->input->get("block", array()) as $block_id) { - $active_blocks[] = explode(":", (string) $block_id); + $active_blocks[md5($block_id)] = explode(":", (string) $block_id); } block_manager::set_active("site.sidebar", $active_blocks); diff --git a/modules/gallery/controllers/packager.php b/modules/gallery/controllers/packager.php index ae87d74b..f0e35b2d 100644 --- a/modules/gallery/controllers/packager.php +++ b/modules/gallery/controllers/packager.php @@ -62,6 +62,7 @@ class Packager_Controller extends Controller { srand(0); gallery_installer::install(true); + module::load_modules(); foreach (array("user", "comment", "organize", "info", "rss", @@ -72,21 +73,10 @@ class Packager_Controller extends Controller { } private function _dump_database() { - // We now have a clean install with just the packages that we want. Make sure that the - // database is clean too. - $i = 1; - foreach (array("blocks_dashboard_sidebar", "blocks_dashboard_center") as $key) { - $blocks = array(); - foreach (unserialize(module::get_var("gallery", $key)) as $rnd => $value) { - $blocks[++$i] = $value; - } - module::set_var("gallery", $key, serialize($blocks)); - } - $db = Database::instance(); $db->query("TRUNCATE {sessions}"); $db->query("TRUNCATE {logs}"); - $db->query("DELETE FROM {vars} WHERE `module_name` = 'core' AND `name` = '_cache'"); + $db->query("DELETE FROM {vars} WHERE `module_name` = 'gallery' AND `name` = '_cache'"); $db->update("users", array("password" => ""), array("id" => 1)); $db->update("users", array("password" => ""), array("id" => 2)); -- cgit v1.2.3 From 393896a7010bf2da19674aa6a63a693a0d800233 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 12 Nov 2009 14:42:37 -0800 Subject: Initialize the database config with the port number if it is specified. Also set it up so the mysqli constructor will split it into host and port for the call to the mysqli constructor. Fixes ticket: #780 --- installer/cli.php | 2 +- installer/database_config.php | 2 +- installer/installer.php | 6 ++++-- installer/web.php | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) (limited to 'installer') diff --git a/installer/cli.php b/installer/cli.php index 182c3d26..f736ffcb 100644 --- a/installer/cli.php +++ b/installer/cli.php @@ -95,7 +95,7 @@ function parse_cli_params() { $config["dbname"] = $argv[++$i]; break; case "-h": - $config["host"] = $argv[++$i]; + list ($config["host"], $config["port"]) = explode(":", $argv[++$i]); break; case "-u": $config["user"] = $argv[++$i]; diff --git a/installer/database_config.php b/installer/database_config.php index 0f04b95c..8abf35e7 100644 --- a/installer/database_config.php +++ b/installer/database_config.php @@ -33,7 +33,7 @@ $config['default'] = array( 'user' => '', 'pass' => '', 'host' => '', - 'port' => false, + 'port' => '' false, 'socket' => false, 'database' => '' ), diff --git a/installer/installer.php b/installer/installer.php index 70afc440..3b1716e2 100644 --- a/installer/installer.php +++ b/installer/installer.php @@ -77,7 +77,8 @@ class installer { // counterparts. if (!function_exists("mysql_query")) { function mysql_connect($host, $user, $pass) { - installer::$mysqli = new mysqli($host, $user, $pass); + list ($host, $port) = explode(":", $host); + installer::$mysqli = new mysqli($host, $user, $pass, $port); // http://php.net/manual/en/mysqli.connect.php says to use mysqli_connect_error() instead of // $mysqli->connect_error because of bugs before PHP 5.2.9 $error = mysqli_connect_error(); @@ -97,7 +98,8 @@ class installer { } } - return @mysql_connect($config["host"], $config["user"], $config["password"]); + $host = empty($config["port"]) ? $config['host'] : "{$config['host']}:{$config['port']}"; + return @mysql_connect($host, $config["user"], $config["password"]); } static function select_db($config) { diff --git a/installer/web.php b/installer/web.php index c46f072a..65233b31 100644 --- a/installer/web.php +++ b/installer/web.php @@ -38,6 +38,7 @@ if (installer::already_installed()) { "dbname" => $_POST["dbname"], "prefix" => $_POST["prefix"], "type" => function_exists("mysqli_set_charset") ? "mysqli" : "mysql"); + list ($config["host"], $config["port"]) = explode(":", $config["host"]); if (!installer::connect($config)) { $content = render("invalid_db_info.html.php"); -- cgit v1.2.3 From def88149ccf8b542b376b96dd25c52f2ec6920e1 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 13 Nov 2009 09:14:39 -0800 Subject: Undo using the md5 hash of the module name and block_id, so duplicate blocks are no allowed again --- installer/install.sql | 14 +++++++------- modules/gallery/controllers/packager.php | 11 +++++++++++ modules/gallery/helpers/block_manager.php | 18 +++++++++++++----- modules/gallery/helpers/gallery_installer.php | 15 ++++++++++++++- modules/gallery/module.info | 2 +- 5 files changed, 46 insertions(+), 14 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 1f6014a7..0fd3601a 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,7 +228,7 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',17); +INSERT INTO {modules} VALUES (1,1,'gallery',18); INSERT INTO {modules} VALUES (2,1,'user',2); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); @@ -366,7 +366,7 @@ CREATE TABLE {vars} ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `module_name` (`module_name`,`name`) -) AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; INSERT INTO {vars} VALUES (1,'gallery','active_site_theme','wind'); INSERT INTO {vars} VALUES (2,'gallery','active_admin_theme','admin_wind'); @@ -376,15 +376,15 @@ INSERT INTO {vars} VALUES (5,'gallery','resize_size','640'); INSERT INTO {vars} VALUES (6,'gallery','default_locale','en_US'); INSERT INTO {vars} VALUES (7,'gallery','image_quality','75'); INSERT INTO {vars} VALUES (8,'gallery','image_sharpen','15'); -INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{s:32:\"ea6daed3baa18234bb574af71ab42250\";a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}s:32:\"f566a858e4b0238c0429d7b03b9f136f\";a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}s:32:\"4a3e6ed692f52ff14fbc0bfb94a1a130\";a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}s:32:\"53c72b14ba93d7f23d0efb72cc4d7cd1\";a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); +INSERT INTO {vars} VALUES (21,'gallery','time_format','H:i:s'); INSERT INTO {vars} VALUES (22,'gallery','show_credits','1'); INSERT INTO {vars} VALUES (23,'gallery','credits','Powered by Gallery %version'); +INSERT INTO {vars} VALUES (10,'gallery','blocks_dashboard_sidebar','a:4:{i:2;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"block_adder\";}i:3;a:2:{i:0;s:7:\"gallery\";i:1;s:5:\"stats\";}i:4;a:2:{i:0;s:7:\"gallery\";i:1;s:13:\"platform_info\";}i:5;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"project_news\";}}'); INSERT INTO {vars} VALUES (20,'gallery','date_time_format','Y-M-d H:i:s'); -INSERT INTO {vars} VALUES (21,'gallery','time_format','H:i:s'); -INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:3:{s:32:\"0fb54e06307c0ec68ff9494082191235\";a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}s:32:\"f76ac022796947436740be2144b6d776\";a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}s:32:\"42a3ca45d2397f2d3e59dacae4caf3e0\";a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}}'); -INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); INSERT INTO {vars} VALUES (19,'gallery','date_format','Y-M-d'); +INSERT INTO {vars} VALUES (15,'gallery','blocks_dashboard_center','a:3:{i:6;a:2:{i:0;s:7:\"gallery\";i:1;s:7:\"welcome\";}i:7;a:2:{i:0;s:7:\"gallery\";i:1;s:12:\"photo_stream\";}i:8;a:2:{i:0;s:7:\"gallery\";i:1;s:11:\"log_entries\";}}'); +INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); INSERT INTO {vars} VALUES (26,'user','mininum_password_length','5'); INSERT INTO {vars} VALUES (27,'comment','spam_caught','0'); INSERT INTO {vars} VALUES (25,'gallery','identity_provider','user'); -INSERT INTO {vars} VALUES (29,'gallery','blocks_site.sidebar','a:3:{s:32:\"6e901fd82a43b0e07ebbd7123b5ee349\";a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}s:32:\"c07f62cf746316b111a61681fe49ad39\";a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}s:32:\"2eef3fd349091e4e1cee9e27072bff39\";a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); +INSERT INTO {vars} VALUES (29,'gallery','blocks_site.sidebar','a:3:{i:9;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:10;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:11;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); diff --git a/modules/gallery/controllers/packager.php b/modules/gallery/controllers/packager.php index f0e35b2d..b2550603 100644 --- a/modules/gallery/controllers/packager.php +++ b/modules/gallery/controllers/packager.php @@ -73,6 +73,17 @@ class Packager_Controller extends Controller { } private function _dump_database() { + // We now have a clean install with just the packages that we want. Make sure that the + // database is clean too. + $i = 1; + foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $key) { + $blocks = array(); + foreach (unserialize(module::get_var("gallery", "blocks_{$key}")) as $rnd => $value) { + $blocks[++$i] = $value; + } + module::set_var("gallery", "blocks_{$key}", serialize($blocks)); + } + $db = Database::instance(); $db->query("TRUNCATE {sessions}"); $db->query("TRUNCATE {logs}"); diff --git a/modules/gallery/helpers/block_manager.php b/modules/gallery/helpers/block_manager.php index 980d1db5..d513abd9 100644 --- a/modules/gallery/helpers/block_manager.php +++ b/modules/gallery/helpers/block_manager.php @@ -28,7 +28,7 @@ class block_manager_Core { static function add($location, $module_name, $block_id) { $blocks = self::get_active($location); - $blocks[md5("$module_name:$block_id")] = array($module_name, $block_id); + $blocks[rand()] = array($module_name, $block_id); self::set_active($location, $blocks); } @@ -49,21 +49,29 @@ class block_manager_Core { self::set_active($location, $blocks); } + static function remove_blocks_for_module($location, $module_name) { + $blocks = self::get_active($location); + foreach ($blocks as $key => $block) { + if ($block[0] == $module_name) { + unset($blocks[$key]); + } + } + self::set_active($location, $blocks); + } + static function deactivate_blocks($module_name) { $block_class = "{$module_name}_block"; if (method_exists($block_class, "get_site_list")) { $blocks = call_user_func(array($block_class, "get_site_list")); foreach (array_keys($blocks) as $block_id) { - self::remove("site.sidebar", md5("$module_name:$block_id")); + self::remove_blocks_for_module("site.sidebar", $module_name); } } if (method_exists($block_class, "get_admin_list")) { $blocks = call_user_func(array($block_class, "get_admin_list")); foreach (array("dashboard_sidebar", "dashboard_center") as $location) { - foreach (array_keys($blocks) as $block_id) { - self::remove($location, md5("$module_name:$block_id")); - } + self::remove_blocks_for_module($location, $module_name); } } } diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index 26cd14f5..2d4a1e04 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -268,7 +268,7 @@ class gallery_installer { module::set_var("gallery", "show_credits", 1); // @todo this string needs to be picked up by l10n_scanner module::set_var("gallery", "credits", "Powered by Gallery %version"); - module::set_version("gallery", 17); + module::set_version("gallery", 18); } static function upgrade($version) { @@ -410,6 +410,19 @@ class gallery_installer { } module::set_version("gallery", $version = 17); } + + if ($version == 17) { + // Once published we can't go back so reset the keys to a random to allow duplicates + foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $location) { + $blocks = block_manager::get_active($location); + $new_blocks = array(); + foreach ($blocks as $block) { + $new_blocks[rand()] = $block; + } + block_manager::set_active($location, $new_blocks); + } + module::set_version("gallery", $version = 18); + } } static function uninstall() { diff --git a/modules/gallery/module.info b/modules/gallery/module.info index 2a35b809..3a5d68b2 100644 --- a/modules/gallery/module.info +++ b/modules/gallery/module.info @@ -1,3 +1,3 @@ name = "Gallery 3" description = "Gallery core application" -version = 17 +version = 18 -- cgit v1.2.3 From 0fe32a61f6c55e1302e45358375bf69a161ccdd4 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 13 Nov 2009 13:56:05 -0800 Subject: Standardize the name of the blocks. --- installer/install.sql | 4 ++-- modules/gallery/controllers/admin_sidebar.php | 4 ++-- modules/gallery/controllers/packager.php | 2 +- modules/gallery/helpers/block_manager.php | 4 ++-- modules/gallery/helpers/gallery_installer.php | 30 +++++++++++++++++---------- modules/gallery/libraries/Theme_View.php | 2 +- modules/gallery/module.info | 2 +- 7 files changed, 28 insertions(+), 20 deletions(-) (limited to 'installer') diff --git a/installer/install.sql b/installer/install.sql index 0fd3601a..38851eff 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -228,7 +228,7 @@ CREATE TABLE {modules} ( UNIQUE KEY `name` (`name`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET character_set_client = @saved_cs_client; -INSERT INTO {modules} VALUES (1,1,'gallery',18); +INSERT INTO {modules} VALUES (1,1,'gallery',19); INSERT INTO {modules} VALUES (2,1,'user',2); INSERT INTO {modules} VALUES (3,1,'comment',2); INSERT INTO {modules} VALUES (4,1,'organize',1); @@ -387,4 +387,4 @@ INSERT INTO {vars} VALUES (18,'gallery','choose_default_tookit','1'); INSERT INTO {vars} VALUES (26,'user','mininum_password_length','5'); INSERT INTO {vars} VALUES (27,'comment','spam_caught','0'); INSERT INTO {vars} VALUES (25,'gallery','identity_provider','user'); -INSERT INTO {vars} VALUES (29,'gallery','blocks_site.sidebar','a:3:{i:9;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:10;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:11;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); +INSERT INTO {vars} VALUES (29,'gallery','blocks_site_sidebar','a:3:{i:9;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:10;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:11;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); diff --git a/modules/gallery/controllers/admin_sidebar.php b/modules/gallery/controllers/admin_sidebar.php index 6c8d15f1..77e83bc2 100644 --- a/modules/gallery/controllers/admin_sidebar.php +++ b/modules/gallery/controllers/admin_sidebar.php @@ -37,7 +37,7 @@ class Admin_Sidebar_Controller extends Admin_Controller { foreach ($this->input->get("block", array()) as $block_id) { $active_blocks[md5($block_id)] = explode(":", (string) $block_id); } - block_manager::set_active("site.sidebar", $active_blocks); + block_manager::set_active("site_sidebar", $active_blocks); $result = array("result" => "success"); list($available, $active) = $this->_get_blocks(); @@ -55,7 +55,7 @@ class Admin_Sidebar_Controller extends Admin_Controller { private function _get_blocks() { $active_blocks = array(); $available_blocks = block_manager::get_available_site_blocks(); - foreach (block_manager::get_active("site.sidebar") as $block) { + foreach (block_manager::get_active("site_sidebar") as $block) { $id = "{$block[0]}:{$block[1]}"; if (!empty($available_blocks[$id])) { $active_blocks[$id] = $available_blocks[$id]; diff --git a/modules/gallery/controllers/packager.php b/modules/gallery/controllers/packager.php index b2550603..82c3c938 100644 --- a/modules/gallery/controllers/packager.php +++ b/modules/gallery/controllers/packager.php @@ -76,7 +76,7 @@ class Packager_Controller extends Controller { // We now have a clean install with just the packages that we want. Make sure that the // database is clean too. $i = 1; - foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $key) { + foreach (array("dashboard_sidebar", "dashboard_center", "site_sidebar") as $key) { $blocks = array(); foreach (unserialize(module::get_var("gallery", "blocks_{$key}")) as $rnd => $value) { $blocks[++$i] = $value; diff --git a/modules/gallery/helpers/block_manager.php b/modules/gallery/helpers/block_manager.php index d513abd9..b003f1d8 100644 --- a/modules/gallery/helpers/block_manager.php +++ b/modules/gallery/helpers/block_manager.php @@ -38,7 +38,7 @@ class block_manager_Core { if (method_exists($block_class, "get_site_list")) { $blocks = call_user_func(array($block_class, "get_site_list")); foreach (array_keys($blocks) as $block_id) { - self::add("site.sidebar", $module_name, $block_id); + self::add("site_sidebar", $module_name, $block_id); } } } @@ -64,7 +64,7 @@ class block_manager_Core { if (method_exists($block_class, "get_site_list")) { $blocks = call_user_func(array($block_class, "get_site_list")); foreach (array_keys($blocks) as $block_id) { - self::remove_blocks_for_module("site.sidebar", $module_name); + self::remove_blocks_for_module("site_sidebar", $module_name); } } diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index 2d4a1e04..470c54cf 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -268,7 +268,7 @@ class gallery_installer { module::set_var("gallery", "show_credits", 1); // @todo this string needs to be picked up by l10n_scanner module::set_var("gallery", "credits", "Powered by Gallery %version"); - module::set_version("gallery", 18); + module::set_version("gallery", 19); } static function upgrade($version) { @@ -383,13 +383,13 @@ class gallery_installer { } if ($version == 14) { - $sidebar_blocks = block_manager::get_active("site.sidebar"); + $sidebar_blocks = block_manager::get_active("site_sidebar"); if (empty($sidebar_blocks)) { $available_blocks = block_manager::get_available_site_blocks(); foreach (array_keys(block_manager::get_available_site_blocks()) as $id) { $sidebar_blocks[] = explode(":", $id); } - block_manager::set_active("site.sidebar", $sidebar_blocks); + block_manager::set_active("site_sidebar", $sidebar_blocks); } module::set_version("gallery", $version = 15); } @@ -400,20 +400,18 @@ class gallery_installer { } if ($version == 16) { - foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $location) { - $blocks = block_manager::get_active($location); - $new_blocks = array(); - foreach ($blocks as $block) { - $new_blocks[md5("{$block[0]}:{$block[1]}")] = $block; - } - block_manager::set_active($location, $new_blocks); + $blocks = block_manager::get_active($location); + $new_blocks = array(); + foreach ($blocks as $block) { + $new_blocks[md5("{$block[0]}:{$block[1]}")] = $block; } + block_manager::set_active($location, $new_blocks); module::set_version("gallery", $version = 17); } if ($version == 17) { // Once published we can't go back so reset the keys to a random to allow duplicates - foreach (array("dashboard_sidebar", "dashboard_center", "site.sidebar") as $location) { + foreach (array("dashboard_sidebar", "dashboard_center", "site_sidebar") as $location) { $blocks = block_manager::get_active($location); $new_blocks = array(); foreach ($blocks as $block) { @@ -423,6 +421,16 @@ class gallery_installer { } module::set_version("gallery", $version = 18); } + + if ($version == 18) { + // Once published we can't go back so reset the keys to a random to allow duplicates + foreach (array("dashboard_sidebar", "dashboard_center", "site_sidebar") as $location) { + $blocks = block_manager::get_active("site.sidebar"); + block_manager::set_active("site_sidebar", $blocks); + module::clear_var("gallery", "blocks_site.sidebar"); + } + module::set_version("gallery", $version = 19); + } } static function uninstall() { diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index f8fae0f7..7e6a0b2e 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -165,7 +165,7 @@ class Theme_View_Core extends Gallery_View { * Print out the sidebar. */ public function sidebar_blocks() { - $sidebar = block_manager::get_html("site.sidebar", $this); + $sidebar = block_manager::get_html("site_sidebar", $this); if (empty($sidebar) && identity::active_user()->admin) { $sidebar = new View("no_sidebar.html"); } diff --git a/modules/gallery/module.info b/modules/gallery/module.info index 3a5d68b2..2dc62ecd 100644 --- a/modules/gallery/module.info +++ b/modules/gallery/module.info @@ -1,3 +1,3 @@ name = "Gallery 3" description = "Gallery core application" -version = 18 +version = 19 -- cgit v1.2.3