https://www.mediawiki.org/wiki/Special:Code/MediaWiki/103350

Revision: 103350
Author:   danwe
Date:     2011-11-16 18:47:49 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
Tag for Variables 2.0

Added Paths:
-----------
    tags/extensions/Variables/REL_2_0/
    tags/extensions/Variables/REL_2_0/COPYING
    tags/extensions/Variables/REL_2_0/README
    tags/extensions/Variables/REL_2_0/RELEASE-NOTES
    tags/extensions/Variables/REL_2_0/Variables.i18n.magic.php
    tags/extensions/Variables/REL_2_0/Variables.i18n.php
    tags/extensions/Variables/REL_2_0/Variables.php
    tags/extensions/Variables/REL_2_0/Variables_Settings.php

Added: tags/extensions/Variables/REL_2_0/COPYING
===================================================================
--- tags/extensions/Variables/REL_2_0/COPYING                           (rev 0)
+++ tags/extensions/Variables/REL_2_0/COPYING   2011-11-16 18:47:49 UTC (rev 
103350)
@@ -0,0 +1,16 @@
+Copyright (c) 2006 - 2007 by Rob Adams
+Copyright (c) 2007        by Tom Hempel
+Copyright (c) 2008        by Xiloynaha
+Copyright (c) 2009 - 2011 by Daniel Werner < [email protected] >
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


Property changes on: tags/extensions/Variables/REL_2_0/COPYING
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/README
===================================================================
--- tags/extensions/Variables/REL_2_0/README                            (rev 0)
+++ tags/extensions/Variables/REL_2_0/README    2011-11-16 18:47:49 UTC (rev 
103350)
@@ -0,0 +1,26 @@
+== About ==
+
+The 'Variables' extension for MediaWiki introduces parser functions for 
defining page-scoped
+variables within wiki pages.
+
+* Website: http://www.mediawiki.org/wiki/Extension:Variables
+* Authors: Rob Adams, Tom Hempel, Xiloynaha and Daniel Werner
+* License: Public domain
+
+
+== Installation ==
+
+Once you have downloaded the code, place the 'Variables' directory within your
+MediaWiki 'extensions' directory. Then add the following code to your
+[[Manual:LocalSettings.php|LocalSettings.php]] file:
+
+ # Variables
+ require_once( "$IP/extensions/Variables/Variables.php" );
+
+ 
+== Contributing ==
+
+If you have bug reports or feature requests, please add them to the 
''Variables''
+Talk page [0]. You can also send them to Daniel Werner < [email protected] >
+
+[0] http://www.mediawiki.org/w/index.php?title=Extension_talk:Variables


