coppermine-gallery.com/forum

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

Title: rss feed of one album...
Post by: nolageek on January 17, 2007, 07:23:41 PM
Is it possible to just get an rss feed of one album?
Title: Re: rss feed of one album...
Post by: vuud on January 18, 2007, 03:56:29 AM
Quote from: nolageek on January 17, 2007, 07:23:41 PM
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




Title: Re: rss feed of one album...
Post by: nolageek on January 18, 2007, 10:06:56 PM
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


?>