PageRenderTime 49ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/sites/zenphoto/rss.php

https://github.com/Juuro/Dreamapp-Website
PHP | 148 lines | 140 code | 8 blank | 0 comment | 30 complexity | 17d701c8fe583d14c805e2dcabfe2dba MD5 | raw file
  1. <?php
  2. if (!defined('ZENFOLDER')) { define('ZENFOLDER', 'zp-core'); }
  3. define('OFFSET_PATH', 0);
  4. header('Content-Type: application/xml');
  5. require_once(ZENFOLDER . "/template-functions.php");
  6. require_once(ZENFOLDER . "/plugins/image_album_statistics.php");
  7. if(isset($_GET['albumname'])) {
  8. $albumfolder = sanitize_path($_GET['albumname']);
  9. $collection = FALSE;
  10. } else if(isset($_GET['folder'])) {
  11. $albumfolder = sanitize_path($_GET['folder']);
  12. $collection = TRUE;
  13. } else {
  14. $albumfolder = NULL;
  15. $collection = FALSE;
  16. }
  17. if(isset($_GET['lang'])) {
  18. $locale = sanitize($_GET['lang']);
  19. } else {
  20. $locale = getOption('locale');
  21. }
  22. $validlocale = strtr($locale,"_","-"); // for the <language> tag of the rss
  23. $host = htmlentities($_SERVER["HTTP_HOST"], ENT_QUOTES, 'UTF-8');
  24. if(isset($_GET['albumtitle'])) {
  25. $albumname = " (".sanitize(urldecode($_GET['albumtitle'])).")";
  26. } else {
  27. $albumname = "";
  28. }
  29. if(getOption('mod_rewrite')) {
  30. $albumpath = "/"; $imagepath = "/";
  31. $modrewritesuffix = getOption('mod_rewrite_image_suffix');
  32. } else {
  33. $albumpath = "/index.php?album=";
  34. $imagepath = "&amp;image=";
  35. $modrewritesuffix = ""; }
  36. if(isset($_GET['size'])) {
  37. $size = sanitize_numeric($_GET['size']);
  38. } else {
  39. $size = NULL;
  40. }
  41. if(is_numeric($size) && !is_null($size) && $size < getOption('feed_imagesize')) {
  42. $size = $size;
  43. } else {
  44. $size = getOption('feed_imagesize'); // uncropped image size
  45. }
  46. $items = getOption('feed_items'); // # of Items displayed on the feed
  47. ?>
  48. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  49. <channel>
  50. <title><?php echo strip_tags(get_language_string(getOption('gallery_title'), $locale)).strip_tags($albumname); ?></title>
  51. <link><?php echo "http://".$host.WEBPATH; ?></link>
  52. <atom:link href="http://<?php echo $host.WEBPATH; ?>/rss.php" rel="self" type="application/rss+xml" />
  53. <description><?php echo strip_tags(get_language_string(getOption('gallery_title'), $locale)); ?></description>
  54. <language><?php echo $validlocale; ?></language>
  55. <pubDate><?php echo date("r", time()); ?></pubDate>
  56. <lastBuildDate><?php echo date("r", time()); ?></lastBuildDate>
  57. <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  58. <generator>ZenPhoto RSS Generator</generator>
  59. <?php
  60. $admins = getAdministrators();
  61. $admin = array_shift($admins);
  62. $adminname = $admin['user'];
  63. $adminemail = $admin['email'];
  64. ?>
  65. <managingEditor><?php echo "$adminemail ($adminname)"; ?></managingEditor>
  66. <webMaster><?php echo "$adminemail ($adminname)"; ?></webMaster>
  67. <?php
  68. $result = getImageStatistic($items,getOption("feed_sortorder"),$albumfolder,$collection);
  69. foreach ($result as $image) {
  70. $ext = strtolower(strrchr($image->filename, "."));
  71. $albumobj = $image->getAlbum();
  72. $imagelink = $host.WEBPATH.$albumpath.$albumobj->name.$imagepath.$image->filename.$modrewritesuffix;
  73. $fullimagelink = $host.WEBPATH."/albums/".$albumobj->name."/".$image->filename;
  74. $thumburl = '<img border="0" src="'.$image->getCustomImage($size, NULL, NULL, NULL, NULL, NULL, NULL, TRUE).'" alt="'. $image->getTitle() .'" />';
  75. $imagecontent = '<![CDATA[<a title="'.$image->getTitle().' in '.$albumobj->getTitle().'" href="http://'.$imagelink.'">'.$thumburl.'</a><p>' . $image->getDesc() . '</p>]]>';
  76. $videocontent = '<![CDATA[<a title="'.$image->getTitle().' in '.$albumobj->getTitle().'" href="http://'.$imagelink.'">'. $image->filename.'</a><p>' . $image->getDesc() . '</p>]]>';
  77. $datecontent = '<![CDATA[Date: '.zpFormattedDate(getOption('date_format'),$image->get('mtime')).']]>';
  78. switch($ext) {
  79. case ".flv":
  80. $mimetype = "video/x-flv";
  81. break;
  82. case ".mp3":
  83. $mimetype = "audio/mpeg";
  84. break;
  85. case ".mp4":
  86. $mimetype = "video/mpeg";
  87. break;
  88. case ".3gp":
  89. $mimetype = "video/3gpp";
  90. break;
  91. case ".mov":
  92. $mimetype = "video/quicktime";
  93. break;
  94. case ".jpg":
  95. case ".jpeg":
  96. $mimetype = "image/jpeg";
  97. break;
  98. case ".gif":
  99. $mimetype = "image/gif";
  100. break;
  101. case ".png":
  102. $mimetype = "image/png";
  103. break;
  104. default:
  105. $mimetype = "image/jpeg";
  106. break;
  107. }
  108. ?>
  109. <item>
  110. <title><?php echo $image->getTitle()." (".$albumobj->getTitle().")"; ?></title>
  111. <link><?php echo '<![CDATA[http://'.$imagelink. ']]>';?></link>
  112. <description>
  113. <?php
  114. if (($ext == ".flv") || ($ext == ".mp3") || ($ext == ".mp4") || ($ext == ".3gp") || ($ext == ".mov")) {
  115. echo $videocontent;
  116. } else {
  117. echo $imagecontent; } ?>
  118. <?php echo $datecontent; ?>
  119. </description>
  120. <?php
  121. if(getOption("feed_enclosure")) { // enables download of embeded content like images or movies in some rss clients. just for testing, shall become a real option
  122. ?>
  123. <enclosure url="<?php echo $fullimagelink; ?>" type="<?php echo $mimetype; ?>" />
  124. <?php } ?>
  125. <category><?php echo $albumobj->getTitle(); ?></category>
  126. <guid><?php echo '<![CDATA[http://'.$imagelink.']]>';?></guid>
  127. <pubDate><?php echo date("r",strtotime($image->get('date'))); ?></pubDate>
  128. <?php if(getOption("feed_mediarss")) { ?>
  129. <media:content url="http://<?php echo $fullimagelink; ?>"
  130. type="image/jpeg">
  131. <media:thumbnail url="<![CDATA[<?php echo $image->getCustomImage($size, NULL, NULL, NULL, NULL, NULL, NULL, TRUE); ?>]]>" width="<?php echo $size; ?>" height="<?php echo $size; ?>"/>
  132. <media:title type="plain"><?php echo strip_tags($image->getTitle()); ?></media:title>
  133. <media:description type="plain"><?php echo strip_tags($image->getDesc()); ?></media:description>
  134. <media:credit role="illustrator"><?php echo $adminname; ?></media:credit>
  135. </media:content>
  136. <?php } ?>
  137. </item>
  138. <?php } ?>
  139. </channel>
  140. </rss>