forum.coppermine-gallery.net
Support => cpg1.4.x Support => Older/other versions => cpg1.4 cpmFetch by vuud => Topic started by: nolageek on January 17, 2007, 07:23:41 pm
-
Is it possible to just get an rss feed of one album?
-
Is it possible to just get an rss feed of one album?
If you are on a dev version, or maybe even the stable... look for this in cfrssget.php
switch ($cmd_parameter) {
case ('mostviewed'):
$cfrss->addMostViewedMedia($totalToShow);
break;
case ('toprated'):
$cfrss->addTopRatedMedia($totalToShow);
break;
case ('last'):
$cfrss->addLastAddedMedia($totalToShow);
break;
case ('random'):
$cfrss->addRandomMedia($totalToShow);
break;
default:
break;
}
Depending on which one you want, they all support a source parameter (in theory).
So for example, modifying it to:
$cfrss->addLastAddedMedia($totalToShow,"album=6");
Would show album 6...
Of course, copying and renameing the rss_lastadded.php file and modifying that to call would be a superiour solution.
You'll find one function call in there that you can change or modify. Thats bonus points though
-
perfect. Now, I'm trying to hack it so that it ONLY gives a thumbnail, linked to the image. No file discriptions, no voting stats, nothing. just a thumbnail, linked. Any ideas?
As you can see, so far, I'm not very successful:
http://meninshirtandtie.com/forum/gallery2/rss3.php
<?php
/**
* cfrssget.php
*
* @version $Revision: 1.7 $
*
* RELEASE VERSION 1.6.4
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
error_reporting(E_ALL);
ini_set('display_errors',1); // 0 is off, 1 is on
include "cpmfetch_dao.php";
include "libs/feedcreator.class.php";
$ENABLED = true; //Set to false if you will be creating standalone feed modules
if ($ENABLED) {
$partialurltocpm = "/forum/gallery2/"; //Part of the URL to CPG without the host and domain
$default_command = "last"; //What to do if no cmd is specified
// THESE SPECIFY THE INFORMATION USED IN YOUR FEED
// You only need to use this if you will be using this file as a feed
$rssFeedTitle = "E-Pix Gallery";
$rssFeedDescription = "Your photos via e-mail";
$rssFeedSiteUrl = "http://www.meninshirtandtie.com";
$rssFeedProviderUrl = "http://www.meninshirtandtie.com/forum/gallery2/rss3.php";
$rssFeedImageTitle = "FFOC Logo";
$rssFeedImageURL = 'http://www.xfistfullofcode.com/images/ffoc_logo.gif';
$rssFeedImageLink = "http://www.xfistfullofcode.com";
$rssFeedImageAlt = "logo";
$rssItemTitle = "%t posted in %a";
$rssItemAlternateTitle = "%f posted in %a";
$rssItemDescription = "";
$rssItemAlternateDescription = "";
$totalToShow = 5;
///// END OF USER SETTINGS /////////
$cmd_parameter = "last";
if (array_key_exists("cmd",$_GET)) {
switch ($_GET['cmd']) {
case ('mostviewed'):
case ('toprated'):
case ('last'):
case ('random'):
$cmd_parameter = $_GET['cmd'];
break;
default:
$cmd_parameter = $default_command;
break;
}
} else {
$cmd_parameter = $default_command;
}
$cfrss = new cfrss($partialurltocpm);
$cfrss->startFeed($rssFeedTitle, $rssFeedDescription, $rssFeedSiteUrl, $rssFeedProviderUrl);
$cfrss->setFeedImage($rssFeedImageTitle,$rssFeedImageURL,$rssFeedImageLink,$rssFeedImageAlt);
$cfrss->setItemTitle($rssItemTitle,$rssItemAlternateTitle);
$cfrss->setItemDescription($rssItemDescription,$rssItemAlternateDescription);
switch ($cmd_parameter) {
case ('mostviewed'):
$cfrss->addMostViewedMedia($totalToShow);
break;
case ('toprated'):
$cfrss->addTopRatedMedia($totalToShow);
break;
case ('last'):
$cfrss->addLastAddedMedia($totalToShow,"album=3");
break;
case ('random'):
$cfrss->addRandomMedia($totalToShow);
break;
default:
break;
}
$cfrss->endFeed();
}
////////// The cfrss object itself ///////////////////
class cfrss {
var $cpm = "";
var $rss = "";
var $urltocpm = ""; //from a web client point of view without domain name /photos
var $fullUrlToCpm = "";
var $filepathtocpm = ""; //server path to cpm directory /home/vuud/cpm
var $version = "1.6.4";
var $thumbnailprefix = "thumb_";
var $intermedprefix = "normal_";
var $fullsizeprefix = '';
var $defaultimagesize = "thumb_";
var $itemTitle = "";
var $itemAltTitle = "";
var $itemDescription = "";
var $itemAltDescription = "";
function cfrss ($urltocpm_ = "") {
if ($urltocpm_ != "") {
if (substr($urltocpm_,-1) != '/') $urltocpm_ .= '/';
$this->urltocpm = $urltocpm_;
$this->filepathtocpm = $_SERVER['DOCUMENT_ROOT'] . $urltocpm_;
if (file_exists($this->filepathtocpm . '/include/config.inc.php')) {
include $this->filepathtocpm . '/include/config.inc.php';
$this->cpm = new cpm_dao($CONFIG['dbname'], $CONFIG['dbserver'],
$CONFIG['dbuser'], $CONFIG['dbpass'], $CONFIG['TABLE_PREFIX'], $this->urltocpm);
$this->fullUrlToCpm = "http://" . $_SERVER['HTTP_HOST'];
$this->cpm->setPhotoPrefix($this->thumbnailprefix, $this->intermedprefix, $this->fullsizeprefix);
$this->rss = new UniversalFeedCreator();
}
else {
print "ERROR: Path to Coppermine incorrect. (" . $this->filepathtocpm . ")";
$this = "";
}
}
}
function startFeed($title,$description,$link,$syndicationUrl) {
$this->rss->title = $title;
$this->rss->description = $description;
$this->rss->link = $link;
$this->rss->syndicationURL = $syndicationUrl;
}
function setFeedImage($imgTitle,$imgUrl,$imglink,$imgDescription) {
$image = new FeedImage();
$image->title = $imgTitle;
$image->url = $imgUrl;
$image->link = $imglink;
$image->description = $imgDescription;
$this->rss->image = $image;
}
function setItemTitle ($pattern,$altpattern="") {
$this->itemTitle = $pattern;
if($altpattern == "") {
$this->itemAltTitle = $pattern;
} else {
$this->itemAltTitle = $altpattern;
}
}
function setItemDescription ($pattern,$altpattern="") {
$this->itemDescription = $pattern;
if($altpattern == "") {
$this->itemAltDescription = $pattern;
} else {
$this->itemAltDescription = $altpattern;
}
}
function endFeed( ) {
$this->rss->saveFeed("RSS1.0", "./tmp/feed.xml");
$this->cpm->destroy();
}
function addLastAddedMedia($count,$source="") {
$results = $this->cpm->getLastAddedMediaFrom($source,$count);
$this->generateFeedFromResults($results);
}
function addTopRatedMedia($count,$source="") {
$results = $this->cpm->getTopRatedMediaFrom($source,$count);
$this->generateFeedFromResults($results);
}
function addMostViewedMedia ($count,$source="") {
$results = $this->cpm->getMostVotedMediaFrom($source,$count);
$this->generateFeedFromResults($results);
}
function addRandomMedia ($count,$source="") {
$results = $this->cpm->getRandomImageFrom($source,$count);
$this->generateFeedFromResults($results);
}
function generateFeedFromResults($results) {
//while ($data = mysql_fetch_assoc($results)) {
foreach ($results as $data) {
$item = new FeedItem();
$item->link = $this->fullUrlToCpm . $this->cpm->createLink($data['pFilepath'], rawurlencode($data['pFilename']), $data['pAid'], $data['pPid']);
$titleToUse = "";
$descriptionToUse="";
if (($titleToUse = $this->cpm->createDescription($this->itemTitle,$data,true)) == false) {
$titleToUse = $this->cpm->createDescription($this->itemAltTitle,$data);
}
if (($descriptionToUse = $this->cpm->createDescription($this->itemDescription,$data,true)) == false) {
$descriptionToUse = $this->cpm->createDescription($this->itemAltDescription,$data);
}
$imagetag = '<a href="">' . $this->fullUrlToCpm
. $this->cpm->urlEncodeImagePath($this->cpm->getImageToUse($data['pFilepath'],$data['pFilename'])) . '<img src="' . $this->fullUrlToCpm
. $this->cpm->urlEncodeImagePath($this->cpm->getImageToUse($data['pFilepath'],$data['pFilename'], $this->thumbnailprefix)) . '"/></a>';
$descriptionToUse = $imagetag . $descriptionToUse;
$item->title = $titleToUse;
$item->description = $descriptionToUse;
$item->date = date("r",$data['pCtime']);
$item->source = $this->fullUrlToCpm;
$item->author = $data['pOwner_name'];
$this->rss->addItem($item);
}
}
} // end of class
?>