Difference between revisions of "Template:Mainpage-rssfeeds"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
(Usage:)
Line 32: Line 32:
 
{|
 
{|
 
|-
 
|-
||charset=...   ||         The charset used by the feed. iconv is used to convert this.
+
|| <tt>charset = ...</tt>            ||The charset used by the feed. iconv is used to convert this.
 
|-
 
|-
|| short         ||         Do not show the description text for each news item.
+
|| <tt>short</tt>                  ||Do not show the description text for each news item.
 
|-
 
|-
|| max=x         ||         Shows x most recent headlines.
+
|| <tt>max = x</tt>                  ||Shows x most recent headlines.
 
|-
 
|-
|| highlight= term1 term2 || The terms separated by a space are highlighted.
+
|| <tt>highlight = term1 term2</tt>  ||The terms separated by a space are highlighted.
 
|-
 
|-
|| filter= term1 term2    ||Show only rss items containing at least one of the terms.
+
|| <tt>filter = term1 term2</tt>     ||Show only rss items containing at least one of the terms.
 
|-
 
|-
|| reverse                ||display the rss items in reverse order.
+
|| <tt>reverse</tt>                 ||display the rss items in reverse order.
 
|-
 
|-
|| title=x                ||display an alternative title instead of chanel name.
+
|| <tt>title = x</tt>                 ||display an alternative title instead of chanel name.
 
|-
 
|-
|| title = none            ||dont display any title.
+
|| <tt>title = none</tt>           ||dont display any title.
 
|}
 
|}
  
 
===Example:===  
 
===Example:===  
<nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki>
+
<tt><nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki></tt>
  
 
<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
 
<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
  
<pre><nowiki>
 
  
 
===rss.php===  
 
===rss.php===  
 
+
<pre><nowiki>
 
<?php
 
<?php
 
# RSS-Feed Mediawiki extension
 
# RSS-Feed Mediawiki extension

Revision as of 16:31, 29 July 2006

UNIQ39f40e107551c4d9-rss-00000000-QINU UNIQ39f40e107551c4d9-rss-00000001-QINU

GISWiki/RSS

Uses an extension from: http://meta.wikimedia.org/wiki/GISWiki/RSS

RSS-Feed Mediawiki extension

  • original by mutante 25.03.2005
  • extended by Duesentrieb 30.04.2005
  • extended by Rdb78 07.07.2005
  • extended by Mafs 10.07.2005, 24.07.2005
  • extended by User:Arcy 07.09.2005
  • Updated for MediaWiki 1.6 by User:piku 13.06.2006
  • Update for Wikicode output, by User:cogdog 14.jul.2006

Requires:

Installation:

  • put this file (rss.php) into the extension directory of your mediawiki installation
  • add the following to the end of LocalSettings.php: include("extensions/rss.php");
  • make sure magpie can be found by PHP.

Usage:

Use one section between <rss>-tags for each feed. The rss section may contain parameters separated by a pipe ("|"), just like links and templates. These parameters are supported:

charset = ... The charset used by the feed. iconv is used to convert this.
short Do not show the description text for each news item.
max = x Shows x most recent headlines.
highlight = term1 term2 The terms separated by a space are highlighted.
filter = term1 term2 Show only rss items containing at least one of the terms.
reverse display the rss items in reverse order.
title = x display an alternative title instead of chanel name.
title = none dont display any title.

Example:

<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>

Ask Slashdot: Aging and Orphan Open Source Projects?

Wed, 22 Oct 2014 09:12:00

osage writes: Several colleagues and I have worked on an open source project for over 20 years under a corporate aegis. Though nothing like Apache, we have a sizable user community and the software is considered one of the de facto standards for what it does. The problem is that we have never been able to attract new, younger programmers, and members of the original set have been forced to find jobs elsewhere or are close to retirement. The corporation has no interest in supporting the software. Thus, in the near future, the project will lose its web site host and be devoid of its developers and maintainers. Our initial attempts to find someone to adopt the software haven't worked. We are looking for suggestions as to what course to pursue. We can't be the only open source project in this position.

Share on Google+

Read more of this story at Slashdot.








First Evidence of Extrasolar Planets Discovered In 1917

