MediaWiki 1.22.0. Soluciones (2)

¡Atención!Estos ejercicios corresponden a una versión antigua de MediaWiki. No están actualizados a versiones más actuales porque desde el curso 2014/15 no estoy trabajando en clase MediaWiki ya que estoy dedicando más tiempo a otras aplicaciones. He mantenido estos ejercicios en los apuntes por si le pueden servir a alguien.

En esta lección se proponen soluciones de los ejercicios de MediaWiki (2). Se recomienda intentar realizarlos primero sin recurrir a estas soluciones.

MediaWiki (2) 1 - Cambiar el logotipo

  1. Manual MediaWiki: https://www.mediawiki.org/wiki/Manual:FAQ#How_do_I_change_the_logo.3F

    Para cambiar el logotipo, hay que modificar en el archivo de configuración LocalSettings.php de MediaWiki:

    $wgLogo = "$wgStylePath/common/images/wiki.png";

    Para evitar que una actualización posterior de MediaWiki sustituya nuestro logo, es mejor usar un fichero con otro nombre y guardarlo en otra carpeta dentro de $wgStylePath.

    Cada skin usa un tamaño distinto para los logos (el skin Vector usa 160x160píxeles, pero bastantes skins usan 135x135 píxeles). Si se usan tamaños superiores, Vector recorta las imágenes y otros skins las muestran completas.

MediaWiki (2) 2 - Wikis privados

  1. Manual MediaWiki:

    Para convertir la wiki pública en una wiki privada se puede añadir, entre otros, los siguientes valores en el archivo de configuración LocalSettings.php de MediaWiki:

    $wgGroupPermissions['*']['createaccount'] = false;
    $wgGroupPermissions['*']['edit'] = false;
    $wgGroupPermissions['*']['read'] = false;

MediaWiki (2) 3 - Editar tablas

  1. Manual MediaWiki: https://www.mediawiki.org/wiki/Help:Tables

    Manual Wikipedia: https://en.wikipedia.org/wiki/Help:Tables

    El código para generar las tablas del ejemplo es el siguiente:

    {|  class="wikitable"
    |-
    ! Planeta
    ! Diámetro
    |-
    | Mercurio
    | align="right" | 4.879,4 km
    |-
    | Venus
    | align="right" | 12.103,6 km
    |-
    | Tierra
    | align="right" | 12.756,2 km
    |}
    
    {| class="wikitable"
    |+ Elementos químicos
    |-
    ! align="left" | Símbolo
    | align="center" | H
    | align="center" | He
    | align="center" | Li
    |-
    ! align="left" | Nombre
    | Hidrógeno
    | Helio
    | Litio
    |-
    ! align="left" | Masa atómica
    | 1,00797 u
    | 4,00260 u
    | 6,94174 u
    |}
    
    {| class="wikitable"
    |-
    | A
    | colspan="3" | B
    |-
    | rowspan="3" | C
    | colspan="2" rowspan="2" style="background-color: lightblue; color: blue; font-size: 200%" |D
    | E
    |-
    | F
    |-
    | G
    | H
    | I
    |}

MediaWiki (2) 4 - Subir archivos SVG

  1. Para poder subir archivos SVG, hay que añadir en el archivo de configuración LocalSettings.php de MediaWiki:
    $wgFileExtensions[] = 'svg';
    $wgAllowTitlesInSVG = true;
  2. Las imágenes SVG no se incluyen directamente en las páginas, sino que se convierten automáticamente a PNG. Para ello es necesario configurar algún convertidor de SVG a PNG:

