summaryrefslogtreecommitdiff
path: root/modules/g2_import/helpers/g2_import.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/g2_import/helpers/g2_import.php')
-rw-r--r--modules/g2_import/helpers/g2_import.php134
1 files changed, 134 insertions, 0 deletions
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php
new file mode 100644
index 00000000..13a9666c
--- /dev/null
+++ b/modules/g2_import/helpers/g2_import.php
@@ -0,0 +1,134 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+function g2() {
+ $args = func_get_arg(0);
+ $ret = array_shift($args);
+ if ($ret) {
+ throw new Exception("@todo G2_FUNCTION_FAILED");
+ }
+ if (count($args) == 1) {
+ return $args[0];
+ } else {
+ return $args;
+ }
+}
+
+class g2_import_Core {
+ public static $init = false;
+
+ static function is_configured() {
+ return module::get_var("g2_import", "embed_path");
+ }
+
+ static function is_initialized() {
+ return g2_import::$init;
+ }
+
+ static function init() {
+ if (g2_import::$init) {
+ return;
+ }
+
+ $embed_path = module::get_var("g2_import", "embed_path");
+ if (empty($embed_path)) {
+ throw new Exception("@todo G2_IMPORT_NOT_CONFIGURED");
+ }
+
+ 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 init_embed($embed_path) {
+ require($embed_path);
+ if (!class_exists("GalleryEmbed")) {
+ return false;
+ }
+
+ $ret = GalleryEmbed::init();
+ if ($ret) {
+ return false;
+ }
+
+ $admin_group_id = g2(GalleryCoreApi::getPluginParameter("module", "core", "id.adminGroup"));
+ $admins = g2(GalleryCoreApi::fetchUsersForGroup($admin_group_id, 1));
+ $admin_id = current(array_flip($admins));
+ $admin = g2(GalleryCoreApi::loadEntitiesById($admin_id));
+ $GLOBALS["gallery"]->setActiveUser($admin);
+
+ return true;
+ }
+
+ static function version() {
+ $core = g2(GalleryCoreApi::loadPlugin("module", "core"));
+ $versions = $core->getInstalledVersions();
+ return $versions["gallery"];
+ }
+
+ static function stats() {
+ GalleryCoreApi::requireOnce("modules/comment/classes/GalleryCommentHelper.class");
+
+ $root_album_id = g2(GalleryCoreApi::getDefaultAlbumId());
+ $stats["users"] = g2(GalleryCoreApi::fetchUserCount());
+ $stats["groups"] = g2(GalleryCoreApi::fetchGroupCount());
+ $stats["albums"] = g2(GalleryCoreApi::fetchItemIdCount("GalleryAlbumItem"));
+ $stats["photos"] = g2(GalleryCoreApi::fetchItemIdCount("GalleryPhotoItem"));
+ list (, $stats["comments"]) = g2(GalleryCommentHelper::fetchAllComments($root_album_id, 1));
+ return $stats;
+ }
+
+ static function import_group($i) {
+ $map = g2(GalleryCoreApi::fetchGroupNames(1, $i - 1));
+ $g2_group_id = current(array_keys($map));
+ $g2_group = g2(GalleryCoreApi::loadEntitiesById($g2_group_id));
+ if ($g2_group->getGroupType() != GROUP_NORMAL) {
+ return;
+ }
+
+ try {
+ $group = group::create($g2_group->getGroupName());
+ } catch (Exception $e) {
+ // @todo For now we assume this is a "duplicate group" exception
+ // which we will ignore.
+ }
+ }
+
+ static function import_user($i) {
+ $map = g2(GalleryCoreApi::fetchUsersForGroup(GROUP_EVERYBODY, 1, $i - 1));
+ $g2_user_id = current(array_keys($map));
+ if (g2(GalleryCoreApi::isAnonymousUser($g2_user_id))) {
+ return;
+ }
+
+ $g2_user = g2(GalleryCoreApi::loadEntitiesById($g2_user_id));
+ try {
+ $user = user::create($g2_user->getUserName(), $g2_user->getFullName(), "");
+ $user->hashed_password = $g2_user->getHashedPassword();
+ $user->email = $g2_user->getEmail();
+ $user->language = $g2_user->getLanguage();
+ $user->save();
+ } catch (Exception $e) {
+ // @todo For now we assume this is a "duplicate user" exception
+ // which we will ignore.
+ }
+ }
+}