Jump to content

Extensión:Variables

From mediawiki.org
This page is a translated version of the page Extension:Variables and the translation is 68% complete.
Manual de extensiones de MediaWiki
Variables
Estado de lanzamiento: estable
Implementación Función del analizador
Descripción Introduce funciones del analizador para tratar con las variables de ámbito de página.
Autor(es)
Mantenedor(es) MGChecker
Última versión 2.5.1 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Cambios de la base de datos No
Licencia ISC Licencia
Descarga
README
RELEASE-NOTES
  • $wgVariablesAreVolatile
  • $wgVariablesDisabledFunctions
Descargas trimestrales 84 (Ranked 56th)
Wikis públicos que lo utilizan 1,808 (Ranked 201st)
Traduce la extensión Variables si está disponible en translatewiki.net
Función de vagabundo variables
Asuntos Tareas abiertas · Reportar un bug
Advertencia Advertencia: This extension is incompatible with plans to parallelize parsing, as is intended by the use of Parsoid . Therefore, the future of this extension is uncertain, and it is expected to become incompatible with the standard MediaWiki parser within a few years. For further information, see task T250963 and No support for sequential, in-order processing of extension tags .
Para evitar la advertencia de obsolescencia sobre el hook InternalParseBeforeSanitize para MediaWiki 1.35 - MediaWiki 1.38 , o perder la función analizadora #var_final en MediaWiki 1.39 +, por favor actualice a la última versión (rama master por ahora). Véase task T276627 y task T250963 para más información.

La extensión Variables permite definir una variable en una página, usarla más tarde en esa misma página o en las plantillas incluidas, cambiar su valor, posiblemente a un valor dado por una expresión en términos del valor anterior, etc.

Semejante a una plantilla, aunque más ligero y su alcance es una página. Te permite emplear múltiples variables en una página sin impactar el desempeño de la wiki, como sucede cuando se maneja un gran número de plantillas. Combina esta extensión con la extensión ParserFunctions para mejores resultados.

Esta extensión no estará habilitada para las wikis gestionadas por la Fundación Wikimedia (WMF).[1][2][3][4] Ver alternativas.

Asignar un valor a una variable

#vardefine

  • {{#vardefine:nombredelavariable | valorespecificado }}

Asigna el valor valorespecificado a la variable (que ya existe o se introduce) nombredelavariable.

  • Ejemplo: {{#vardefine:iconwidth|25}} haciendo iconwidth = 25

#vardefineecho

  • {{#vardefineecho:nombredelavariable | valorespecificado }}

Funciona exactamente como #vardefine, pero el valor afectado se imprime.

  • Ejemplo: making iconwidth = {{#vardefineecho:iconwidth|25}}

Recuperación del valor de una variable

#var

El valor de la variable nombredelavariable se produce por

  • {{#var:nombredelavariable}}

Si no definido, esto produce una cadena vacía; no da una mensaje de error.

Es posible obtener un valor por defecto para el caso de que la variable no esté definida o sea nula:

  • {{#var:nombredelavariable | valorpredeterminado }}

Esto es equivalente a:

  • {{#if: {{#var:nombredelavariable }} | {{#var:nombredelavariable }} | valorpredeterminado }}

pero es mucho más corto y mejor organizado. Aunque antes de versión 2.0, el valor predeterminado siempre estaba expandido. Desde version 2.0, el valor predeterminado solamente está expandido si realmente se usa.

El valor puede usarse en funciones del analizador, etc.

#varexists

  • {{#varexists:nombredelavariable }} devuelve 1 si la variable ya está definida. Si la variable no está definida, el valor de retorno es vacío.

Admite un segundo y un tercer parámetro para reemplazar estos valores.

  • {{#varexists:nombredelavariable | if-value | else-value }}

Esto es equivalente a:

  • {{#if: {{#varexists: nombredelavariable }} | if-value | else-value }}

pero es mucho más corto y mejor organizado. Sin embargo, antes de la versión 2.5, ambos siempre estaban expandidos. Desde la versión 2.5 en los valores if y else sólo se expanden si realmente son usados.

#var_final

Función experimental introducida en Variables 2.0 This function will output the final, last value a variable has at the end of the page rendering. Naturally, the value will be inserted after the parser went over the entire wiki markup, so this function can't be used in other functions, expecting the right value is being used. Ejemplo:

  • {{#var_final:nombredelavariable | valorpredeterminado }}

The default value will be used if the variable doesn't exist at the final page rendering stage or if its value is an empty string. The default will be expanded right where the function is used, so the parameter will be expanded, even if it won't be needed.

Ejemplos

The ParserFunctions extension must also be installed to use #expr.

Compute x = 2*a + b:

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

Añade uno a n:

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}

Instalación

  • Descarga y extrae los archivos en un directorio denominado «Variables» dentro de la carpeta extensions/.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Variables
  • Añade el siguiente código en la parte final de tu archivo LocalSettings.php :
    wfLoadExtension( 'Variables' );
    
  • Configura según sea necesario.
  • Yes Hecho – Navega a Special:Version en el wiki para verificar que la extensión se haya instalado correctamente.

Configuración

This extension provides two configuration parameters:

$egVariablesAreVolatile
Allows to disable the parser frame being marked as volatile by the extension, i.e. disable template caching.
Por defecto: true;
$egVariablesDisabledFunctions
Allows to disable specified parser functions provided by this extension.
Por defecto: [];
Ejemplo: [ 'var_final', 'vardefineecho' ];

Compatibilidad

The recommended version of the Variables extension for recent MediaWiki releases is listed below. Older versions of the extensions might work as well, but aren't tested for new MediaWiki releases.


Alternativas

As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF), here are some alternatives:[1][2][3][4]

  • If you use Variables as cache for expensive operations, you can transform the section where you need them into a template and pass the required information as template parameters instead. This will work until you reach the expansion depth limit, which can be increased if necessary.
  • If you use Variables to do more complex template operations than possible with simple Extensión:ParserFunctions , and if you have sufficient permissions on the server, you can use Scribunto's Lua functionality instead. You may not be able to install Scribunto on shared hosting. Note that this does not add support for global Variables. However, Extension:VariablesLua adds a Scribunto interface for the Variables store.
  • Don't use variables, instead duplicate the information you need as a variable. If that information is acquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.
  • If you require variables just for autonumbering, you could look into Extension:NumerAlpha .

Véase también

Referencias