diff options
Diffstat (limited to 'modules/g2_import/helpers/g2_import.php')
| -rw-r--r-- | modules/g2_import/helpers/g2_import.php | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php index 13a9666c..bf7a1a8c 100644 --- a/modules/g2_import/helpers/g2_import.php +++ b/modules/g2_import/helpers/g2_import.php @@ -97,7 +97,7 @@ class g2_import_Core { } static function import_group($i) { - $map = g2(GalleryCoreApi::fetchGroupNames(1, $i - 1)); + $map = g2(GalleryCoreApi::fetchGroupNames(1, $i)); $g2_group_id = current(array_keys($map)); $g2_group = g2(GalleryCoreApi::loadEntitiesById($g2_group_id)); if ($g2_group->getGroupType() != GROUP_NORMAL) { @@ -113,7 +113,7 @@ class g2_import_Core { } static function import_user($i) { - $map = g2(GalleryCoreApi::fetchUsersForGroup(GROUP_EVERYBODY, 1, $i - 1)); + $map = g2(GalleryCoreApi::fetchUsersForGroup(GROUP_EVERYBODY, 1, $i)); $g2_user_id = current(array_keys($map)); if (g2(GalleryCoreApi::isAnonymousUser($g2_user_id))) { return; @@ -126,9 +126,45 @@ class g2_import_Core { $user->email = $g2_user->getEmail(); $user->language = $g2_user->getLanguage(); $user->save(); + + // @todo put the user into the appropriate groups } catch (Exception $e) { // @todo For now we assume this is a "duplicate user" exception // which we will ignore. } } + + static function import_album(&$queue, &$album_map) { + // The queue is a set of nested associative arrays where the key is the album id and the + // value is an array of similar arrays. We'll do a breadth first tree traversal using the + // queue to keep our state. Doing it breadth first means that the parent will be created by + // the time we get to the child. + + // Grab the current album off the queue and enqueue its children at the end of the line + list($g2_id, $children) = each($queue); + unset($queue[$g2_id]); + foreach ($children as $key => $value) { + $queue[$key] = $value; + } + + // Load the G2 album item, and figure out its parent in G3. + $g2_album = g2(GalleryCoreApi::loadEntitiesById($g2_id)); + if ($g2_album->getParentId() == null) { + return; + } + + $g3_parent_album = ORM::factory("item", $album_map[$g2_album->getParentId()]); + $g3_album = album::create( + $g3_parent_album, + $g2_album->getPathComponent(), + $g2_album->getTitle(), + $g2_album->getDescription()); + $album_map[$g2_album->getId()] = $g3_album->id; + + // @todo import owners + // @todo figure out how to import summary vs. description + // @todo import view counts + // @todo import origination timestamp + // @todo import keywords as tags + } } |
