Diferencia entre revisiones de «Enlazar SPIP con mediawiki»

De Hacklab La Paz - r00thouse
(Página creada con «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...»)
 
Sin resumen de edición
Línea 7: Línea 7:
en '''config/'''  se define una conexión por ejemplo: conexion_con_mediawiki.php que debería tener lo siguiente:
en '''config/'''  se define una conexión por ejemplo: conexion_con_mediawiki.php que debería tener lo siguiente:


<pre>
<source lang="php">
<?php
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) return;
Línea 14: Línea 14:
   
   
?>
?>
</pre>
</source>


=== En el esqueleto ===
=== En el esqueleto ===
Línea 25: Línea 25:
esqueletos concretamente en '''inclure/'''. En este ejemplo el archivo es '''recent_mediawiki.html''' (un_esqueleto/include/recent_mediawiki.html)
esqueletos concretamente en '''inclure/'''. En este ejemplo el archivo es '''recent_mediawiki.html''' (un_esqueleto/include/recent_mediawiki.html)


<pre>
<source lang="php">
<h5>Cambios recientes en la <a href="http://wiki.hacklab.org.bo">wiki</a></h5>
<h5>Cambios recientes en la <a href="http://wiki.hacklab.org.bo">wiki</a></h5>
<div class="menu menu_breves">
<div class="menu menu_breves">
Línea 35: Línea 35:
   </BOUCLE_mediawiki>
   </BOUCLE_mediawiki>
</div>
</div>
</source>
Lo que hace lo anterior es definir un BOUCLE llamado '''BOUCLE_mediawiki''' que hace consultas en la conexion ''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 debe se cierra en este caso con ''</BOUCLE_mediawiki>''
Finalmente, en cualquier archivo del esqueleto se puede incluir esto por ejemplo con :
<pre>
<!-- ******** Enlace con mediawiki ******************** --> 
  <INCLURE{fond=inclure/recent_mediawiki} />
</pre>
</pre>
== Mas info ==
* http://programmer.spip.net/IMG/pdf/programmer_avec_spip_2009_11_en.pdf

Revisión del 22:51 29 ene 2016

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(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 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 debe se cierra en este caso con </BOUCLE_mediawiki>

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

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

Mas info