Template:Mainpage-rssfeeds
From NAS-Central Buffalo - The Linkstation Wiki
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:
- 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>
European Commission Launches $12 Billion Chip Support Campaign
Sat, 25 May 2013 09:31:00
An anonymous reader writes "Neelie Kroes, European Commission vice president responsible for the digital economy, wants to use 5 billion euros of European Union tax payers' money, together with matching funds from the chip industry, to recreate European success in semiconductors similar to that of Airbus. Because of its strategic importance to wealth creation Kroes wants Europe to reverse its decline in chip manufacturing and move back up from 10 percent to 20 percent of global production."
Read more of this story at Slashdot.
Scanner Identifies Malware Strains, Could Be Future of AV
Sat, 25 May 2013 06:37:00
An anonymous reader writes "When it comes to spotting malware, signature-based detection, heuristics and cloud-based recognition and information sharing used by many antivirus solutions today work well up a certain point, but the polymorphic malware still gives them a run for their money. At the annual AusCert conference held this week in Australia a doctorate candidate from Deakin University in Melbourne has presented the result of his research and work that just might be the solution to this problem. Security researcher Silvio Cesare had noticed that malware code consists of small "structures" that remain the same even after moderate changes to its code. He created Simseer, a free online service that performs automated analysis on submitted malware samples and tells and shows you just how similar they are to other submitted specimens. It scores the similarity between malware (any kind of software, really), and it charts the results and visualizes program relationships as an evolutionary tree."
Read more of this story at Slashdot.
AMD Launches New Mobile APU Lineup, Kabini Gets Tested
Sat, 25 May 2013 03:40:00
An anonymous reader writes "While everyone was glued to the Xbox One announcement, Nvidia GeForce GTX 780 launch", and Intel's pre-Haswell frenzy, it seems that AMD's launch was overlooked. On Wednesday, AMD launched it's latest line of mobile APUs, codenamed Temash, Kabini, and Richland. Temash is targeted towards smaller touchscreen-based devices such as tablets and the various Windows 8 hybrid devices, and comes in dual-core A4 and A6 flavors. Kabini chips are intended for the low-end notebook market, and come in quad-core A4 and A6 models along with a dual-core E2. Richland includes quad-core A8 and A10 models, and is meant for higher-end notebooks — MSI is already on-board for the A10-5750M in their GX series of gaming notebooks . All three new APUs feature AMD HD 8000-series graphics. Tom's Hardware got a prototype notebook featuring the new quad-core A4-5000 with Radeon HD 8300 graphics, and benchmarked it versus a Pentium B960-based Acer Aspire V3 and a Core-i3-based HP Pavillion Sleekbook 15. While Kabini proves more efficient, and features more powerful graphics than the Pentium, it comes up short in CPU-heavy tasks. What's more, the Core-i3 matches the A4-5000 in power efficiency while its HD 4000 graphics completely outpace the APU."
Read more of this story at Slashdot.
How To Hack Twitter's Two-Factor Authentication
Sat, 25 May 2013 00:51:00
An anonymous reader writes with this excerpt from PC Mag's SecurityWatch: "We've pointed out some problems with Twitter's new two-factor authentication. For example, since just one phone number can be associated with an account, Twitter's two-factor authentication won't work for organizations like the Associated Press, The Onion, or The Guardian. They were hacked; they could still be hacked again in the same way. However, security experts indicate that the problem is worse than that, a lot worse."
Read more of this story at Slashdot.
African Soil Mapped For the Very First Time
Fri, 24 May 2013 23:50:00
vikingpower writes "A team of international experts has drawn up the Soil Atlas of Africa — the first such book mapping this key natural resource — to help farmers, land managers and policymakers understand the diversity and importance of soil and the need to manage it through sustainable use. A joint commission of the African Union and the European Union has produced a complete atlas of African soils, downloadable as 3 hefty PDFs ( Part 1, Part 2 and Part 3. ) The initiative was announced four years ago, and is intended 'to help farmers, land managers and policymakers understand the diversity and importance of soil and the need to manage it through sustainable use.' A digital, interactive series of maps is (still) in the making."
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;
}
?>

