summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc <dkm@kataplop.net>2009-06-09 13:36:36 +0200
committerMarc <dkm@kataplop.net>2009-06-09 13:36:36 +0200
commite77ba1d7512b3d7f4c3cd12bb499e0e296c485ae (patch)
tree9c164a1ff06160fc11ee3ad374156e68a78cdac2
parentb9ee6f7d185c734dcff595d06d9c6e6fda5822ac (diff)
fix gallery2 import with multisite config
-rw-r--r--modules/g2_import/controllers/admin_g2_import.php18
-rw-r--r--modules/g2_import/helpers/g2_import.php15
2 files changed, 25 insertions, 8 deletions
diff --git a/modules/g2_import/controllers/admin_g2_import.php b/modules/g2_import/controllers/admin_g2_import.php
index f2969f49..968d97cd 100644
--- a/modules/g2_import/controllers/admin_g2_import.php
+++ b/modules/g2_import/controllers/admin_g2_import.php
@@ -44,13 +44,20 @@ class Admin_g2_import_Controller extends Admin_Controller {
$form = $this->_get_import_form();
if ($form->validate()) {
$embed_path = $form->configure_g2_import->embed_path->value;
+ $multi_path = $form->configure_g2_import->multi_path->value;
+
if (!is_file($embed_path) && file_exists("$embed_path/embed.php")) {
$embed_path = "$embed_path/embed.php";
}
+
+ if (!empty($multi_path) && !is_file($multi_path) && file_exists("$multi_path/config.php")) {
+ $multi_path = "$multi_path/embed.php";
+ }
- if (g2_import::is_valid_embed_path($embed_path)) {
+ if (g2_import::is_valid_embed_path($embed_path, $multi_path)) {
message::success("Gallery 2 path saved.");
module::set_var("g2_import", "embed_path", $embed_path);
+ module::set_var("g2_import", "multi_path", $multi_path);
url::redirect("admin/g2_import");
} else {
$form->configure_g2_import->embed_path->add_error("invalid", 1);
@@ -67,11 +74,16 @@ class Admin_g2_import_Controller extends Admin_Controller {
$form = new Forge(
"admin/g2_import/save", "", "post", array("id" => "gAdminConfigureG2ImportForm"));
$group = $form->group("configure_g2_import")->label(t("Configure Gallery 2 Import"));
- $group->input("embed_path")->label(t("Filesystem path to your Gallery 2 embed.php file"))
+ $group->input("embed_path")->label(t("Filesystem path to your Gallery 2 embed.php file (in case of multisite config, use the path to the 'master')"))
->value(module::get_var("g2_import", "embed_path", ""));
+
+ $group->input("multi_path")->label(t("Filesystem path to your Gallery 2 multisite instance config (leave empty if not applicable)"))
+ ->value(module::get_var("g2_import", "multi_path", ""));
+
$group->embed_path->error_messages(
"invalid", t("The path you entered is not a Gallery 2 installation."));
+
$group->submit("")->value(t("Save"));
return $form;
}
-} \ No newline at end of file
+}
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php
index 51dc8705..f68bd9c4 100644
--- a/modules/g2_import/helpers/g2_import.php
+++ b/modules/g2_import/helpers/g2_import.php
@@ -44,15 +44,15 @@ class g2_import_Core {
g2_import::$init = g2_import::init_embed($embed_path);
}
- static function is_valid_embed_path($embed_path) {
- return file_exists($embed_path) && g2_import::init_embed($embed_path);
+ static function is_valid_embed_path($embed_path, $multi_path) {
+ return file_exists($embed_path) && (empty($multi_path) || file_exists($multi_path)) && g2_import::init_embed($embed_path, $multi_path);
}
/**
* Initialize the embedded Gallery2 instance. Call this before any other Gallery2 calls.
*/
- static function init_embed($embed_path) {
- if (!is_file($embed_path)) {
+ static function init_embed($embed_path, $multi_path) {
+ if (!is_file($embed_path) || (!empty($multi_path) && !is_dir($multi_path)) {
return false;
}
@@ -70,6 +70,11 @@ class g2_import_Core {
mkdir($mod_path);
$base_dir = dirname($embed_path);
+ if (!empty($multi_path))
+ $config_dir = dirname($multi_path);
+ else
+ $config_dir = $base_dir
+
file_put_contents(
"$mod_path/embed.php",
str_replace(
@@ -103,7 +108,7 @@ class g2_import_Core {
"\$gallery =& new Gallery();"),
array("require_once(dirname(__FILE__) . '/Gallery.class');",
"require_once('$base_dir/modules/core/classes/GalleryDataCache.class');",
- "define('GALLERY_CONFIG_DIR', '$base_dir');",
+ "define('GALLERY_CONFIG_DIR', '$config_dir');",
"\$gallery =& new G2_Gallery();"),
array_merge(array("<?php defined(\"SYSPATH\") or die(\"No direct script access.\") ?>\n"),
file("$base_dir/bootstrap.inc"))));