Difference between revisions of "Extension:SimpleRSS.php"

From Organic Design wiki
(Allow Ajax Dispatcher to call wfRenderRSS)
Line 58: Line 58:
 
# Called from $wgExtensionFunctions array when initialising extensions
 
# Called from $wgExtensionFunctions array when initialising extensions
 
function wfSetupRobsRSS() {
 
function wfSetupRobsRSS() {
global $wgParser;
+
global $wgParser,$wgRSSUseAjax,$wgAjaxExportList;
 
$wgParser->setHook($wgRobsRSSTag,array($this,'wfRssTagHook'));
 
$wgParser->setHook($wgRobsRSSTag,array($this,'wfRssTagHook'));
 +
if ($wgRSSUseAjax) $wgAjaxExportList[] = 'wfRenderRSS'; # Allow Ajax Dispatcher to call wfRenderRSS
 
}
 
}
 
?>
 
?>

Revision as of 01:59, 14 October 2007

<?php

  1. Extension:RobsRSS
Info.svg These are the MediaWiki extensions we're using and/or developing. Please refer to the information on the mediawiki.org wiki for installation and usage details. Extensions here which have no corresponding mediawiki article are either not ready for use or have been superseded. You can also browse our extension code in our local Subversion repository or our GitHub mirror.

Template:Php

  1. - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
  2. - Author: User:RobCategory:Extensions created with Template:Extension

if (!defined('MEDIAWIKI')) die('Not an entry point.');

define('ROBSRSS_VERSION','0.0.0, 2007-10-14');

$wgRobsRSSTag = "rss"; $wgRSSUseAjax = true; $wgExtensionFunctions[] = 'wfSetupRobsRSS'; $wgExtensionCredits['taghook'][] = array( 'name' => 'RobsRSS', 'author' => 'User:Rob', 'description' => 'A dynamic aggregating RSS reader', 'url' => 'http://www.mediawiki.org/wiki/Extension:RobsRSS', 'version' => ROBSRSS_VERSION );

  1. Expand an <rss> tag

function wfRssTagHook($text,$argv,&$parser) { global $wgRSSUseAjax; $args = ;

foreach ($argv as $k => $v) $args .= "

  • $k: $v
  • \n";

    if ($wgRSSUseAjax) { # Render a container which does ajax requests for content

    $html = "

    an ajax thingie

    ";

    } else { # Not using ajax, render the output now $html = wfRenderRSS($data,$timestamp); }

    return $html; }

    1. Read RSS from URL's and return as some kind of useful runtime structure

    function wfReadRSS($urls) { $data = array(); foreach ($urls as $url) { $doc = new DOMDocument(); # do some cache stuff here $doc->load($url); foreach ($dom->getElementsByTagName('tagname') as $element) { $att = $element->getAttribute('attname'); } } return $data; }

    1. Render a portion of RSS data (which is in the useful format returned vy wfReadRSS)

    function wfRenderRSS($data,$timestamp = false) { return $html; }

    1. Called from $wgExtensionFunctions array when initialising extensions

    function wfSetupRobsRSS() { global $wgParser,$wgRSSUseAjax,$wgAjaxExportList; $wgParser->setHook($wgRobsRSSTag,array($this,'wfRssTagHook')); if ($wgRSSUseAjax) $wgAjaxExportList[] = 'wfRenderRSS'; # Allow Ajax Dispatcher to call wfRenderRSS } ?>