function MG_processAlbumFeedItems(&$rss, $aid) { global $MG_albums, $_MG_CONF, $_CONF, $_TABLES, $LANG_MG00; $sql = "SELECT * FROM {$_TABLES['mg_media_albums']} as ma INNER JOIN " . $_TABLES['mg_media'] . " as m " . " ON ma.media_id=m.media_id WHERE ma.album_id=" . (int) $aid . ' ORDER BY m.media_upload_time DESC'; $result = DB_query($sql); $nRows = DB_numRows($result); if ($nRows > 0) { while ($row = DB_fetchArray($result)) { $item = new FeedItem(); if ($row['media_title'] != '') { $item->title = $row['media_title']; } else { $item->title = $LANG_MG00['no_title']; } $item->link = $_MG_CONF['site_url'] . '/media.php?s=' . $row['media_id']; $item->guid = $_MG_CONF['site_url'] . '/media.php?s=' . $row['media_id']; if ($MG_albums[$aid]->podcast) { // optional -- applies only if this is a podcast $item->podcast = new PodcastItem(); $item->podcast->enclosure_url = $_MG_CONF['mediaobjects_url'] . '/orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . '.' . $row['media_mime_ext']; $item->podcast->enclosure_length = @filesize($_MG_CONF['path_mediaobjects'] . 'orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . '.' . $row['media_mime_ext']); $item->podcast->enclosure_type = $row['mime_type']; } $dt = new Date($row['media_upload_time'], $_CONF['timezone']); $item->date = $dt->toRFC822(true); $item->source = $_CONF['site_url']; if ($MG_albums[$aid]->podcast && $row['artist'] != '') { $item->author = $row['artist']; $item->podcast->author = $row['artist']; } if ($MG_albums[$aid]->podcast && $row['media_keywords'] != '') { $item->podcast->keywords = $row['media_keywords']; } switch ($row['media_type']) { case 0: // standard image $default_thumbnail = 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . '.jpg'; foreach ($_MG_CONF['validExtensions'] as $ext) { if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext)) { $default_thumbnail = 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext; break; } } break; case 1: // video file switch ($row['mime_type']) { case 'video/x-flv': $default_thumbnail = 'flv.png'; break; case 'application/x-shockwave-flash': $default_thumbnail = 'flash.png'; break; break; case 'video/mpeg': case 'video/x-motion-jpeg': case 'video/quicktime': case 'video/mpeg': case 'video/x-mpeg': case 'video/x-mpeq2a': case 'video/x-qtc': case 'video/x-m4v': $default_thumbnail = 'quicktime.png'; break; case 'video/x-ms-asf': case 'video/x-ms-asf-plugin': case 'video/avi': case 'video/msvideo': case 'video/x-msvideo': case 'video/avs-video': case 'video/x-ms-wmv': case 'video/x-ms-wvx': case 'video/x-ms-wm': case 'application/x-troff-msvideo': case 'application/x-ms-wmz': case 'application/x-ms-wmd': $default_thumbnail = 'wmp.png'; break; default: $default_thumbnail = 'video.png'; break; } break; case 2: // music file $default_thumbnail = 'audio.png'; break; case 4: // other files switch ($row['mime_type']) { case 'application/zip': case 'application/x-gzip': case 'application/x-tar': case 'arj': case 'rar': case 'gz': $default_thumbnail = 'zip.png'; break; case 'application/pdf': case 'pdf': $default_thumbnail = 'pdf.png'; break; case 'application/octet-stream': if ($row['mime_ext'] == 'pdf') { $default_thumbnail = 'pdf.png'; } else { if ($row['mime_ext'] == 'arj') { $default_thumbnail = 'zip.png'; } else { if ($row['mime_ext'] == 'rar') { $default_thumbnail = 'zip.png'; } else { $default_thumbnail = 'generic.png'; } } } break; default: $default_thumbnail = 'generic.png'; break; } break; case 5: $default_thumbnail = 'remote.png'; break; } if ($row['media_tn_attached'] == 1) { $media_thumbnail = ''; $media_thumbnail_file = ''; foreach ($_MG_CONF['validExtensions'] as $ext) { if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/tn_' . $row['media_filename'] . $ext)) { $media_thumbnail = $_MG_CONF['mediaobjects_url'] . '/tn/' . $row['media_filename'][0] . '/tn_' . $row['media_filename'] . $ext; $media_thumbnail_file = $_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/tn_' . $row['media_filename'] . $ext; break; } } } else { $media_thumbnail = $_MG_CONF['mediaobjects_url'] . '/' . $default_thumbnail; $media_thumbnail_file = $_MG_CONF['path_mediaobjects'] . $default_thumbnail; } $media_size = @getimagesize($media_thumbnail_file); if ($media_thumbnail == '' || $media_size == false) { $default_thumbnail = 'generic.png'; $media_thumbnail = $_MG_CONF['mediaobjects_url'] . '/' . $default_thumbnail; $media_thumbnail_file = $_MG_CONF['path_mediaobjects'] . $default_thumbnail; $media_size = @getimagesize($media_thumbnail_file); } $imgurl = $media_thumbnail; $description = "<img width=\"" . $media_size[0] . "\" vspace=\"5\" hspace=\"5\" height=\"" . $media_size[1] . "\" border=\"1\" align=\"left\" src=\"" . $imgurl . "\" alt=\"\" />\n"; $item->description = $description . $row['media_desc']; $item->descriptionTruncSize = 500; $item->descriptionHtmlSyndicated = true; $rss->addItem($item); } } /* * Process the children albums */ if (!empty($MG_albums[$aid]->children) && $MG_albums[$aid]->rssChildren) { $children = $MG_albums[$aid]->getChildren(); foreach ($children as $child) { if ($MG_albums[$child]->hidden != 1) { if ($_MG_CONF['rss_ignore_empty'] == 1 && $MG_albums[$child]->last_update != 0 && $MG_albums[$child]->last_update != '' && $MG_albums[$aid]->media_count > 0) { if ($_MG_CONF['rss_anonymous_only'] == 1 && $MG_albums[$child]->perm_anon > 0) { MG_processAlbumFeedItems($rss, $MG_albums[$child]->id); } } } } } }
function MG_processAlbumFeedItems(&$rss, $aid, &$album_data) { global $_MG_CONF, $_CONF, $_TABLES; $sql = MG_buildMediaSql(array('album_id' => $aid, 'sortorder' => 4)); $result = DB_query($sql); while ($row = DB_fetchArray($result)) { $item = new FeedItem(); $item->title = $row['media_title']; $item->link = $_MG_CONF['site_url'] . '/media.php?s=' . $row['media_id']; $description = ''; $item->description = $description . $row['media_desc']; $item->descriptionTruncSize = 500; $item->descriptionHtmlSyndicated = true; if ($album_data['podcast']) { // optional -- applies only if this is a podcast $item->podcast = new PodcastItem(); $item->podcast->enclosure_url = $_MG_CONF['mediaobjects_url'] . '/orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . '.' . $row['media_mime_ext']; $item->podcast->enclosure_length = @filesize($_MG_CONF['path_mediaobjects'] . 'orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . '.' . $row['media_mime_ext']); $item->podcast->enclosure_type = $row['mime_type']; } $item->date = strftime("%a, %d %b %Y %H:%M:%S %z", $row['media_time']); $item->source = $_CONF['site_url']; if ($row['artist'] != '') { $item->author = $row['artist']; $item->podcast->author = $row['artist']; } if ($row['media_keywords'] != '') { $item->podcast->keywords = $row['media_keywords']; } /* --- if ( $row['media_user_id'] != '' && $row['media_user_id'] > 1 ) { $res = DB_query("SELECT * FROM {$_TABLES['users']} WHERE uid='" . $row['media_user_id'] . "'"); $uRow = DB_fetchArray($res); $item->author = $_MG_CONF['hide_author_email'] == 0 ? $uRow['email'] : '' . ' (' . $uRow['fullname'] . ')'; } --- */ $rss->addItem($item); } /* * Process the children albums */ if ($album_data['rsschildren']) { $children = MG_getAlbumChildren($aid); foreach ($children as $child) { $child_data = MG_getAlbumData($child, array('enable_rss', 'album_title', 'album_desc', 'tn_attached', 'podcast', 'rsschildren', 'owner_id', 'hidden', 'last_update', 'media_count', 'perm_anon')); if ($child_data['hidden'] != 1) { if ($_MG_CONF['rss_ignore_empty'] == 1 && $child_data['last_update'] != 0 && $child_data['last_update'] != '' && $child_data['media_count'] > 0) { if ($_MG_CONF['rss_anonymous_only'] == 1 && $child_data['perm_anon'] > 0) { MG_processAlbumFeedItems($rss, $child, $child_data); } } } } } }