Property changes on: tags/extensions/Variables/REL_2_0/README
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/RELEASE-NOTES
===================================================================
--- tags/extensions/Variables/REL_2_0/RELEASE-NOTES                             
(rev 0)
+++ tags/extensions/Variables/REL_2_0/RELEASE-NOTES     2011-11-16 18:47:49 UTC 
(rev 103350)
@@ -0,0 +1,77 @@
+ svn era Changelog:
+ ==================
+ 
+ * November 16, 2010 -- Version 2.0 by Daniel Werner
+   Version 2.0 almost is a complete rewrite of the extension, just the idea 
remains the
+   same. It's the attempt to get rid of several bugs caused by the fact that 
MediaWiki
+   is using several Parser objects. Therefore in v2 each Parser has its own 
Variables
+   store, so nothing will get mixed up anymore. Full compatbility is given, 
except perhaps
+   in cases where bugs were used intentionally.
+
+   New features and bugfixes:
+   - Inclusion of special pages in the middle of the page won't reset all 
defined
+     variables anymore.
+   - Variables should now be compatible with all other extensions, except for 
those still
+     using Parser::parse() recursivelly in any way (which should never be 
done!).
+   - For MW 1.12 and later, '#var' default value no longer gets expanded when 
not needed.
+   - Experimental new function '#var_final' which allows to insert the 
variables final
+     (last) value after page processing is almost through.
+   - Global configuration variable '$egVariablesDisabledFunctions' added.
+
+   Internal changes:
+   - Parser class member $mExtVariables now contains an instance of 
ExtVariables where
+     only variables for that parser are getting stored. They won't be deleted 
by other
+     Parser actions anymore (e.g. special page inclusion doesn't reset 
variables anymore)
+   - ExtVariables class now has public functions which should be used by other 
extensions
+     for getting and setting variables information.
+   - Removed global '$wgExtVariables' variable.
+   - 'Variables_Settings.php' file for configuration settings added.
+
+   Others:
+   - Put under 'ISC License' (public domain before).
+   - In case you are using Extension:Loops, you should update it as well to 
remain compatbility.
+
+   
+ * November 14, 2011 -- Version 1.3.1.1 (re-pack of 1.3.1 tagged version for 
svn)
+   - Although 1.4 is released already and 2.0 in the trunk, ensure one last 
version
+     compatible with MW < 1.12 still is available
+   - Some comments cleaned, 'RELEASE-NOTES' and 'README' files added.
+
+   
+ * November 13, 2011 -- Version 1.4 by Daniel Werner
+   - Cleanup for use with more current MW versions:
+     + 'ParserFirstCallInit' hook in use and no more global extension 
functions.
+     + State of the Art internationalization files added.
+   - Dropped support for MW before 1.12
+   - 'ExtVariables::VARIABLES' constant with version info added.
+   - Put into mediawiki.org svn, 'RELEASE-NOTES' and 'README' files added.
+ 
+ 
+ Pre svn Changelog:
+ ==================
+ 
+ The following pre-svn changelog was composed by Daniel Werner in the hope it 
might
+ give an almost complete overview of all major releases of 'Variables' 
extension.
+ All changes can still be retrace at
+ 
+ 
http://www.mediawiki.org/w/index.php?title=Extension:VariablesExtension&action=history
 
+ 
+ * July 20, 2010 -- Version 1.3 by Daniel Werner
+   - Removed critical bug. Some kind of "Superglobal" variables. In some cases 
values
+     were passed from one page to another page during page imports and job 
queue jobs.
+ 
+ * March 28, 2009 -- Version 1.2 by Daniel Werner
+   - '#varexists' function introduced
+   - parameter for default value for '#var' function in case the variable 
doesn't exist
+     or its value is just an empty string.
+ 
+ * December 5, 2008 -- Version 1.1 by user 'Xiloynaha'
+   - '#vardefineecho' function introduced
+ 
+ * June 24, 2007 -- r3, Language file added by unknown contributor
+ 
+ * October 11, 2006 -- r2, Fixes for MediaWiki 1.8 compatbility by Tom Hempel
+   - '$wgExtensionCredits' and '$wgHooks' being used.
+ 
+ * October 11, 2006 -- r1, initial release by Rob Adams
+   - First version of 'Variables', introducing '#vardefine' and '#var'


Property changes on: tags/extensions/Variables/REL_2_0/RELEASE-NOTES
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/Variables.i18n.magic.php
===================================================================
--- tags/extensions/Variables/REL_2_0/Variables.i18n.magic.php                  
        (rev 0)
+++ tags/extensions/Variables/REL_2_0/Variables.i18n.magic.php  2011-11-16 
18:47:49 UTC (rev 103350)
@@ -0,0 +1,22 @@
+<?php
+#coding: utf-8
+
+/**
+ * Internationalization file for magic words of the 'Variables' extension.
+ *
+ * @since 1.4
+ *
+ * @file Variables.i18n.magic.php
+ * @ingroup Variables
+ * @author Daniel Werner < [email protected] >
+ */
+
+$magicWords = array();
+
+$magicWords['en'] = array(
+       'var'           => array( 0, 'var' ),
+       'var_final'     => array( 0, 'var_final' ),
+       'vardefine'     => array( 0, 'vardefine' ),
+       'vardefineecho' => array( 0, 'vardefineecho' ),
+       'varexists'     => array( 0, 'varexists' ),
+);


Property changes on: tags/extensions/Variables/REL_2_0/Variables.i18n.magic.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/Variables.i18n.php
===================================================================
--- tags/extensions/Variables/REL_2_0/Variables.i18n.php                        
        (rev 0)
