$id, 'sortby' => 'id', 'sortdir' => 'DESC', 'from' => 0, 'limit' => $config['feed_num_entries'] )); } else { plogger_init_pictures(array( 'type' => 'collection', 'value' => $id, 'limit' => $config['feed_num_entries'], 'sortby' => 'id', )); } $collection = get_collection_by_id($id); $config['feed_title'] .= ': '.$collection['name']; } else if ($level == 'album') { plogger_init_pictures(array( 'type' => 'album', 'value' => $id, 'limit' => $config['feed_num_entries'], 'sortby' => 'id', )); $album = get_album_by_id($id); $config['feed_title'] .= ': '.$album['album_name']; } else if ($level == 'picture') { plogger_init_picture(array( 'id' => $id, 'comments' => 'DESC' )); $picture = get_picture_by_id($id); $config['feed_title'] .= ': '.basename($picture['path']); } else if ($level == 'search') { plogger_init_search(array( 'searchterms' => $search, 'limit' => $config['feed_num_entries'], )); } else if (($level == 'collections') or ($level == '')) { if ($config['feed_content'] == 0 ) { plogger_init_albums(array( 'collection_id' => -1, 'sortby' => 'id', 'sortdir' => 'DESC', 'from' => 0, 'limit' => $config['feed_num_entries'] )); } else { plogger_init_pictures(array( 'type' => 'latest', 'sortby' => 'id', 'limit' => $config['feed_num_entries'] )); } $config['feed_title'] .= ': '.plog_tr('Entire Gallery'); } // generate RSS header $rssFeed = "\n"; $rssFeed.= "\n"; $rssFeed.= "\n"; $rssFeed.= "".$config['feed_title']."\n"; $rssFeed.= "".plog_tr('Plogger RSS Feed')."\n"; $rssFeed.= "".$GLOBALS['locale']."\n"; $rssFeed.= "http://blogs.law.harvard.edu/tech/rss\n"; $rssFeed.= "Plogger\n"; $rssFeed.= "".$config['gallery_url']."\n"; $rssFeed.= "\n"; $header = 1; while(plogger_has_albums()) { plogger_load_album(); if ($header) { $submitdate = date('D, d M Y H:i:s O'); $rssFeed.= "".$submitdate."\n"; $rssFeed.= "".$submitdate."\n"; $header = 0; } $sql = "SELECT UNIX_TIMESTAMP(`date_modified`) AS `pubdate` FROM `".PLOGGER_TABLE_PREFIX."pictures` WHERE `parent_album` = '".plogger_get_album_id()."' ORDER BY `date_modified` DESC LIMIT 1"; $result = run_query($sql); $row = mysql_fetch_assoc($result); $pubdate = date('D, d M Y H:i:s O', $row['pubdate']); $title = plogger_get_album_name(); $num = plogger_album_picture_count(); $num_pictures = ($num == 1) ? plog_tr('image') : plog_tr('images'); $pagelink = plogger_get_album_url(); $thumbpath = str_replace(array('%2F', '%3A'), array('/', ':'), rawurlencode(plogger_get_album_thumb())); $descript = '<p><a href="'.$pagelink.'" title="'.$title.'"> <img src="'.$thumbpath.'" alt="'.$title.'" style="border: 2px solid #000;" /> </a></p><p>'.$title.' ('.$num.' '.$num_pictures.')</p><p>'.htmlspecialchars(plogger_get_album_description()).'</p>'; $rssFeed .= "\n"; $rssFeed .= "\t".$pubdate."\n"; $rssFeed .= "\t".$title."\n"; $rssFeed .= "\t".$pagelink."\n"; $rssFeed .= "\t".$descript."\n"; $rssFeed .= "\t".$thumbpath."\n"; $rssFeed .= "\t\n"; $rssFeed .= "\t".$title."\n"; $rssFeed .= "\n"; } while(plogger_has_pictures()) { plogger_load_picture(); // If at picture level, check to make sure it has comments first if ($level != 'picture' || plogger_picture_has_comments()) { if ($header) { $submitdate = plogger_get_picture_date('D, d M Y H:i:s O', 1); $takendate = plogger_get_picture_date(); $rssFeed.= "".date('D, d M Y H:i:s O')."\n"; $rssFeed.= "".$submitdate."\n"; $header = 0; } $rssFeed .= "\n"; if ($config['allow_fullpic']) { $urlPath = str_replace(array('%2F', '%3A'), array('/', ':'), rawurlencode(plogger_get_source_picture_url())); } else { $urlPath = str_replace(array('%2F', '%3A'), array('/', ':'), rawurlencode(plogger_get_picture_thumb(THUMB_LARGE))); } $caption = plogger_get_picture_caption(); $thumbpath = plogger_get_picture_thumb(THUMB_RSS); $pagelink = plogger_get_picture_url(); if ($caption == '' || $caption == ' ') $caption = plog_tr('New Image (no caption)'); $caption .= ' - '.$takendate; $descript = '<p><a href="'.$pagelink.'" title="'.$caption.'"> <img src="'.$thumbpath.'" alt="'.$caption.'" style="border: 2px solid #000;" /> </a></p><p>'.$caption.'</p>'; $descript .= '<p>'.htmlspecialchars(plogger_get_picture_description()).'</p>'; $rssFeed .= "\t".$submitdate."\n"; $rssFeed .= "\t".$caption."\n"; $rssFeed .= "\t".$pagelink."\n"; $rssFeed .= "\t".$descript."\n"; $rssFeed .= "\t".$thumbpath."\n"; $rssFeed .= "\t\n"; $rssFeed .= "\t".$caption."\n"; $rssFeed .= "\n"; if ($level == 'picture') { while(plogger_picture_has_comments()) { plogger_load_comment(); $rssFeed .= "\n"; $rssFeed .= "\t".plogger_get_comment_date('D, d M Y H:i:s O')."\n"; $rssFeed .= "\tComment by ".plogger_get_comment_author()."\n"; $rssFeed .= "\t".$pagelink."\n"; $rssFeed .= "\t".plogger_get_comment_text()."\n"; $rssFeed .= "\t".$pagelink."#Comment-".plogger_get_comment_id()."\n"; $rssFeed .= "\n"; } } } } $rssFeed .= "\n"; echo $rssFeed; } // Send proper header header('Content-Type: application/xml'); $level = isset($_GET['level']) ? $_GET['level'] : ''; $id = isset($_GET['id']) ? intval($_GET['id']) : '0'; // Process path here - is set if mod_rewrite is in use // Some Estonian remarks were here if (!empty($_REQUEST['path'])) { // The following line calculates the path in the album and excludes any subdirectories if // Plogger is installed in one $path = join('/', array_diff(explode('/', $_SERVER['REQUEST_URI']), explode('/', $_SERVER['PHP_SELF']))); $resolved_path = resolve_path($path); $level = (isset($resolved_path['level'])) ? $resolved_path['level'] : 'collections'; $id = (isset($resolved_path['id'])) ? $resolved_path['id'] : 0; } $parts = parse_url($_SERVER['REQUEST_URI']); if (isset($parts['query'])) { parse_str($parts['query'], $query_parts); } if (isset($query_parts['searchterms'])) { generate_RSS_feed($level, $id, $query_parts['searchterms']); } else { generate_RSS_feed($level, $id); } close_db(); ?>