Wed, 22 Oct 2014 06:12:00

KentuckyFC writes: Earth's closest white dwarf is called van Maanen 2 and sits 14 light-years from here. It was discovered by the Dutch astronomer Adriaan van Maanen in 1917, but it was initially hard to classify. That's because its spectra contains lots of heavy elements alongside hydrogen and helium, the usual components of a white dwarf photosphere. In recent years, astronomers have discovered many white dwarfs with similar spectra and shown that the heavy elements come from asteroids raining down onto the surface of the stars. It turns out that all these white dwarfs are orbited by a large planet and an asteroid belt. As the planet orbits, it perturbs the rocky belt, causing asteroids to collide and spiral in toward their parent star. This process is so common that astronomers now use the heavy element spectra as a marker for the presence of extrasolar planets. A re-analysis of van Maanen's work shows that, in hindsight, he was the first to discover the tell-tale signature of extrasolar planets almost a century ago.

Share on Google+

Read more of this story at Slashdot.








Internet Broadband Through High-altitude Drones

Wed, 22 Oct 2014 04:16:00

mwagner writes: Skynet is coming. But not like in the movie: The future of communications is high-altitude solar-powered drones, flying 13 miles above the ground, running microwave wireless equipment, delivering broadband to the whole planet. The articles predicts this technology will replace satellites, fiber, and copper, and fundamentally change the broadband industry. The author predicts a timescale of roughly 20 years — the same amount of time between Arthur C. Clarke predicting geosynchronous satellites and their reality as a commercial business. "Several important technology milestones need to be reached along the way. The drones that will make up Skynet have a lot more in common with satellites than the flippy-flappy helicopter drone thingies that the popular press is fixated on right now. They're really effing BIG, for one thing. And, like satellites, they go up, and stay up, pretty much indefinitely. For that to happen, we need two things: lighter, higher-capacity wireless gear; and reliable, hyper-efficient solar tech."

Share on Google+

Read more of this story at Slashdot.








Isaac Asimov: How Do People Get New Ideas?

Wed, 22 Oct 2014 02:13:00

HughPickens.com writes: Arthur Obermayer, a friend of the Isaac Asimov, writes that he recently rediscovered an unpublished essay by Asimov written in 1959 while cleaning out some old files. Obermayer says it is "as broadly relevant today as when he wrote it. It describes not only the creative process and the nature of creative people but also the kind of environment that promotes creativity." Here's an excerpt from Asimov's essay, which is well worth reading in its entirety: "A person willing to fly in the face of reason, authority, and common sense must be a person of considerable self-assurance. Since he occurs only rarely, he must seem eccentric (in at least that respect) to the rest of us. A person eccentric in one respect is often eccentric in others. Probably more inhibiting than anything else is a feeling of responsibility. The great ideas of the ages have come from people who weren't paid to have great ideas, but were paid to be teachers or patent clerks or petty officials, or were not paid at all. The great ideas came as side issues."

Share on Google+

Read more of this story at Slashdot.








Fiber Optics In Antarctica Will Monitor Ice Sheet Melting

Wed, 22 Oct 2014 00:06:00

sciencehabit writes: Earth is rapidly being wired with fiber-optic cables — inexpensive, flexible strands of silicon dioxide that have revolutionized telecommunications. They've already crisscrossed the planet's oceans, linking every continent but one: Antarctica. Now, fiber optics has arrived at the continent, but to measure ice sheet temperatures rather than carry telecommunication signals. A team of scientists using an innovative fiber-optic cable–based technology has measured temperature changes within and below the ice over 14 months. This technology, they say, offers a powerful new tool to observe and quantify melting at the base of the West Antarctic Ice Sheet.

Share on Google+

Read more of this story at Slashdot.









rss.php

