Enlazar SPIP con mediawiki

De r00tHouse
Ir a la navegación Ir a la búsqueda

SPIP puede conectarse a la base de datos de mediawiki para por ejemplo mostar algunas tablas de esta wiki, además SPIP puede conectarse a otras bases de datos aparte de la que usa por defecto.

En este caso se configurará SPIP para que muestre los últimos cambios en mediawiki en una o más páginas mostradas con SPIP.

archivo de conexion

en config/ se define una conexión por ejemplo: conexion_con_mediawiki.php que debería tener lo siguiente:

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
spip_connect_db('localhost','','usuario','password','nombre_de_la_bd','mysql',
'spip','');
 
?>

En el esqueleto

Ahora que la conexion esta definida se puede utilizar la base de datos de mediawiki, basta con incluir en un archivo las tablas y el tipo de consulta que se quiere mostrar.

Por ejemplo se puede definir un nuevo archivo que este dentro una carpeta de esqueletos concretamente en inclure/. En este ejemplo el archivo es recent_mediawiki.html (un_esqueleto/include/recent_mediawiki.html)

<h5>Cambios recientes en la <a href="http://wiki.hacklab.org.bo">wiki</a></h5>
<div class="menu menu_breves">
  <BOUCLE_mediawiki(conexion_con_mediawiki:recentchanges)
     {!par rc_timestamp, rc_user_text, rc_title} 
     {0, 4}> <!-- muestra los ultimos 4 cambios -->
    <li>art:<a href="http://wiki.hacklab.org.bo/index.php?title=#RC_TITLE"> #RC_TITLE</a> <br>autor: [(#RC_USER_TEXT)]</li>
    <br>
  </BOUCLE_mediawiki>
</div>

Lo que hace lo anterior es definir un BOUCLE llamado BOUCLE_mediawiki que hace consultas en la conexion conexion_con_mediawiki (que definimos en el archivo de arriba) sobre la tabla recentchanges.

  • {!par rc_timestamp, ... } actua sobre las columnas rc_timestamp, ...
  • {0,4} un total de cuatro iteraciones
  • Dentro la etiqueta < li > todo es html pero las etiquetas como #RC_TITLE son reemplazadas por las respuestas de la consulta.

El BOUCLE que definimos se cierra en este caso con </BOUCLE_mediawiki>

NOTA.- Todas esas etiquetas raras como #RC_TITLE o {!par } son funciones predefinidas de SPIP (revisar

Finalmente, en cualquier archivo del esqueleto se puede incluir esto por ejemplo con :

<!-- ******** Enlace con mediawiki ******************** -->  
   <INCLURE{fond=inclure/recent_mediawiki} />

Mas info