Wikilengua:Extensiones
Wikilengua
Orden de los cuadros
Para que el orden sea el correcto en los cuadros, se ha redefinido una función de JavaScript (ver código).
Enlaces con conversión a mayúscula
Es bastante sencillo y se basa en una expresión regular y el hook InternalParseBeforeLinks.
<?php
if (!defined('MEDIAWIKI')) die();
function WLrex_rep($m)
{
return '[[' . strtoupper($m[1]) . $m[2] . '|' . $m[1] . $m[2] . ']]';
}
function WLreplaceUpperLinks(&$parser, &$text) {
$rex = '/\[\[\'(.)(.*?)]]/';
$text = preg_replace_callback($rex, "WLrex_rep", $text);
return true;
}
$wgHooks['InternalParseBeforeLinks'][] = 'WLreplaceUpperLinks';
Mensaje de patrulla en los artículos
La siguiente función es la encargada de ello. Está escrita a partir del estudio de la base de datos y también un poco de prueba y error. Está incluida en el archivo de apariencia de la Wikilengua, así que no ha sido necesario parchear nada. [Hay que corregir los caracteres en UTF-8.]
function getPatrolStatus()
{
global $wgTitle, $wgRequest, $wgLang;
$OldId = $wgRequest->getVal('oldid');
$Id = intval ( $wgTitle->getArticleId() );
$ttl = $wgTitle->getText();
$dbr = wfGetDB(DB_SLAVE);
$curr = $dbr->selectField( 'recentchanges', 'rc_id',
'rc_cur_id=' . $Id
. ' ORDER BY rc_id DESC');
$last = $dbr->selectField( 'recentchanges', 'rc_id',
'rc_patrolled=1 AND rc_cur_id=' . $Id
. ' ORDER BY rc_id DESC');
if ( $curr != $last ) {
if ( $curr != "" ) {
$type = $dbr->selectField( 'recentchanges', 'rc_type',
'rc_id=' . $curr );
if ( $last != "" ) {
$this_oldid = $dbr->selectField( 'recentchanges', 'rc_this_oldid',
'rc_id=' . $last );
$lastTime = $dbr->selectField( 'recentchanges', 'rc_timestamp',
'rc_id=' . $last );
} else {
$type = $dbr->selectField( 'recentchanges', 'rc_type',
'rc_cur_id=' . $Id . ' ORDER BY rc_id');
$last = $dbr->selectField( 'revision', 'rev_id',
'rev_page=' . $Id
. ' ORDER BY rev_id DESC');
if ( $last != "" ) {
$this_oldid = $wgTitle->getPreviousRevisionID(
$dbr->selectField( 'revision', 'rev_text_id',
'rev_id=' . $last ));
if ( !$this_oldid ) {
$lastTime = '';
} else {
$lastTime = $dbr->selectField( 'revision', 'rev_timestamp',
'rev_text_id=' . $this_oldid );
}
}
}
} else {
# $last = "";
}
}
if ( $last == "" ) { $lastTime = ""; };
$info = "";
#$info = "<br />(artId: $Id, curr: $curr, last: $last, this_oldid: $this_oldid, 'oldid': $OldId) $type";
if ( !is_null($OldId) ) {
return "<a href='/index.php?title=$ttl'>Ir a la actual</a> - <a href='/index.php?title=$ttl&oldid=$this_oldid'>Ir a la última supervisada</a>$info";
} else {
if ( $curr != $last ) {
if ( $lastTime != "" ) { $timestamp = $wgLang->date( $lastTime, true ) . " a las " . $wgLang->time( $lastTime, true ); }
return "<span style='color:red;'><b>! </b></span>Este artÃculo está pendiente de supervisión por los moderadores."
. ((curr != "" && $type != 0) || $lastTime == '' ? " Es un artÃculo nuevo y no hay todavÃa versión supervisada.$info" : " La última versión supervisada es de <a href='/index.php?title=$ttl&oldid=$this_oldid'>$timestamp</a>$info");
} else {
return "Este artÃculo ha sido supervisado por los moderadores.$info";
}
}
}


