示例#1
0
 /**
  * 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);
         }
     }
 }
示例#2
0
 /**
  * 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())));
         }
     }
 }