DeeEmm

Pragmatism in code

Waxing lyrical about life the universe and everything software related since lunchtime 2006.

Dophin X-Site RSS Feed Bouncer

Using Boonex Dolphin software can be a bit taxing on your patience, there are many idiosynchracy's that alter the way that Dolphin works from how you would expect most 'normal' scripts to function. One of these is the way that it displays forum posts within groups, blogs and on the main page.

Like many sites, forum posts are aggregated in RSS feeds, different feeds are available for different users, groups, forums and categories. The feeds are available to anyone who wants to view them. Unfortunately Boonex have decided that they should use the same feeds to aggregate data within the site, whilst this may seem like a great idea on the outside, it does however introduce problems on some servers.

So you have installed Dolphin and are now stuckk looking at te spinning icon that tells you the latest forums posts are loading.. and loading... and loading. In fact it seems that they will never load.

This can be one of two things.

allow_url_fopen is not enabled on your server. This can be enabled via php.ini if your server allows php.ini at runtime. (php.ini within local directories)

or...

If allow_url_open is enabled, then it is likely that your host does not allow circular references - ie you cannot call your domain url from within your domain in an fopen transaction. My host is setup like this - they refuse to change it claiming security as a reason, I think it's because they are missing the reference to my domain in their hosts file and are too dumb to be able to fix it - but that's besides the point. (Host - if you are reading this - please fix this issue.)

You can test this by posting the RSS feed URL directly into your browser, if it works the problem is most likely because your host is preventing loopback URL's - ie won't allow local scripts to access the fully qualified name.

Eg the URL for your RSS feed will be something like http://yoursite.com/inc/classes/BxRSS.php?your-rss-info but your host will not allow you to call http://yoursite.com from within your server (if that makes sense).

The usual solution is to use relative paths instead ie ../../inc/classes/BxRSS.php?your-rss-info but the htaccess url rewrite for pretty urls mucks these up (or it needs an entry to handle local paths added).

I also have this problem and it's a tad annoying that they should process local feeds this way. But life sucks and I'm used to it.

There is however half a solution - this is to aggregate your feeds on another site by using a script and then call this script instead. I say half a solution as this does not account for user verification and so cannot access feeds for hidden groups etc. But the hidden groups degrade nicely - there is simply nothing shown, and the link to the forums still appears.

There was a post over at Boonex that outlined one solution you could use, including a script. The script was quite large and did not solve the verification issue. I decided to see if I could improve on this and ended up with the following. Simply paste the following into a text file and name it feedbouncer.php then save it to a different server from your Dolphin site

echo (readfile($_GET['feed']));
?>

Then - making a note of the RSS feed's URL that you require in the admin panel of Dolphin, it will be something like -

http://yoursite.com/inc/classes/BxRSS.php?your-rss-info

Simply replace it with the following (replace the urls with those that you require)

http://your-different-site.com/path-to/feedbouncer.php?feed=http://yoursite.com/inc/classes/BxRSS.php?your-rss-info

In essence it just echo's back the url. (You can test it by typing the url directly into your browser)

Simple huh? :)

Be aware that this may / may not work depending on the settings of the second server

It is worth noting that you can also use this script to perform further actions on the feed - I have used this on other sites to harvest feeds, pages and add / filter data. This can be easily done by loading the feed or page into a variable and then editing it using basic text manipulation techniques such as string replace.

ie -

$feed = readfile($_GET['feed']);
$new_feed = str_replace('old text', 'new text', $feed);
echo $new_feed

This can be expanded much much further using more complex manipulation techniques such as regular expressions. Some stuff I have written before using these techniques include ebay harvesters, weather harvesters, news feed harvesters, even automatic translators. the techniques is always the same - read the page into a string, manipulate the string, use / echo the result.

DM

UEX Ultraedit For Linux
Coda - Web Code The Mac Way

Related Posts

 

Comments

No comments made yet. Be the first to submit a comment
Already Registered? Login Here
Guest
Sunday, 17 December 2017
If you'd like to register, please fill in the username, password and name fields.

Captcha Image