<?php
# RSS-Feed Mediawiki extension
# 
# original by mutante 25.03.2005
# extended by Duesentrieb 30.04.2005
# extended by Rdb78 07.07.2005
# extended by Mafs  10.07.2005, 24.07.2005
# extended by User:Arcy  07.09.2005
# Updated for MediaWiki 1.6 by User:piku 13.06.2006
# Update for Wikicode output, by User:cogdog 14.jul.2006
#
# Requires: 
#  * magpie rss parser <http://magpierss.sourceforge.net/>
#  * iconv <http://www.gnu.org/software/libiconv/>, see also <http://www.php.net/iconv>
#
# Installation:
#  * put this file (rss.php) into the extension directory of your mediawiki installation 
#  * add the following to the end of LocalSettings.php: include("extensions/rss.php");
#  * make sure magpie can be found by PHP.
#
# Usage:
#  Use one section between <rss>-tags for each feed. The rss section may contain parameters
#  separated by a pipe ("|"), just like links and templates. These parameters are supported:
#
#    * charset=...             The charset used by the feed. iconv is used to convert this.
#    * short                   Do not show the description text for each news item.
#    * max=x                   Shows x most recent headlines.
#    * highlight= term1 term2  The terms separated by a space are highlighted.
#    * filter= term1 term2     Show only rss items containing at least one of the terms.
#    * reverse                 display the rss items in reverse order.
#    * title=x                 display an alternative title instead of chanel name.
#    * title = none            dont display any title.
#
# Example: 
#    <rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
#

#change this according to your magpie installation!
require_once('rss_fetch.inc'); 

#install extension hook
$wgExtensionFunctions[] = "wfRssExtension"; 

#extension hook callback function
function wfRssExtension() { 
  global $wgParser;

  #install parser hook for <rss> tags
  $wgParser->setHook( "rss", "renderRss" );
}

