summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorJoe7 <jozsef.rnagy@site.hu>2011-01-06 04:49:50 +0100
committerJoe7 <jozsef.rnagy@site.hu>2011-01-07 17:52:12 +0100
commit5bfb7fb96a5dc2e0bc511c998a7c055b83b2915a (patch)
tree80598738bcb227f02f427e1fdbaa72fff01262dd /modules
parentc338d3138e2c93bfb219a8d32ba9110138fcf9c2 (diff)
Added batch importer for groups
Added missing ordering for comments and tags retrieving queries (One might gets the same output without ordering especially if column is the primary key, but the only way to go for sure it by setting it)
Diffstat (limited to 'modules')
-rw-r--r--modules/g2_import/helpers/g2_import.php30
-rw-r--r--modules/g2_import/helpers/g2_import_task.php4
2 files changed, 29 insertions, 5 deletions
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php
index 5e2a61e8..c3d774ea 100644
--- a/modules/g2_import/helpers/g2_import.php
+++ b/modules/g2_import/helpers/g2_import.php
@@ -1155,7 +1155,8 @@ class g2_import_Core {
"SELECT [GalleryComment::id] " .
"FROM [GalleryComment] " .
"WHERE [GalleryComment::publishStatus] = 0 " . // 0 == COMMENT_PUBLISH_STATUS_PUBLISHED
- "AND [GalleryComment::id] > ?",
+ "AND [GalleryComment::id] > ?" .
+ "ORDER BY [GalleryComment::id] ASC",
array($min_id),
array("limit" => array("count" => 100))));
while ($result = $results->nextResult()) {
@@ -1174,7 +1175,8 @@ class g2_import_Core {
$ids = array();
$results = g2($gallery->search(
"SELECT DISTINCT([TagItemMap::itemId]) FROM [TagItemMap] " .
- "WHERE [TagItemMap::itemId] > ?",
+ "WHERE [TagItemMap::itemId] > ?" .
+ "ORDER BY [TagItemMap::itemId] ASC",
array($min_id),
array("limit" => array("count" => 100))));
while ($result = $results->nextResult()) {
@@ -1194,7 +1196,29 @@ class g2_import_Core {
$results = g2($gallery->search(
"SELECT [GalleryUser::id] " .
"FROM [GalleryUser] " .
- "WHERE [GalleryUser::id] > ?",
+ "WHERE [GalleryUser::id] > ?" .
+ "ORDER BY [GalleryUser::id] ASC",
+ array($min_id),
+ array("limit" => array("count" => 100))));
+ while ($result = $results->nextResult()) {
+ $ids[] = $result[0];
+ }
+ return $ids;
+ }
+
+ /**
+ * Get a set of group ids from Gallery 2 greater than $min_id. We use this to get the
+ * next chunk of groups to import.
+ */
+ static function get_group_ids($min_id) {
+ global $gallery;
+
+ $ids = array();
+ $results = g2($gallery->search(
+ "SELECT [GalleryGroup::id] " .
+ "FROM [GalleryGroup] " .
+ "WHERE [GalleryGroup::id] > ?" .
+ "ORDER BY [GalleryGroup::id] ASC",
array($min_id),
array("limit" => array("count" => 100))));
while ($result = $results->nextResult()) {
diff --git a/modules/g2_import/helpers/g2_import_task.php b/modules/g2_import/helpers/g2_import_task.php
index dbfe5f77..a90b1fc3 100644
--- a/modules/g2_import/helpers/g2_import_task.php
+++ b/modules/g2_import/helpers/g2_import_task.php
@@ -96,7 +96,8 @@ class g2_import_task_Core {
switch($modes[$mode]) {
case "groups":
if (empty($queue)) {
- $task->set("queue", $queue = array_keys(g2(GalleryCoreApi::fetchGroupNames())));
+ $task->set("queue", $queue = g2_import::get_group_ids($task->get("last_id", 0)));
+ $task->set("last_id", end($queue));
}
$log_message = g2_import::import_group($queue);
if ($log_message) {
@@ -141,7 +142,6 @@ class g2_import_task_Core {
$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);