Ticket #89: rss_picture_comments.patch
| File rss_picture_comments.patch, 5.7 KB (added by sidtheduck, 4 months ago) |
|---|
-
plog-includes/plog-functions.php
1125 1125 1126 1126 // no such caption, perhaps we have better luck with path? 1127 1127 if (!$picture) { 1128 // check if it's an RSS feed for the picture comments 1129 while (!empty($names['arg1']) && $names['arg1'] == "feed") { 1130 $feed = array_pop($names); 1131 } 1128 1132 $filepath = join("/",$names); 1129 1133 $like_match = array("_", "%"); 1130 1134 $like_replace = array("\_", "\%"); … … 1571 1575 FROM `".TABLE_PREFIX."comments` 1572 1576 WHERE `parent_id`=".intval($id)." 1573 1577 AND `approved`=1"; 1578 if (isset($arr['comments'])) { 1579 $query .= " ORDER BY `id` "; 1580 if ($arr['comments'] == "ASC") { 1581 $query .= "ASC"; 1582 } else { 1583 $query .= "DESC"; 1584 } 1585 } 1574 1586 $result = run_query($query) or die(mysql_error()); 1575 1587 1576 1588 $GLOBALS["available_comments"] = mysql_num_rows($result); -
plog-rss.php
30 30 $album = get_album_by_id($id); 31 31 $config["feed_title"] .= ": " . $album['album_name'] . " " . plog_tr("Album"); 32 32 33 } else if ($level == "picture") { 34 plogger_init_picture(array( 35 'id' => $id, 36 'comments' => 'DESC' 37 )); 38 $picture = get_picture_by_id($id); 39 $config["feed_title"] .= ": " . basename($picture['path']); 40 33 41 } else if ($level == "search") { 34 42 plogger_init_search(array( 35 43 'searchterms' => $search, … … 45 53 $config["feed_title"] .= ": " . plog_tr("Entire Gallery"); 46 54 } 47 55 48 $header = 1;49 50 56 // generate RSS header 51 $rssFeed = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";57 $rssFeed = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; 52 58 $rssFeed.= "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:media=\"http://search.yahoo.com/mrss/\">\n"; 53 59 54 60 $rssFeed.= "<channel>\n"; … … 60 66 $rssFeed.= "<link>".$config['gallery_url']."</link>\n"; 61 67 $rssFeed.= "<atom:link href=\"http://".$_SERVER['HTTP_HOST'].str_replace('&', '&', $_SERVER['REQUEST_URI'])."\" rel=\"self\" type=\"application/rss+xml\" />\n"; 62 68 69 $header = 1; 70 63 71 while(plogger_has_pictures()) { 64 72 plogger_load_picture(); 65 $submitdate = plogger_get_picture_date("D, d M Y H:i:s O",1); 66 $takendate = plogger_get_picture_date(); 67 73 68 74 if ($header) { 75 $submitdate = plogger_get_picture_date("D, d M Y H:i:s O",1); 76 $takendate = plogger_get_picture_date(); 77 69 78 $rssFeed.= "<pubDate>". $submitdate . "</pubDate>\n"; 70 79 $rssFeed.= "<lastBuildDate>". $submitdate . "</lastBuildDate>\n"; 71 80 $header = 0; … … 73 82 74 83 $rssFeed .= "<item>\n"; 75 84 76 $urlPath = plogger_get_source_picture_url();85 $urlPath = str_replace(array("%2F", "%3A"), array("/", ":"), rawurlencode(plogger_get_source_picture_url())); 77 86 78 87 $caption = plogger_get_picture_caption(); 79 $thumbpath = plogger_get_picture_thumb(THUMB_ SMALL);88 $thumbpath = plogger_get_picture_thumb(THUMB_RSS); 80 89 81 90 //$pagelink = $config["address"] . plogger_get_picture_url(); 82 91 // XXX: Below won't look nice with mod_rewrite, but plogger_get_picture_url … … 86 95 if ($caption == "" || $caption == " ") $caption = plog_tr("New Image (no caption)"); 87 96 $caption .= " - " . $takendate; 88 97 89 $d iscript = '<p><a href="'.$pagelink.'"98 $descript = '<p><a href="'.$pagelink.'" 90 99 title="'.$caption.'"> 91 100 <img src="'.$thumbpath.'" alt="'.$caption.'" style="border: 1px solid #000000;" /> 92 101 </a></p><p>'.$caption.'</p>'; 93 102 94 $d iscript .= '<p>'.htmlspecialchars(plogger_get_picture_description()).'</p>';103 $descript .= '<p>'.htmlspecialchars(plogger_get_picture_description()).'</p>'; 95 104 96 105 $rssFeed .= "\t<pubDate>" . $submitdate . "</pubDate>\n"; 97 106 $rssFeed .= "\t<title>" . $caption . "</title>\n"; 98 107 $rssFeed .= "\t<link>" . $pagelink . "</link>\n"; 99 $rssFeed .= "\t<description>" . $d iscript . "</description>\n";108 $rssFeed .= "\t<description>" . $descript . "</description>\n"; 100 109 $rssFeed .= "\t<guid isPermaLink=\"false\">".$thumbpath."</guid>\n"; 101 $rssFeed .= "\t<media:content url=\"" . $urlPath . "\" type=\"image/jpeg\" />\n";110 $rssFeed .= "\t<media:content url=\"" . $urlPath . "\" type=\"image/jpeg\" />\n"; 102 111 $rssFeed .= "\t<media:title>" . $caption . "</media:title>\n"; 103 112 $rssFeed .= "</item>\n"; 113 if ($level == "picture") { 114 while(plogger_picture_has_comments()) { 115 plogger_load_comment(); 116 $rssFeed .= "<item>\n"; 117 $rssFeed .= "\t<pubDate>" . plogger_get_comment_date("D, d M Y H:i:s O") . "</pubDate>\n"; 118 $rssFeed .= "\t<title>Comment by " . plogger_get_comment_author() . "</title>\n"; 119 $rssFeed .= "\t<link>" . $pagelink . "</link>\n"; 120 $rssFeed .= "\t<description>" . plogger_get_comment_text() . "</description>\n"; 121 $rssFeed .= "\t<guid isPermaLink=\"true\">".$pagelink."#Comment-".plogger_get_comment_id()."</guid>\n"; 122 $rssFeed .= "</item>\n"; 123 } 124 } 104 125 } 105 126 106 127 $rssFeed .= "</channel>\n</rss>"; … … 121 142 // Plogger is installed in one 122 143 $path = join("/",array_diff(explode("/",$_SERVER["REQUEST_URI"]),explode("/",$_SERVER["PHP_SELF"]))); 123 144 $resolved_path = resolve_path($path); 124 // there is no meaningful RSS feed for images 125 if (is_array($resolved_path) && isset($resolved_path['level']) && $resolved_path['level'] != "picture") { 126 $level = (isset($resolved_path['level'])) ? $resolved_path['level'] : "collections"; 127 $id = (isset($resolved_path['id'])) ? $resolved_path['id'] : 0; 128 } 145 $level = (isset($resolved_path['level'])) ? $resolved_path['level'] : "collections"; 146 $id = (isset($resolved_path['id'])) ? $resolved_path['id'] : 0; 129 147 } 130 148 131 149 $parts = parse_url($_SERVER['REQUEST_URI']);