+++ tags/extensions/Variables/REL_2_0/Variables.i18n.php        2011-11-16 
18:47:49 UTC (rev 103350)
@@ -0,0 +1,28 @@
+<?php
+#coding: utf-8
+
+/**
+ * Internationalization file of the 'Variables' extension.
+ *
+ * @since 1.4
+ *
+ * @file Variables.i18n.php
+ * @ingroup Variables
+ * @author Daniel Werner < [email protected] >
+ */
+
+$messages = array();
+
+/** English
+ * @author Daniel Werner
+ */
+$messages['en'] = array(
+       'variables-desc' => 'Parser functions allowing to work with dynamic 
variables in an article scoped context',
+);
+
+/** German
+ * @author Daniel Werner
+ */
+$messages['de'] = array(
+       'variables-desc' => 'Bietet Parser-Funktionen zur Verwendung 
dynamischer Variablen in Wiki-Artikeln',
+);


Property changes on: tags/extensions/Variables/REL_2_0/Variables.i18n.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/Variables.php
===================================================================
--- tags/extensions/Variables/REL_2_0/Variables.php                             
(rev 0)
+++ tags/extensions/Variables/REL_2_0/Variables.php     2011-11-16 18:47:49 UTC 
(rev 103350)
@@ -0,0 +1,381 @@
+<?php
+
+/**
+ * 'Variables' introduces parser functions for defining page-scoped variables 
within
+ * wiki pages.
+ * Version 2.0 is a major re-write of the extension by Daniel Werner, as 
attempt to
+ * get rid of any problems related to the fact that there are multiple Parser 
instances
+ * for which 'Variables' extension should bring separate variable stores.
+ * 
+ * Documentation: http://www.mediawiki.org/wiki/Extension:Variables
+ * Support:       http://www.mediawiki.org/wiki/Extension_talk:Variables
+ * Source code:   
http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/Variables
+ * 
+ * @version: 2.0
+ * @license: ISC License
+ * @author: Rob Adams
+ * @author: Tom Hempel
+ * @author: Xiloynaha
+ * @author: Daniel Werner < [email protected] >
+ *
+ * @file Variables.php
+ * @ingroup Variables
+ */
+
+if ( ! defined( 'MEDIAWIKI' ) ) { die( ); }
+ 
+$wgExtensionCredits['parserhook'][] = array(
+       'path'           => __FILE__,
+       'name'           => 'Variables',
+       'descriptionmsg' => 'variables-desc',
+       'version'        => ExtVariables::VERSION,
+       'author'         => array( 'Rob Adams', 'Tom Hempel', 'Xiloynaha', 
'[http://www.mediawiki.org/wiki/User:Danwe Daniel Werner]' ),
+       'url'            => 'http://www.mediawiki.org/wiki/Extension:Variables',
+);
+
+// language files:
+$wgExtensionMessagesFiles['Variables'     ] = ExtVariables::getDir() . 
'/Variables.i18n.php';
+$wgExtensionMessagesFiles['VariablesMagic'] = ExtVariables::getDir() . 
'/Variables.i18n.magic.php';
+
+// hooks registration:
+$wgHooks['ParserFirstCallInit'     ][] = 'ExtVariables::init';
+$wgHooks['ParserClearState'        ][] = 'ExtVariables::onParserClearState';
+$wgHooks['InternalParseBeforeLinks'][] = 
'ExtVariables::onInternalParseBeforeLinks';
+
+// Include the settings file:
+require_once ExtVariables::getDir() . '/Variables_Settings.php';
+
+
+/**
+ * Extension class with basic extension information. This class serves as 
static
+ * class with the static parser functions but also als variables store instance
+ * as object assigned to a Parser object.
+ */
+class ExtVariables {
+       
+       /**
+        * Version of the 'Variables' extension.
+        * 
+        * @since 1.4
+        * 
+        * @var string
+        */
+       const VERSION = '2.0';
+       
+       /**
+        * Internal store for variable values
+        * 
+        * @private
+        * @var array
+        */
+    var $mVariables = array();
+       
+       /**
+        * Array with all names of variables requested by '#var_final'. Key of 
the values is the
+        * stripSateId of the strip-item placed where the final var should 
appear.
+        * 
+        * @since 2.0
+        * 
+        * @private
+        * @var Array
+        */
+       var $mFinalizedVars = array();
+       
+       /**
+        * Variables extensions own private StripState manager to manage 
'#final_var' placeholders
+        * and their replacement with the final var value or a defined default.
+        * 
+        * @since 2.0
+        * 
+        * @private
+        * @var StripState
+        */
+       var $mFinalizedVarsStripState;
+       
+       /**
+        * Sets up parser functions
+        * 
+        * @since 1.4
+        */
+       public static function init( Parser &$parser ) {
+               
+               /*
+                * store for variables per parser object. This will solve 
several bugs related to
+                * 'ParserClearState' hook clearing all variables early in 
combination with certain
+                * other extensions. (since v2.0)
+                */
+               $parser->mExtVariables = new self();
+               
+               // SFH_OBJECT_ARGS available since MW 1.12
+               self::initFunction( $parser, 'var', array( __CLASS__, 
'pfObj_var' ), SFH_OBJECT_ARGS );         
+               self::initFunction( $parser, 'var_final' );
+               self::initFunction( $parser, 'vardefine' );
+               self::initFunction( $parser, 'vardefineecho' );
+               self::initFunction( $parser, 'varexists' );
+               
+               return true;
+       }
+       private static function initFunction( Parser &$parser, $name, 
$functionCallback = null, $flags = 0 ) {
+               if( $functionCallback === null ) {
+                       // prefix parser functions with 'pf_'
+                       $functionCallback = array( __CLASS__, 'pf_' . $name );
+               }               
+               global $egVariablesDisabledFunctions;
+               
+               // register function only if not disabled by configuration:
+               if( ! in_array( $name, $egVariablesDisabledFunctions ) ) {      
                
+                       $parser->setFunctionHook( $name, $functionCallback, 
$flags );
+               }
+       }
+       
+       /**
+        * Returns the extensions base installation directory.
+        *
+        * @since 2.0
+        * 
+        * @return boolean
+        */
+       public static function getDir() {
+               static $dir = null;
+               
+               if( $dir === null ) {
+                       $dir = dirname( __FILE__ );
+               }
+               return $dir;
+       }
+       
+       
+       ####################
+       # Parser Functions #
+       ####################
+       
+    static function pf_varexists( Parser &$parser, $varName = '', 
$exists=true, $noexists=false ) {
+        if( self::get( $parser )->varExists( $varName ) ) {
+                       return $exists;
+               } else {
+                       return $noexists;
+               }
+    }
+       
+    static function pf_vardefine( Parser &$parser, $varName = '', $value = '' 
) {
+        self::get( $parser )->setVarValue( $varName, $value );
+        return '';
+    }
+ 
+    static function pf_vardefineecho( Parser &$parser, $varName = '', $value = 
'' ) {
+        self::get( $parser )->setVarValue( $varName, $value );
+        return $value;
+    }
+               
+    static function pfObj_var( Parser &$parser, $frame, $args) {
+               $varName = trim( $frame->expand( $args[0] ) ); // first 
argument expanded already but lets do this anyway
+               $varVal = self::get( $parser )->getVarValue( $varName, null );
+               
+               // default applies if var doesn't exist but also in case it is 
an empty string!
+               if( $varVal === null || $varVal === '' ) {
+                       // only expand argument when needed:
+                       $defaultVal = isset( $args[1] ) ? trim( $frame->expand( 
$args[1] ) ) : '';
+                       return $defaultVal;
+               }
+               return $varVal;
+    }
+       
+       static function pf_var_final( Parser &$parser, $varName, $defaultVal = 
'' ) {
+               $varStore = self::get( $parser );
+               
+               return self::get( $parser )->requestFinalizedVar( $parser, 
$varName, $defaultVal );
+       }
+       
+       
+       ##############
+       # Used Hooks #
+       ##############
+       
+       static function onInternalParseBeforeLinks( Parser &$parser, &$text ) {
+               
+               $varStore = self::get( $parser );
+               
+               // only do this if '#var_final' was used
+               if( $varStore->mFinalizedVarsStripState === null ) {
+                       return true;
+               }
+                               
+               /*
+                * all vars are final now, check whether requested vars can be 
inserted for '#final_var' or
+                * if the default has to be inserted. In any case, adjust the 
strip item value
+                */
+               foreach( $varStore->mFinalizedVars as $stripStateId => $varName 
) {
+                       
+                       $varVal = $varStore->getVarValue( $varName, '' );
+                       if( $varVal !== '' ) {
+                               // replace strip item value with final 
variables value or registered default:
+                               
//$varStore->mFinalizedVarsStripState->general->setPair( $stripStateId, $varVal 
);
+                               
+                               $varStore->stripStatePair( $stripStateId, 
$varVal );
+                       }
+               }
+               
+               /**
+                * Unstrip all '#var_final' strip-markers with their final 
'#var' or default values.
+                * This HAS to be done here and can't be done thru the normal 
unstrip process of MW.
+                * This because the default value as well as the variables 
value stil have to be rendered properly since they
+                * may contain links or even category links. On the other hand, 
they can't be parsed with Parser::recursiveTagParse()
+                * since this would parse wiki templates and functions which 
are intended as normal text, kind of similar to
+                * returning a parser functions value with 'noparse' => true.
+                * Also, there is no way to expand the '#var_final' default 
value here, just if needed, since the output could be an
+                * entirely different, e.g. if variables are used.
+                * This method also takes care of recursive '#var_final' calls 
(within the default value) quite well.
+                */
+               $text = $varStore->mFinalizedVarsStripState->unstripGeneral( 
$text );
+               
+               /*
+                * Sanitize the whole thing, otherwise HTML and JS code 
injection would be possible.
+                * Basically the same is happening in Parser::internalParse() 
right before 'InternalParseBeforeLinks' hook is called.
+                */
+               $text = Sanitizer::removeHTMLtags(
+                               $text,
+                               array( &$parser, 'attributeStripCallback' ),
+                               false,
+                               array_keys( $parser->mTransparentTagHooks )
+               );
+               return true;
+       }
+               
+       /**
+        * This will clean up the variables store after parsing has finished. 
It will prevent strange things to happen
+        * for example during import of several pages or job queue is running 
for multiple pages. In these cases variables
+        * would become some kind of superglobals, being passed from one page 
to the other.
+        */
+       static function onParserClearState( Parser &$parser ) {
+               /**
+                * MessageCaches Parser clone will mess things up if we don't 
reset the entire object.
+                * Only resetting the array would unset it in the original 
object as well! This instead
+                * will break the entire reference to the object
+                */                     
+               $parser->mExtVariables = new self();
+                       
+               return true;
+       }
+       
+       
+       ##################
+       # Private Helper #
+       ##################
+       
+       /**
+        * Takes care of setting a strip state pair in MW 1.18 as well as in 
previous versions
+        */
+       protected function stripStatePair( $marker, $value ) {
+               global $wgVersion;              
+               if( version_compare( $wgVersion, '1.17.99', '>' ) ) {
+                       // MW 1.18alpha+
+                       $this->mFinalizedVarsStripState->addGeneral( $marker, 
$value );
+               } else {
+                       $this->mFinalizedVarsStripState->general->setPair( 
$marker, $value );
+               }
+       }
+       
+       
+       ####################################
+       # Public functions for interaction #
+       ####################################
+       #
+       # public non-parser functions, accessible for
+       # other extensions doing interactive stuff
+       # with variables (like Extension:Loops)
+       #
+       
+       /**
+        * Convenience function to return the variables extensions variables 
store connected
+        * to a certain Parser object. Each parser has its own store which will 
be reset after
+        * a parsing process [Parser::parse()] has finished.
+        * 
+        * @param Parser &$parser
+        * 
+        * @return ExtVariables by reference so we still have the right objecdt 
after 'ParserClearState'
+        */
+       public static function &get( Parser &$parser ) {
+               return $parser->mExtVariables;
+       }
+       
+       /**
+        * Defines a variable, accessible by getVarValue() or '#var' parser 
function. Name and
+        * value will be trimmed and converted to string.
+        * 
+        * @param string $varName
+        * @param string $value will be converted to string if no string is 
given
+        */
+       public function setVarValue( $varName, $value = '' ) {
+               $this->mVariables[ trim( $varName ) ] = trim( $value );
+       }
+       
+       /**
+        * Returns a variables value or null if it doesn't exist.
+        * 
+        * @param string $varName
+        * @param mixed $defaultVal
+        * 
+        * @return string or mixed in case $defaultVal is being returned and 
not of type string
+        */
+       public function getVarValue( $varName, $defaultVal = null ) {
+               $varName = trim( $varName );
+        if ( $this->varExists( $varName ) ) {
+            return $this->mVariables[ $varName ];
+        } else {
+            return $defaultVal;
+        }
+    }
+       
+       /**
+        * Checks whether a variable exists within the scope.
+        * 
+        * @param string $varName
+        * 
+        * @return boolean
+        */
+    public function varExists( $varName ) {
+               $varName = trim( $varName );
+        return array_key_exists( $varName, $this->mVariables );
+    }
+       
+       /**
+        * Allows to unset a certain variable
+        * 
+        * @param type $varName
+        */
+       public function unsetVar( $varName ) {
+               unset( $this->mVariables[ $varName ] );
+       }
+       
+       /**
+        * Allows to register the usage of '#var_final'. Meaning a variable can 
be set as well
+        * as a default value. The return value, a strip-item then can be 
inserted into any
+        * wikitext processed by the same parser. Later that strip-item will be 
replaced with
+        * the final var text.
+        * Note: It's not possible to use the returned strip-item within other 
stripped text
+        *       since 'Variables' unstripping will happen before the general 
unstripping!
+        * 
+        * @param Parser $parser
+        * @param string $varName
+        * @param string $defaultVal
+        * @return string strip-item
+        */
+       function requestFinalizedVar( Parser &$parser, $varName, $defaultVal = 
'' ) {
+               if( $this->mFinalizedVarsStripState === null ) {
+                       $this->mFinalizedVarsStripState = new StripState( 
$parser->mUniqPrefix );
+               }
+               $id = count( $this->mFinalizedVars );           
+               /*
+                * strip-item which will be unstripped in 
self::onInternalParseBeforeLinks()
+                * In case the requested final variable has a value in the end, 
this strip-item
+                * value will be replaced with that value before unstripping.
+                */
+               $rnd = "{$parser->mUniqPrefix}-finalizedvar-{$id}-" . 
Parser::MARKER_SUFFIX;
+               
+               $this->stripStatePair( $rnd, trim( $defaultVal ) );             
+               $this->mFinalizedVars[ $rnd ] = trim( $varName );
+               
+               return $rnd;
+       }
+       
+}


