public function index() { g2_import::lower_error_reporting(); if (g2_import::is_configured()) { g2_import::init(); } if (class_exists("GalleryCoreApi")) { $g2_stats = g2_import::stats(); $g2_sizes = g2_import::common_sizes(); } $view = new Admin_View("admin.html"); $view->page_title = t("Gallery 2 import"); $view->content = new View("admin_g2_import.html"); $view->content->form = $this->_get_import_form(); $view->content->version = ""; if (g2_import::is_initialized()) { $view->content->g2_stats = $g2_stats; $view->content->g2_sizes = $g2_sizes; $view->content->thumb_size = module::get_var("gallery", "thumb_size"); $view->content->resize_size = module::get_var("gallery", "resize_size"); $view->content->version = g2_import::version(); } else { if (g2_import::is_configured()) { $view->content->form->configure_g2_import->embed_path->add_error("invalid", 1); } } g2_import::restore_error_reporting(); print $view; }
public function index() { if (g2_import::is_configured()) { g2_import::init(); $g2_stats = g2_import::stats(); $g2_sizes = g2_import::common_sizes(); } $view = new Admin_View("admin.html"); $view->content = new View("admin_g2_import.html"); $view->content->form = $this->_get_import_form(); if (g2_import::is_initialized()) { $view->content->g2_stats = $g2_stats; $view->content->g2_sizes = $g2_sizes; $view->content->thumb_size = module::get_var("gallery", "thumb_size"); $view->content->resize_size = module::get_var("gallery", "resize_size"); } print $view; }
static function import($task) { $start = microtime(true); g2_import::init(); $stats = $task->get("stats"); $done = $task->get("done"); $total = $task->get("total"); $completed = $task->get("completed"); $mode = $task->get("mode"); $queue = $task->get("queue"); if (!isset($mode)) { $stats = g2_import::stats(); $stats["items"] = $stats["photos"] + $stats["movies"]; unset($stats["photos"]); unset($stats["movies"]); $stats["highlights"] = $stats["albums"]; $task->set("stats", $stats); $task->set("total", $total = array_sum(array_values($stats))); $completed = 0; $mode = 0; $done = array(); foreach (array_keys($stats) as $key) { $done[$key] = 0; } $task->set("done", $done); $root_g2_id = g2(GalleryCoreApi::getDefaultAlbumId()); $root = ORM::factory("g2_map")->where("g2_id", "=", $root_g2_id)->find(); if (!$root->loaded()) { $root->g2_id = $root_g2_id; $root->g3_id = 1; $root->save(); } } $modes = array("groups", "users", "albums", "items", "comments", "tags", "highlights", "done"); while (!$task->done && microtime(true) - $start < 1.5) { if ($done[$modes[$mode]] == $stats[$modes[$mode]]) { // Nothing left to do for this mode. Advance. $mode++; $task->set("last_id", 0); $queue = array(); // Start the loop from the beginning again. This way if we get to a mode that requires no // actions (eg, if the G2 comments module isn't installed) we won't try to do any comments // queries.. in the next iteration we'll just skip over that mode. if ($modes[$mode] != "done") { continue; } } switch ($modes[$mode]) { case "groups": if (empty($queue)) { $task->set("queue", $queue = array_keys(g2(GalleryCoreApi::fetchGroupNames()))); } $log_message = g2_import::import_group($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing groups (%count of %total)", array("count" => $done["groups"] + 1, "total" => $stats["groups"])); break; case "users": if (empty($queue)) { $task->set("queue", $queue = array_keys(g2(GalleryCoreApi::fetchUsersForGroup(GROUP_EVERYBODY)))); } $log_message = g2_import::import_user($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing users (%count of %total)", array("count" => $done["users"] + 1, "total" => $stats["users"])); break; case "albums": if (empty($queue)) { $task->set("queue", $queue = g2(GalleryCoreApi::fetchAlbumTree())); } $log_message = g2_import::import_album($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing albums (%count of %total)", array("count" => $done["albums"] + 1, "total" => $stats["albums"])); break; case "items": if (empty($queue)) { $task->set("queue", $queue = g2_import::get_item_ids($task->get("last_id", 0))); $task->set("last_id", end($queue)); } $log_message = g2_import::import_item($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing photos (%count of %total)", array("count" => $done["items"] + 1, "total" => $stats["items"])); break; case "comments": if (empty($queue)) { $task->set("queue", $queue = g2_import::get_comment_ids($task->get("last_id", 0))); $task->set("last_id", end($queue)); } $log_message = g2_import::import_comment($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing comments (%count of %total)", array("count" => $done["comments"] + 1, "total" => $stats["comments"])); break; case "tags": if (empty($queue)) { $task->set("queue", $queue = g2_import::get_tag_item_ids($task->get("last_id", 0))); $task->set("last_id", end($queue)); } $log_message = g2_import::import_tags_for_item($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Importing tags (%count of %total)", array("count" => $done["tags"] + 1, "total" => $stats["tags"])); break; case "highlights": if (empty($queue)) { $task->set("queue", $queue = g2(GalleryCoreApi::fetchAlbumTree())); } $log_message = g2_import::set_album_highlight($queue); if ($log_message) { $task->log($log_message); } $task->status = t("Album highlights (%count of %total)", array("count" => $done["tags"] + 1, "total" => $stats["albums"])); break; case "done": $task->status = t("Import complete"); $task->done = true; $task->state = "success"; break; } if (!$task->done) { $done[$modes[$mode]]++; $completed++; } } $task->percent_complete = 100 * ($completed / $total); $task->set("completed", $completed); $task->set("mode", $mode); $task->set("queue", $queue); $task->set("done", $done); }