#parser hook callback function
function renderRss($input, $argv, $parser = null) {
  if (!$parser) $parser =& $GLOBALS['wgParser'];
  global $wgOutputEncoding;

  $DefaultEncoding = "ISO-8859-1";
  $DisableCache = true;

  # $input = mysql_escape_string($input);

  if (!$input) return ""; #if <rss>-section is empty, return nothing

  #parse fields in rss-section
  $fields= explode("|",$input);
  $url= @$fields[0];

  $args= array();
  for ($i=1; $i<sizeof($fields); $i++) {
    $f= $fields[$i];

    if (strpos($f,"=")===False) $args[strtolower(trim($f))]= False;
    else {
      list($k,$v)= explode("=",$f,2);
      if (trim($v)==False) $args[strtolower(trim($k))] = False; 
      else $args[strtolower(trim($k))]= trim($v);
    }
  }

  #get charset from argument-array    
  $charset= @$args["charset"];
  if (!$charset) $charset= $DefaultEncoding;

  #get max number of headlines from argument-array
  $maxheads = @$args["max"];
  $headcnt = 0;

  #get short-flag from argument-array
  #if short is set, no description text is printed
  if (isset($args["short"])) $short = True; else $short = False;

  #get reverse-flag from argument-array
  if (isset($args["reverse"])) $reverse = True; else $reverse = False;

  #get highlight terms from argument-array    
  $rssHighlight= @$args["highlight"];
  $rssHighlight= str_replace("  "," ", $rssHighlight);
  $rssHighlight= explode(" ", trim($rssHighlight));

  #get filter terms from argument-array    
  $rssFilter= @$args["filter"];
  $rssFilter= str_replace("  "," ", $rssFilter);
  $rssFilter= explode(" ", trim($rssFilter));    

  #fetch rss. may be cached locally.
  #Refer to the documentation of magpie for details.
  $rss = @fetch_rss($url);


  #check for errors.
  if ($rss->ERROR) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url: ".$rss->ERROR."</div>"; #localize...
  }

  if (!is_array($rss->items)) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url!</div>"; #localize...
  }

  #Bild title line    
  #get title from argument-array    
  
  $rssTitle= @$args["title"];
  $rssTitle= trim($rssTitle);

  if ($rssTitle !=='none') {
    if ($rssTitle=='') {
        $title= iconv($charset,$wgOutputEncoding,$rss->channel['title']);
        if ($rss->channel['link']) $title= "[".$rss->channel['link']." $title]";
        $output = "=== $title ===\n";
    }
    else
    {
      $title= "[".$rss->channel['link']." $rssTitle]";
      $output="=== $title ===\n";
    }
  } else {
      $output="\n\n\n";
  }
  
  if ($reverse) $rss->items = array_reverse($rss->items);

  $description = False; 
  foreach ($rss->items as $item) {
      if ($item['description']) {$description = True; break;}
  }

  #Bild items
  if (!$short and $description) { #full item list

    $output.="";
    foreach ($rss->items as $item) {

      $d_text = true;
      $d_title = true;

      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

      $d_title = wfRssFilter ($title, $rssFilter);
      $title= wfRssHighlight($title, $rssHighlight);

      #bild description text if desired
      if ($item["description"]) {
        $text= trim(iconv($charset,$wgOutputEncoding,$item['description']));

        #avoid pre-tags
        $text= str_replace("\r"," ",$text);
        $text= str_replace("\n"," ",$text);
        $text= str_replace("\t"," ",$text);

        $d_text = wfRssFilter ($text, $rssFilter);
        $text= wfRssHighlight($text, $rssHighlight);

        $display = $d_text or $d_title;

      }
        else   {
          $text = "";
          $display = $d_title;
        }       

      if ($display) {
        $output.="* [$href $title]";
        if ($text) $output.="<br>$text";
        $output .= "\n";
      }

    #Cut off output when maxheads is reached:
    if (++$headcnt == $maxheads)  break;

    }
    # $output.="</dl>";
  }
  else { #short item list
   #  $output.="<ul>";
    foreach ($rss->items as $item) {
      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

        $d_title = wfRssFilter ($title, $rssFilter);
        $title= wfRssHighlight($title, $rssHighlight);

        if ($d_title ) $output.="* [$href $title]\n";

      #Cut off output when maxheads is reached:
      if (++$headcnt == $maxheads)  break;
    }
    # $output.="</ul>";
  }


  if ($DisableCache) {

    global $wgVersion;

    # Do not cache this wiki page.
    # for details see http://public.kitware.com/Wiki/User:Barre/MediaWiki/Extensions
    global $wgTitle, $wgDBprefix;
    $ts = mktime();
    $now = gmdate("YmdHis", $ts + 120);
    $ns = $wgTitle->getNamespace();
    $ti = wfStrencode($wgTitle->getDBkey());

    $version = preg_replace("/^([1-9]).([1-9]).*/", "\\1\\2", $wgVersion);
    if ($version>14) $sql = "UPDATE $wgDBprefix"."page SET page_touched='$now' WHERE page_namespace=$ns AND page_title='$ti'";
    else             $sql = "UPDATE $wgDBprefix"."cur SET cur_touched='$now' WHERE cur_namespace=$ns AND cur_title='$ti'";

    wfQuery($sql, DB_WRITE, "");
  }

  $out = $parser->parse ($output, $parser->mTitle,$parser->mOptions, true, false);
  return $out->getText();
}


function wfRssFilter ($text, $rssFilter) {

  $display = true;

  if (is_array($rssFilter)) {
    foreach($rssFilter as $term) {

      if ($term) {
        $display = false;
        if (preg_match("|$term|i", $text, $a))  {  $display = true; return $display; }
      }
    if ($display) break;
    }
  }
  return $display;
}


function wfRssHighlight($text, $rssHighlight) {

  $i=0;
  $starttag = "v8x5u3t3u8h";
  $endtag   = "q8n4f6n4n4x";

  $color[]="coral";
  $color[]="greenyellow";
  $color[]="lightskyblue";
  $color[]="gold";
  $color[]="violet";

  $count_color = count($color);

  if (is_array($rssHighlight)) {
    foreach($rssHighlight as $term) {
      if ($term) {
        $text = preg_replace("|\b(\w*?".$term."\w*?)\b|i", "$starttag"."_".$i."\\1$endtag", $text);
        $i++;
        if ($i == $count_color) $i=0;
        }
      }
    }
  # to avoid trouble should someone wants to highlight the terms "span", "style", ...
  for ($i=0; $i<5; $i++) {
    $text = preg_replace("|$starttag"."_".$i."|", "<span style=\"background-color:".$color[$i]."; font-weight: bold;\">", $text);
    $text = preg_replace("|$endtag|", "</span>", $text);
    }

  return $text;
}

?>