Customizing SMF > Tips and Tricks

Getting the Most Out of SMF - XML, RSS and RSS2 (and Atom and RDF) feeds

(1/100) > >>

Oldiesmann:
One of the best features in SMF is its news feeds. However, many people aren't aware of how many options there are, or that this is even available. So, here's a list of available options and what they do...

First, make sure you've enabled the feeds:

Admin -> News and Newsletters -> Settings
Check the box next to "Enable XML/RSS News".
The "Maximum post length" value determines how many characters of a post are output in the feeds. The default value (255) is fine for now


Now, on to the fun stuff.

All of the XML content is accessed via the ".xml" action...
Other formats can be achieved by adding one of the following to the URL:
;type=atom - Atom
;type=rdf - RDF
;type=rss - RSS 0.91
;type=rss2 - RSS 2.0

The default feed is the 5 most recent posts:
http://www.simplemachines.org/community/index.php?action=.xml

There are several "sub-actions" available to this action, specifying exactly what to display:

Recent Posts (displays the most recent posts that you can see)
"Sub-action": recent
Default: Shows 5 most recent posts
Available options:
limit=x - display the "x" most recent posts (if number is less than 5, it will display 5. If number is larger than 255, it will display 255).
board=y - display only the recent posts from board "y"
boards=x,y,z - display only the recent posts from the specified boards
c=x or c=x,y,z - display only the recent posts from boards in the specified category/categories
Example: http://www.simplemachines.org/community/index.php?action=.xml;sa=recent;board=72;limit=10

News (displays the first post from the most recent topics that you can see)
"Sub-action": news
Available options:
limit=x - display only "x" items
board=y - display only news topics from board "y"
boards=x,y,z - display only news topics from the specified boards
c=x or c=x,y,z - display only news topics from boards in the specified category/categories
Example: http://www.simplemachines.org/community/index.php?action=.xml;sa=news;board=72;limit=10

Members (displays most recent members):
"Sub-action": members
Available options:
limit=x - display only the "x" most recent members
Example: http://www.simplemachines.org/community/index.php?action=.xml;sa=members;limit=10

Profile (displays the "profile summary" data in a nice XML feed for the specified user)
"Sub-action": profile
Required option:
u=x - display the profile info for user whose ID is "x"
Example: http://www.simplemachines.org/community/index.php?action=.xml;sa=profile;u=150

Now - you're probably wondering what you can do with this. Quite a bit actually.

You can syndicate this stuff by giving people these URLs to use on their sites (they will need to have their own RSS parser to deal with it though - CaRP is a good free one (requires PHP)). You can also use PHP's XML Parser Functions to format the output the way you want it (although you can also do this using SSI.php). There are also several free sites that will parse the feeds for you, including www.rss2javascript.com and www.feedburner.com.

You can also subscribe to these feeds through an XML reader, Firefox, Thunderbird or any other software that supports XML or RSS feeds (note - Outlook and Outlook Express do not support this...) - you will need to have either "type=rss" or "type=rss2" somewhere in the URL for it to work. If you would like to know how to set this up in Firefox or Thunderbird, let me know. Enjoy!

EDIT: Updated post to reflect options available in 1.1.
EDIT again: Fixed typo (";type=rss - RSS 2.0" -> ";type=rss2 - RSS 2.0" - thanks to Sarge for pointing that out)

johnm:
thanks for that it really helped

and its so simple!

bjp:
I have done what you say but i have tis erreor :

La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.


--------------------------------------------------------------------------------

I also ad this :
   // If RSS/XML news is enabled, indicate that an RSS feed is available
   if (!empty($modSettings['xmlnews_enable']))
      echo '
      <link rel="alternate" type="application/rss+xml" title="RSS" href="', $scripturl, '?type=rss;action=.xml;limit=20" />';

Référence à l'entité non définie 'agrave'. Erreur de traitement de la ressource http://www.forum-asie.com/smf/index.php?act...

  <time>29 Janvier 2005 &agrave; 16:37:11</time>
-------------------------^
 
http://www.forum-asie.com/smf/index.php?action=.xml;sa=members;limit=10

[Unknown]:
Instead of using "&agrave;" in your time format, use the entity code - I don't remember what it is, off hand, though.

-[Unknown]

Tangent:
Instead of resent posts is there a way to get the same results as "Show unread posts since last visit.". I can't just set action =unread which was my first thought. sa=unread gives me something different, seems that posts are grouped by thread. I'm not sure what sa is even though.

anyway help would be cool thanks.

Navigation

[0] Message Index

[#] Next page

Go to full version