Juste une petite vidéo expliquant comment Firefox 3 révolutionne la gestion des bookmarks... ça c'est le genre de trucs que j'adore et que je sens que je vais utiliser...
Tags:
###Extension wikicalc##
require_once("$IP/extensions/wikicalc.php");
/**
*
*
*
* SYNOPSIS
*
* <include src="[URL]" [important] [color="[r,v,b]"] />
*
* INSTALL
*
* Placer ce script dans le dossier 'extensions' de mediawiki :
* "$IP/extensions/wikicalc.php"
* o˘ $IP est le chemin d'installation de MediaWiki.
* Ensuite, ajouter cette ligne dans LocalSettings.php:
* require_once("$IP/extensions/wikicalc.php");
*
* DESCRIPTION
*
* Cette extension vous permet d'inclure une feuille de calcul wikicalc dans
* une page mediawiki.
*
* ATTRIBUTES
*
* La balisedoit toujours avoir au moins un attribut 'src'.
*
* src="[URL]"
* Vous devez inclure 'src' pour indiquer l'URL de la feuille de calcul html.
*
* important
* Seulement les lignes contenant des cellules rouges seront affichées.
*
* color="[r,v,b]"
* Seulement les lignes contenant des cellules de la couleur indiquée seront
* affichÈes.
* Remarque : color="255,0,0" est équivalent au tag 'important'
*/
$wgExtensionFunctions[] = "wf_wikicalc"; $wgExtensionCredits['other'][] = array (
'name' => 'wikicalc',
'author' => 'Matthieu',
'url' => 'yenapa',
'description' => 'Permet d\'inclure une page html distante crÈÈe par wikicalc.',
)
function wf_wikicalc() {
global $wgParser;
$wgParser->setHook( "wikicalc", "render_wikicalc" );
}
/**
* parse_color
*
* retire les lignes (...) contenant des cellules de la couleur $color
*
* $color est une chaine de caractères de la forme "r,v,b" où r,v,b sont des
* entiers entre 0 et 255.
* Par ex : "255,0,0" pour le rouge
*
*/
function parse_color( $table, $style, $color ) { // on recherche le nom des classes css qui correspondent à la bonne couleur de fond. preg_match_all("/\.(s[\d]+) \{[^\}]*background-color:rgb\(".$color."\)[^\}]*}/s", $style, $css_matches, PREG_SET_ORDER);
$tr = "";
// on utilise "/pattern/s" pour éviter le pb des retours à la ligne. // le "?" permet d'inverser la 'greediness' de la regex. preg_match_all("/.*?<\/tr>/s", $table, $tr_matches, PREG_SET_ORDER); foreach ($tr_matches as $tr_tmp) {
foreach ($css_matches as $css_tmp) {
if ( ereg ('(.*)', $tr_tmp[0])) { $tr .= $tr_tmp[0]; } } }
return preg_replace("/.*&<\/tr>/s", $tr, $table); }
/**
* render_wikicalc
*
* This is called automatically by the MediaWiki parser extension system.
* This does the work of loading a file and returning the text content.
* $argv is an associative array of arguments passed in thetag as
* attributes.
*
* @param mixed $input unused
* @param mixed $argv associative array
* @param mixed $parser unused
* @access public
* @return string
*/
function render_wikicalc ( $input , $argv, &$parser )
{
if ( ! isset($argv['src']))
return "ERROR:tag is missing 'src' attribute.";
$output=file_get_contents($argv['src']);
if ($output === False)
return "ERROR: include could not read the given src URL.";
if (ereg ("()", $output, $table_reg)) {
$table = $table_reg[1];
} else {
echo "erreur";
}
if (ereg ("()", $output, $style_reg)) {
$style = $style_reg[1];
$style = ereg_replace("body[^\}]*}", "", $style);
} else {
echo "erreur ';
$purge = '[[{{fullurl:{{FULLPAGENAME}}|action=purge}} {{{1|Actualiser}}}]]';
$parsedText = $parser->parse($purge, $parser->mTitle, $parser->mOptions, false, false);
$purge = $parsedText->getText();
return $style2.$style.'';
'.$purge.$edit.' '.$table.'
}
?>
apt-get install apache2 libapache2-mod-perl2Puis de télécharger les sources : wikicalc-1-0.tar.gz. Ensuite peut commencer l'installation proprement dite :
cd /var/www
tar xvzf wikicalc-1-0.tar.gz
ln -s wikicalc-1-0 wikicalc
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/wikicalc/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/wikicalc/>
Options Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi .pl
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
On charge le module perl :
a2enmod perl
/etc/init.d/apache2 restart