Template:Mainpage-rssfeeds
From NAS-Central Buffalo - The Linkstation Wiki
m |
(→RSS-Feed Mediawiki extension) |
||
| Line 7: | Line 7: | ||
http://meta.wikimedia.org/wiki/GISWiki/RSS | http://meta.wikimedia.org/wiki/GISWiki/RSS | ||
| + | __NOTOC__ | ||
==RSS-Feed Mediawiki extension== | ==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 <nowiki><rss>-tags for each feed. The rss section may contain parameters | ||
| + | separated by a pipe ("|"), just like links and templates. These parameters are supported: | ||
| + | </nowiki> | ||
| + | |||
| + | * 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:=== | ||
| + | <nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki> | ||
| + | |||
| + | <rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss> | ||
| + | |||
<pre><nowiki> | <pre><nowiki> | ||
Revision as of 16:20, 29 July 2006
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>
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.
BeagleBone Black Ships With New Linux 3.8 Kernel
Fri, 24 May 2013 23:25:00
DeviceGuru writes "BeagleBoard.org has begun shipping its faster, cheaper BeagleBone Black SBC with a new Linux 3.8 kernel, supporting Device Tree technology for more streamlined ARM development. The $45 BeagleBone Black runs Linux or Android on a 1GHz TI Sitara AM3359 SOC, doubles the RAM to 512MB of its predecessor, and adds a micro-HDMI port. The updated kernel gives the BeagleBone Black access to a new Direct Rendering Manager (DRM) display driver architecture, as well as full support for the Device Tree data structure introduced to streamline ARM development in Linux 3.7. The project was hesitant to move up to such a recent kernel, but decided it was time to bite the bullet and support the Device Tree. By doing the hard work of switching to Device Tree now, BeagleBoard.org and its developer community can save a lot of configuration and maintenance headaches down the line, says BeagleBoard.org co-founder Jason Kridner. Fortunately, a modified 3.2 kernel 'coming soon' should provide the necessary bridge from the old cape driver architecture to the new one."
Read more of this story at Slashdot.
Google Releases Glass Factory System Image, Rooted Bootloader
Fri, 24 May 2013 22:44:00
Krystalo writes "In a nod towards the modding community and hackers in general, Google has released the first factory system image and rooted bootloader for the latest version, XE5, of Google Glass. Nevertheless, the company is at the same time warning that using these downloads will result in a voided warranty for the experimental device."
Read more of this story at Slashdot.
<?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;
}
?>