Property changes on: tags/extensions/Variables/REL_2_0/Variables.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: tags/extensions/Variables/REL_2_0/Variables_Settings.php
===================================================================
--- tags/extensions/Variables/REL_2_0/Variables_Settings.php                    
        (rev 0)
+++ tags/extensions/Variables/REL_2_0/Variables_Settings.php    2011-11-16 
18:47:49 UTC (rev 103350)
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * File defining the settings for the 'Variables' extension.
+ * More info can be found at 
http://www.mediawiki.org/wiki/Extension:Variables#Configuration
+ *
+ * NOTICE:
+ * =======
+ * Changing one of these settings can be done by copying and placing
+ * it in LocalSettings.php, AFTER the inclusion of 'Variables'.
+ *
+ * @file Variables_Settings.php
+ * @ingroup Variables
+ * @since 2.0
+ *
+ * @author Daniel Werner
+ */
+
+/**
+ * Allows to define functions which should not be available within the wiki.
+ * 
+ * @example
+ * # disable '#var_final' and '#vardefineecho' functions:
+ * $egVariablesDisabledFunctions = array( 'var_final', 'vardefineecho' );
+ * 
+ * @since 2.0
+ * @var array
+ */
+$egVariablesDisabledFunctions = array();


Property changes on: tags/extensions/Variables/REL_2_0/Variables_Settings.php
___________________________________________________________________
Added: svn:eol-style
   + native


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to