true, 'embedUri' => '/gallery2/main.php', 'g2Uri' => '/gallery2/')); if ($ret) { print 'GalleryEmbed::init failed, here is the error message: ' . $ret->getAsHtml(); exit; } GalleryEmbed::done(); } /** * Dynamic query for tag items * @param int $userId * @param string $keyword (optional) keyword for query; get from request if not specified * @return array object GalleryStatus a status code * array of item ids * @static */ function getTagChildIds($userId, $tagName=null) { global $gallery; $storage =& $gallery->getStorage(); if (!isset($tagName)) { $tagName = GalleryUtilities::getRequestVariables('tagName'); } if (empty($tagName)) { return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER), null); } /* Force case-sensitive look-up to make the query use an column index */ list ($ret, $tagId) = TagsHelper::getTagIdFromName($tagName, true); if ($ret) { return array($ret, null); } if (empty($tagId)) { return array(null, array()); } list ($ret, $query, $data) = GalleryCoreApi::buildItemQuery('TagItemMap', 'itemId', '[TagItemMap::tagId] = ?', null, null, null, 'core.view', false, $userId); if ($ret) { return array($ret, null); } list ($ret, $searchResults) = $gallery->search($query, array_merge(array($tagId), $data)); if ($ret) { return array($ret, null); } $itemIds = array(); while ($result = $searchResults->nextResult()) { $itemIds[] = $result[0]; } // start item display loop if (!empty($itemIds)) { foreach( $itemIds as $value ) { list ($ret, $childItem) = GalleryCoreApi::loadEntitiesById($value, 'GalleryItem'); if ($ret) { print "Error loading childItems:" . $ret->getAsHtml(); } // we need to check the disabledFlag for each in dynamic mode $disabled = getDisabledFlag($childItem->getId()); if(!$disabled){ if(!($childItem->entityType == "GalleryAlbumItem")){ $display .= getDisplay($childItem); } } } return $display; } // end item display loop } /** * Dynamic query for keyword items * @param int $userId * @param string $keyword (optional) keyword for query; get from request if not specified * @return array GalleryStatus a status code * array of item ids * @static */ function getKeywordChildIds($userId, $keyword) { global $gallery; $storage =& $gallery->getStorage(); if (!isset($keyword)) { $keyword = GalleryUtilities::getRequestVariables('keyword'); } if (empty($keyword)) { return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER), null); } list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'keyalbum'); if ($ret) { return array($ret, null); } list ($ret, $params) = GalleryCoreApi::fetchAllPluginParameters('module', 'keyalbum'); if ($ret) { return array($ret, null); } $keywords = $where = array(); $keywords[] = '%' . $keyword . '%'; $where[] = '[GalleryItem::keywords] LIKE ?'; list ($ret, $query, $data) = GalleryCoreApi::buildItemQuery( 'GalleryItem', 'id', implode(' AND ', $where), $params['orderBy'], $params['orderDirection'], null, 'core.view', false, $userId); if ($ret) { return array($ret, null); } if (empty($query)) { return array(null, array()); } list ($ret, $searchResults) = $gallery->search($query, array_merge($keywords, $data)); if ($ret) { return array($ret, null); } $itemIds = array(); while ($result = $searchResults->nextResult()) { $itemIds[] = $result[0]; } // start item display loop if (!empty($itemIds)) { foreach( $itemIds as $value ) { list ($ret, $childItem) = GalleryCoreApi::loadEntitiesById($value, 'GalleryItem'); if ($ret) { print "Error loading childItems:" . $ret->getAsHtml(); } // we need to check the disabledFlag for each in dynamic mode $disabled = getDisabledFlag($childItem->getId()); if(!$disabled){ if(!($childItem->entityType == "GalleryAlbumItem")){ $display .= getDisplay($childItem); } } } return $display; } // end item display loop } /** * Dynamic query for dynamic items * @param int $userId * @return array object GalleryStatus a status code * array of item ids * @static */ function getDynamicChildIds($userId, $param='date', $orderBy='creationTimestamp', $orderDirection=ORDER_DESCENDING, $table='GalleryEntity', $id='id') { global $gallery; $storage =& $gallery->getStorage(); list ($ret, $params) = GalleryCoreApi::fetchAllPluginParameters('module', 'dynamicalbum'); if ($ret) { return array($ret, null); } $size = $params['size.' . $param]; $type = $params['type.' . $param]; if (!$size) { return array(GalleryCoreApi::error(ERROR_PERMISSION_DENIED), null); } list ($show, $albumId) = GalleryUtilities::getRequestVariables('show', 'albumId'); if (!empty($show)) { $type = $show; } switch ($type) { case 'data': $class = 'GalleryDataItem'; break; case 'all': $class = 'GalleryItem'; break; case 'album': $class = 'GalleryAlbumItem'; break; default: return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER), null); } if (!isset($table)) { $table = $class; } $query = '[' . $table . '::' . $id . '] IS NOT NULL'; if (!empty($albumId)) { list ($ret, $sequence) = GalleryCoreApi::fetchParentSequence($albumId); if ($ret) { return array($ret, null); } if (!empty($sequence)) { $sequence = implode('/', $sequence) . '/' . (int)$albumId . '/%'; $query = '[GalleryItemAttributesMap::parentSequence] LIKE ?'; $table = 'GalleryItemAttributesMap'; $id = 'itemId'; } else { $query = '[' . $table . '::' . $id . '] <> ' . (int)$albumId; } } if ($table == $class) { $class = null; } list ($ret, $query, $data) = GalleryCoreApi::buildItemQuery( $table, $id, $query, $orderBy, $orderDirection, $class, 'core.view', false, $userId); if ($ret) { return array($ret, null); } if (empty($query)) { return array(null, array()); } if (!empty($sequence)) { array_unshift($data, $sequence); } list ($ret, $searchResults) = $gallery->search($query, $data, array('limit' => array('count' => $size))); if ($ret) { return array($ret, null); } $itemIds = array(); while ($result = $searchResults->nextResult()) { $itemIds[] = $result[0]; } // start item display loop if (!empty($itemIds)) { foreach( $itemIds as $value ) { list ($ret, $childItem) = GalleryCoreApi::loadEntitiesById($value, 'GalleryItem'); if ($ret) { print "Error loading childItems:" . $ret->getAsHtml(); } // we need to check the disabledFlag for each in dynamic mode $disabled = getDisabledFlag($childItem->getId()); if(!$disabled){ if(!($childItem->entityType == "GalleryAlbumItem")){ $display .= getDisplay($childItem); } } } return $display; } // end item display loop } function getAlbumList ($id) { global $gallery; $display = ""; $urlGenerator =& $gallery->getUrlGenerator(); list ($ret, $Albums) = GalleryCoreApi::fetchAlbumTree(); list ($ret, $Albums) = GalleryCoreApi::loadEntitiesById(GalleryUtilities::arrayKeysRecursive($Albums), 'GalleryAlbumItem'); foreach ($Albums as $Albums){ // we can check for disabledFlag for the whole album $disabled = getDisabledFlag($Albums->getId()); if (($Albums->canContainChildren == 1 && $Albums->parentId == $id) || ($Albums->canContainChildren == 1 && $Albums->getId() == $id) || ($Albums->canContainChildren == 1 && $Albums->parentId == 418) && !$disabled || empty($id)) { $display .=" \n"; $display .= " " . cdata($Albums->getTitle()) . "\n"; $display .= " " . cdata($Albums->parentId) . "\n"; $display .= " " . cdata(getOwner($Albums->ownerId, 'GalleryUser')) . "\n"; $display .= " " . cdata($Albums->getId()) . "\n"; $display .=" \n"; } } return $display; } function getItems ($id) { global $gallery; $display = ""; list ($ret, $entity) = GalleryCoreApi::loadEntitiesById( $id, 'GalleryItem' ); if ($ret) { print "Error loading Entity:" . $ret->getAsHtml(); } // we can check for disabledFlag for the whole album $disabled = getDisabledFlag($id); if(!$disabled){ list ($ret, $childIds) = GalleryCoreApi::fetchChildItemIds($entity); if ($ret) { print "Error finding child item ids:" . $ret->getAsHtml(); } if (!empty($childIds)) { foreach( $childIds as $value ) { list ($ret, $childItem) = GalleryCoreApi::loadEntitiesById($value, 'GalleryItem'); if ($ret) { print "Error loading childItems:" . $ret->getAsHtml(); } if(!($childItem->entityType == "GalleryAlbumItem")){ $display .= getDisplay($childItem); } } } return $display; } } //the big display function function getDisplay($item){ $item = getPreferred($item); $itemId = $item->getId(); $display = ''; if(hasPermission($itemId)) { list ($ret, $thumbnailList) = GalleryCoreApi::fetchThumbnailsByItemIds(array($itemId)); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } $display .= " \n"; $display .= " " . getTitle($item) . "\n"; $display .= " " . $itemId . "\n"; $display .= " " . getLink($item) . "\n"; $display .= " " . getView($item) . "\n"; $display .= " " . getThumbUrl($item) . "\n"; $display .= " " . getWidth($item) . "\n"; $display .= " " . getHeight($item) . "\n"; $display .= " " . getMime($item) . "\n"; if (!$ret && !empty($thumbnailList)) { $display .= " ". cdata("
" . getTitle($item)) ."
\n"; } $display .= " " . getLink($item) . "\n"; $display .= " " . date('r', $item->getModificationTimestamp()) . "\n"; $display .= " " . getPreferredLink($item) . "\n"; // start new media rss $display .= " \n"; $display .= " " . getTitle($item) . "\n"; $display .= " getModificationTimestamp()) . "\"/>\n"; if (!$ret && !empty($thumbnailList)) { $display .= " " . cdata("
" . getTitle($item)) ."
\n"; } $display .= "
\n"; $display .= "
\n"; } return $display; } //check if current user has view permissions function hasPermission($itemId){ global $gallery; if (!isset($userId)) { $userId = $gallery->getActiveUserId(); } if (!isset($userId)) { $userId = GalleryCoreApi::getAnonymousUserId(); } list ($ret, $ok) = GalleryCoreApi::hasItemPermission($itemId, 'core.view', $userId); if ($ret || !$ok) { return false; }else{ return true; } } //check to see if a module is available function pluginCheck($plugin){ list ($ret, $modules) = GalleryCoreApi::fetchPluginStatus('module'); if ($ret) { print "checking plugin:". $plugin . " - " . $ret->getAsHtml(); } if($modules[$plugin]['active'] && $modules[$plugin]['available']){ return true; }else{ return false; } } //check to see if the "Prevent this album from being displayed in the Image Block" is checked function getDisabledFlag($itemId) { $isActive = pluginCheck('imageblock'); if($isActive){ list ($ret, $searchResults) = GalleryCoreApi::getMapEntry('ImageBlockDisabledMap', array('itemId'), array('itemId' => (int)$itemId)); if ($ret) { return false; } $result = false; if ($rec = $searchResults->nextResult()) { $result = (bool)$rec[0]; } return $result; }else{ //we want to return false if the imageBlock module is not active return false; } } function getResizes($item) { $itemId = $item->getId(); list ($ret, $resizes) = GalleryCoreApi::fetchResizesByItemIds(array($itemId)); if ($ret) { print "Error loading ResizesByItemIds:" . $ret->getAsHtml(); } if (isset($resizes)) { foreach ($resizes as $resized) { $display .= getView($resized[0]); } }else{ $display .= "none"; } return $display; } function getPreferred($item) { list ($ret, $preferred) = GalleryCoreApi::fetchPreferredsByItemIds(array($id)); if ($ret) { return array($ret, null); } if(isset($preferred[$id])) { return $preferred[$id]; }else{ return $item; } } function getOwner($id, $type) { list ($ret, $entity) = GalleryCoreApi::loadEntitiesById( $id, $type ); if ($ret) { print "Error loading ownerId:" . $ret->getAsHtml(); } $owner = $entity->userName; return $owner; } function getTitle($item) { return stripTags($item->getTitle()); } function stripTags($tostrip) { GalleryCoreApi::requireOnce('lib/smarty_plugins/modifier.markup.php'); $stripped = smarty_modifier_markup($tostrip, 'strip'); return $stripped; } function getMime($item) { if(!($item->entityType == "GalleryAlbumItem")){ return $item->getMimeType(); } else { return "Album"; } } function getWidth($item) { if(($item->entityType == "GalleryAnimationItem" || $item->entityType == "GalleryPhotoItem" || $item->entityType == "ThumbnailImage" || $item->entityType == "GalleryMovieItem" || $item->entityType == "GalleryDerivativeImage")){ return $item->getWidth(); } else { return 480; } } function getHeight($item) { if(($item->entityType == "GalleryAnimationItem" || $item->entityType == "GalleryPhotoItem" || $item->entityType == "ThumbnailImage" || $item->entityType == "GalleryMovieItem" || $item->entityType == "GalleryDerivativeImage")){ return $item->getHeight(); } else { return 160; } } function getRating($item) { $isActive = pluginCheck('rating'); if($isActive){ $itemId = $item->getId(); $rating = ''; GalleryCoreApi::requireOnce('modules/rating/classes/RatingHelper.class'); list ($ret, $Ratings) = RatingHelper::fetchRatings($itemId, ''); if(!empty ($Ratings)){ $rating = $Ratings[$id]['rating']; return " " . $rating . "\n"; } else { return " 0\n"; } } } function getThumbUrl($item) { global $gallery; $urlGenerator =& $gallery->getUrlGenerator(); $itemId = $item->getId(); list ($ret, $thumbnail) = GalleryCoreApi::fetchThumbnailsByItemIds(array($itemId)); if (!$ret && !empty($thumbnail)) { $thumbUrl = $urlGenerator->generateUrl( array('view' => 'core.DownloadItem', 'itemId' => $thumbnail[$itemId]->getId(), 'serialNumber' => $thumbnail[$itemId]->getSerialNumber()), array('forceFullUrl' => true, 'forceSessionId' => true, 'htmlEntities' => true)); } else { $thumbUrl = ""; } return $thumbUrl; } function getLink($item) { global $gallery; $urlGenerator =& $gallery->getUrlGenerator(); $link = $urlGenerator->generateUrl( array('view' => 'core.ShowItem', 'itemId' => $item->getId()), array('forceFullUrl' => true, 'forceSessionId' => true)); return $link; } function getPreferredLink($item) { global $gallery; $urlGenerator =& $gallery->getUrlGenerator(); $link = $urlGenerator->generateUrl( array('view' => 'core.ShowItem', 'itemId' => $item->getId(), 'imageViewsIndex' => 0), array('forceFullUrl' => true, 'forceSessionId' => true)); return $link; } function getView($item) { global $gallery; $urlGenerator =& $gallery->getUrlGenerator(); $view = $urlGenerator->generateUrl( array('view' => 'core.DownloadItem', 'itemId' => $item->getId(), 'serialNumber' => $item->getSerialNumber()), array('forceFullUrl' => true, 'forceSessionId' => true, 'htmlEntities' => true)); return $view; } function cdata($text) { return ''; } function xml() { init(); global $gallery; $title = ''; $userId = $gallery->getActiveUserId(); if (isset ($_REQUEST['mode'])) { $mode = $_REQUEST['mode']; } if (isset ($_REQUEST['g2_itemId'])) { $g2_itemId = $_REQUEST['g2_itemId']; list ($ret, $item) = GalleryCoreApi::loadEntitiesById($g2_itemId, 'GalleryAlbumItem'); if ($ret) { print "Error loading initial item:" . $ret->getAsHtml(); } $title = getTitle($item); }else{ $title = "XML Mini SlideShow for Gallery2"; } if (isset ($_REQUEST['g2_view'])) { $g2_view = $_REQUEST['g2_view']; } $xml = ''; $urlGenerator =& $gallery->getUrlGenerator(); $link = $urlGenerator->generateUrl(array(), array('forceFullUrl' => true)); $vm = $gallery->getPhpVm(); list ($ret, $language) = GalleryTranslator::getDefaultLanguageCode( ); if ($ret) { $language = "en_US"; } if (!$vm->headers_sent()) { $vm->header('Content-Type: application/rss+xml'); } echo "\n"; $xml .= "\n"; $xml .= " \n"; $xml .= " " . cdata($title) . "\n"; $xml .= " " . $link . "\n"; $xml .= " " . cdata($title) . "\n"; $xml .= " " .$language. "\n"; $xml .= " FlashYourWeb MediaRSS Generator v2.0.2\n"; $xml .= " " . date('r', $vm->time()) . "\n"; $xml .= " 120\n"; $xml .= getAlbumList ($g2_itemId); switch ($mode) { case 'dynamic': switch ($g2_view) { case 'dynamicalbum.UpdatesAlbum': $xml .= getDynamicChildIds($userId); break; case 'dynamicalbum.PopularAlbum': $xml .= getDynamicChildIds($userId, 'views', 'viewCount', ORDER_DESCENDING, 'GalleryItemAttributesMap', 'itemId'); break; case 'dynamicalbum.RandomAlbum': $xml .= getDynamicChildIds($userId, 'random', 'random', ORDER_ASCENDING, null, 'id'); break; case 'keyalbum.KeywordAlbum': $xml .= getKeywordChildIds($userId, $g2_keyword=null); break; case 'tags.VirtualAlbum': $xml .= getTagChildIds($userId, $g2_tagName=null); break; default: $xml .= getDynamicChildIds($userId); } break; default: $xml .= getItems($g2_itemId); } $xml .= " \n"; $xml .= "\n"; echo $xml; } xml(); ?>