MediaWiki (2) 5 - Subir otros tipos de archivos

  1. En el archivo de configuración LocalSettings.php de MediaWiki hay que añadir una línea por cada formato de archivo:
    $wgFileExtensions[] = 'svg';
    $wgFileExtensions[] = 'pdf';
  2. Manual MediaWiki: https://www.mediawiki.org/wiki/Help:Links#Internal_links

    Para enlazar los archivos subidos:

    [[media:nombre de archivo | texto ]

MediaWiki (2) 6 - Crear una galería

  1. Manual Mediawiki: https://www.mediawiki.org/wiki/Help:Images#Rendering_a_gallery_of_images

    Para crear una galería de imágenes:

    <gallery>
    nombre del archivo de imagen | leyenda
    nombre del archivo de imagen | leyenda
    nombre del archivo de imagen | leyenda
    </gallery>

MediaWiki (2) 7 - Tablas colapsables

  1. El código del ejemplo sería el siguiente:
    • En la página
      Esto es un ejemplo de tabla colapsable:
      {| class="wikitable collapsible collapsed"
      |-
      ! colspan="4" | Esta tabla se puede mostrar u ocultar
      |-
      ! !! 1 !! 2 !! 3
      |- align="center"
      ! A
      | A1 || A2 || A3
      |- align="center"
      ! B
      | B1 || B2 || B3
      |}
              
    • En la página http:// ... /index.php?title=MediaWiki:Common.js
      /**
       * Collapsible tables *********************************************************
       *
       * Description: Allows tables to be collapsed, showing only the header. See
       *              [[Wikipedia:NavFrame]].
       * Maintainers: [[User:R. Koot]]
       */
      
      var autoCollapse = 2;
      var collapseCaption = 'ocultar';
      var expandCaption = 'mostrar';
      
      window.collapseTable = function ( tableIndex ) {
          var Button = document.getElementById( 'collapseButton' + tableIndex );
          var Table = document.getElementById( 'collapsibleTable' + tableIndex );
      
          if ( !Table || !Button ) {
              return false;
          }
      
          var Rows = Table.rows;
          var i;
      
          if ( Button.firstChild.data === collapseCaption ) {
              for ( i = 1; i < Rows.length; i++ ) {
                  Rows[i].style.display = 'none';
              }
              Button.firstChild.data = expandCaption;
          } else {
              for ( i = 1; i < Rows.length; i++ ) {
                  Rows[i].style.display = Rows[0].style.display;
              }
              Button.firstChild.data = collapseCaption;
          }
      };
      
      function createCollapseButtons() {
          var tableIndex = 0;
          var NavigationBoxes = {};
          var Tables = document.getElementsByTagName( 'table' );
          var i;
      
          function handleButtonLink( index, e ) {
              window.collapseTable( index );
              e.preventDefault();
          }
      
          for ( i = 0; i < Tables.length; i++ ) {
              if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
      
                  /* only add button and increment count if there is a header row to work with */
                  var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
                  if ( !HeaderRow ) continue;
                  var Header = HeaderRow.getElementsByTagName( 'th' )[0];
                  if ( !Header ) continue;
      
                  NavigationBoxes[ tableIndex ] = Tables[i];
                  Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
      
                  var Button     = document.createElement( 'span' );
                  var ButtonLink = document.createElement( 'a' );
                  var ButtonText = document.createTextNode( collapseCaption );
      
                  Button.className = 'collapseButton';  /* Styles are declared in Common.css */
      
                  ButtonLink.style.color = Header.style.color;
                  ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
                  ButtonLink.setAttribute( 'href', '#' );
                  $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
                  ButtonLink.appendChild( ButtonText );
      
                  Button.appendChild( document.createTextNode( '[' ) );
                  Button.appendChild( ButtonLink );
                  Button.appendChild( document.createTextNode( ']' ) );
      
                  Header.insertBefore( Button, Header.firstChild );
                  tableIndex++;
              }
          }
      
          for ( i = 0;  i < tableIndex; i++ ) {
              if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
                  window.collapseTable( i );
              }
              else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
                  var element = NavigationBoxes[i];
                  while ((element = element.parentNode)) {
                      if ( $( element ).hasClass( 'outercollapse' ) ) {
                          window.collapseTable ( i );
                          break;
                      }
                  }
              }
          }
      }
      
      mw.hook( 'wikipage.content' ).add( createCollapseButtons )

MediaWiki (2) 8 - Extensión Vector

  1. Para ver si la extensión Vector ya está incluida en MediaWiki hay que ver si en la carpeta extensions hay una carpeta Vector.

    Para ver si la extensión Vector está activada hay que abrir la página Especial:Versión (Special:Version) y ver si en el apartado Extensiones instaladas aparece la extensión Vector.

  2. Opción EditWarning de Vector
    • Con la extensión Vector sin activar, comprobar que en la página Especial:Preferencias (Special:Preferences), en la pestaña Edición, apartado Opciones avanzadas, no aparece la opción "Advertirme cuando abandone una página editada con cambios sin grabar".
    • Para activar Vector, añadir en el archivo de configuración LocalSettings.php de MediaWiki:
      require_once( "$IP/extensions/Vector/Vector.php" );
    • Una vez activada, en la página Especial:Versión (Special:Version) debe aparecer la extensión vector y en la página Especial:Preferencias (Special:Preferences) debe aparecer la opción "Advertirme cuando abandone una página editada con cambios sin grabar".
    • Para que la opción "Advertirme cuando abandone una página editada con cambios sin grabar" aparezca de forma predeterminada, añadir en el archivo de configuración LocalSettings.php de MediaWiki:
      $wgDefaultUserOptions['useeditwarning'] = 1;

MediaWiki (2) Ampliación 1 - Copia de seguridad

Por escribir

MediaWiki (2) Ampliación 2 - Otras extensiones

Por escribir

MediaWiki (2) Ampliación 3 - Avisos en instalación

Por escribir

MediaWiki (2) Ampliación 4 - Líneas de tiempo (EasyTimeLine)

Por escribir

MediaWiki (2) XX - Otros

Texto
Resultado Sintaxis
Cita {{Cita|Texto de la cita|[[Autor]], ''Obra''}}