/** * Set the highlight properly for a single album */ static function set_album_highlight(&$queue) { // Dequeue the current album and enqueue its children list($g2_album_id, $children) = each($queue); unset($queue[$g2_album_id]); foreach ($children as $key => $value) { $queue[$key] = $value; } $g3_album_id = self::map($g2_album_id); if (!$g3_album_id) { return t("Album with id: %id not imported", array("id" => $g3_album_id)); } $table = g2(GalleryCoreApi::fetchThumbnailsByItemIds(array($g2_album_id))); if (isset($table[$g2_album_id])) { // Backtrack the source id to an item $g2_source = $table[$g2_album_id]; while (GalleryUtilities::isA($g2_source, "GalleryDerivative")) { $g2_source = g2(GalleryCoreApi::loadEntitiesById($g2_source->getDerivativeSourceId())); } $item_id = self::map($g2_source->getId()); if ($item_id) { $item = ORM::factory("item", $item_id); $g2_album = ORM::factory("item", $g3_album_id); $g2_album->album_cover_item_id = $item->id; $g2_album->thumb_dirty = 1; $g2_album->view_count = g2(GalleryCoreApi::fetchItemViewCount($g2_album_id)); $g2_album->save(); graphics::generate($g2_album); } } }
/** * Set the highlight properly for a single album */ static function set_album_highlight(&$queue) { // Dequeue the current album and enqueue its children list($g2_album_id, $children) = each($queue); unset($queue[$g2_album_id]); if (!empty($children)) { foreach ($children as $key => $value) { $queue[$key] = $value; } } $messages = array(); $g3_album_id = self::map($g2_album_id); if (!$g3_album_id) { return t("Album with id: %id not imported", array("id" => $g3_album_id)); } $table = g2(GalleryCoreApi::fetchThumbnailsByItemIds(array($g2_album_id))); if (isset($table[$g2_album_id])) { // Backtrack the source id to an item $orig_g2_source = $g2_source = $table[$g2_album_id]; while (GalleryUtilities::isA($g2_source, "GalleryDerivative")) { $g2_source = g2(GalleryCoreApi::loadEntitiesById($g2_source->getDerivativeSourceId())); } $item_id = self::map($g2_source->getId()); if ($item_id) { $item = ORM::factory("item", $item_id); $g3_album = ORM::factory("item", $g3_album_id); $g3_album->album_cover_item_id = $item->id; $g3_album->thumb_dirty = 1; try { $g3_album->view_count = (int) g2(GalleryCoreApi::fetchItemViewCount($g2_album_id)); } catch (Exception $e) { $g3_album->view_count = 0; } try { $g3_album->save(); graphics::generate($g3_album); } catch (Exception $e) { return (string) new G2_Import_Exception(t("Failed to generate an album highlight for album '%name'.", array("name" => $g3_album->name)), $e); } self::set_map($orig_g2_source->getId(), $g3_album->id, "thumbnail", self::g2_url(array("view" => "core.DownloadItem", "itemId" => $orig_g2_source->getId()))); } } }