r34066 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r34065‎ | r34066 | r34067 >
Date:07:32, 1 May 2008
Author:ialex
Status:old
Tags:
Comment:
* Simplify the way to generate the form.
* Added CHANGELOG file.
Modified paths:
  • /trunk/extensions/Configure/CHANGELOG (added) (history)
  • /trunk/extensions/Configure/Configure.body.php (modified) (history)
  • /trunk/extensions/Configure/Configure.php (modified) (history)
  • /trunk/extensions/Configure/Configure.settings.php (modified) (history)
  • /trunk/extensions/Configure/README (modified) (history)

Diff [purge]

Index: trunk/extensions/Configure/Configure.body.php
@@ -11,13 +11,12 @@
1212 protected static $settings, $restricted, $arrayDefs, $settingsVersion;
1313 protected $conf;
1414
 15+ // Static methods
 16+
1517 /**
16 - * Constructor
1718 * Load messages and initialise static variables
1819 */
19 - public function __construct() {
20 - efConfigureLoadMessages();
21 - parent::__construct( 'Configure', 'configure' );
 20+ protected static function loadSettingsDefs(){
2221 if( !self::$initialized ){
2322 self::$initialized = true;
2423 require( dirname( __FILE__ ) . '/Configure.settings.php' );
@@ -29,6 +28,69 @@
3029 }
3130
3231 /**
 32+ * Return true if the setting is available in this version of MediaWiki
 33+ *
 34+ * @param string $setting setting name
 35+ * @return bool
 36+ */
 37+ protected static function isSettingAvailable( $setting ){
 38+ global $wgVersion;
 39+ self::loadSettingsDefs();
 40+ if( !array_key_exists( $setting, self::getAllSettings() ) )
 41+ return false;
 42+ if( !array_key_exists( $setting, self::$settingsVersion ) )
 43+ return true;
 44+ foreach( self::$settingsVersion[$setting] as $test ){
 45+ list( $ver, $comp ) = $test;
 46+ if( !version_compare( $wgVersion, $ver, $comp ) )
 47+ return false;
 48+ }
 49+ return true;
 50+ }
 51+
 52+ /**
 53+ * Get a simple array with all config settings
 54+ *
 55+ * @return array
 56+ */
 57+ protected static function getAllSettings(){
 58+ static $arr = null;
 59+ if( is_array( $arr ) && !empty( $arr ) )
 60+ return $arr;
 61+ self::loadSettingsDefs();
 62+ $arr = array();
 63+ foreach( self::$settings as $section ){
 64+ foreach( $section as $group ){
 65+ $arr = array_merge( $arr, $group );
 66+ }
 67+ }
 68+ return $arr;
 69+ }
 70+
 71+ /**
 72+ * Get the type of a setting
 73+ *
 74+ * @param string $setting
 75+ * @return mixed
 76+ */
 77+ protected static function getSettingType( $setting ){
 78+ $settings = self::getAllSettings();
 79+ if( isset( $settings[$setting] ) )
 80+ return $settings[$setting];
 81+ else
 82+ return false;
 83+ }
 84+
 85+ /**
 86+ * Constructor
 87+ */
 88+ public function __construct() {
 89+ efConfigureLoadMessages();
 90+ parent::__construct( 'Configure', 'configure' );
 91+ self::loadSettingsDefs();
 92+ }
 93+
 94+ /**
3395 * Show the special page
3496 *
3597 * @param mixed $par Parameter passed to the page
@@ -104,26 +166,6 @@
105167 }
106168
107169 /**
108 - * Return true if the setting is available in this version of MediaWiki
109 - *
110 - * @param string $setting setting name
111 - * @return bool
112 - */
113 - protected function isSettingAvailable( $setting ){
114 - global $wgVersion;
115 - if( !array_key_exists( $setting, self::$settings ) )
116 - return false;
117 - if( !array_key_exists( $setting, self::$settingsVersion ) )
118 - return true;
119 - foreach( self::$settingsVersion[$setting] as $test ){
120 - list( $ver, $comp ) = $test;
121 - if( !version_compare( $wgVersion, $ver, $comp ) )
122 - return false;
123 - }
124 - return true;
125 - }
126 -
127 - /**
128170 * Submit the posted request
129171 */
130172 protected function doSubmit(){
@@ -137,7 +179,7 @@
138180 }
139181 }
140182 $settings = array();
141 - foreach( self::$settings as $name => $type ){
 183+ foreach( self::getAllSettings() as $name => $type ){
142184 if( in_array( $name, self::$restricted ) && !$allowedRestricted ){
143185 $settings[$name] = $this->getSettingValue( $name );
144186 continue;
@@ -292,146 +334,8 @@
293335 Xml::openElement( 'form', array( 'method' => 'post', 'action' => $action ) ) . "\n" .
294336 Xml::openElement( 'div', array( 'id' => 'preferences' ) ) . "\n" .
295337
296 - Xml::openElement( 'fieldset' ) . "\n" .
297 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-general', array( 'parseinline' ) ) ) . "\n" .
298 - $this->buildGeneralSettings() .
299 - Xml::closeElement( 'fieldset' ) . "\n" .
 338+ $this->buildAllSettings() . "\n" .
300339
301 - Xml::openElement( 'fieldset' ) . "\n" .
302 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-db', array( 'parseinline' ) ) ) . "\n" .
303 - $this->buildDbSettings() .
304 - Xml::closeElement( 'fieldset' ) . "\n" .
305 -
306 - Xml::openElement( 'fieldset' ) . "\n" .
307 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-email', array( 'parseinline' ) ) ) . "\n" .
308 - $this->buildEmailSettings() .
309 - Xml::closeElement( 'fieldset' ) . "\n" .
310 -
311 - Xml::openElement( 'fieldset' ) . "\n" .
312 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-localization', array( 'parseinline' ) ) ) . "\n" .
313 - $this->buildLocalizationSettings() .
314 - Xml::closeElement( 'fieldset' ) . "\n" .
315 -
316 - Xml::openElement( 'fieldset' ) . "\n" .
317 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-debug', array( 'parseinline' ) ) ) . "\n" .
318 - $this->buildDebugSettings() .
319 - Xml::closeElement( 'fieldset' ) . "\n" .
320 -
321 - Xml::openElement( 'fieldset' ) . "\n" .
322 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-site', array( 'parseinline' ) ) ) . "\n" .
323 - $this->buildSiteSettings() .
324 - Xml::closeElement( 'fieldset' ) . "\n" .
325 -
326 - Xml::openElement( 'fieldset' ) . "\n" .
327 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-namespaces', array( 'parseinline' ) ) ) . "\n" .
328 - $this->buildNamespacesSettings() .
329 - Xml::closeElement( 'fieldset' ) . "\n" .
330 -
331 - Xml::openElement( 'fieldset' ) . "\n" .
332 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-skin', array( 'parseinline' ) ) ) . "\n" .
333 - $this->buildSkinSettings() .
334 - Xml::closeElement( 'fieldset' ) . "\n" .
335 -
336 - Xml::openElement( 'fieldset' ) . "\n" .
337 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-category', array( 'parseinline' ) ) ) . "\n" .
338 - $this->buildCategorySettings() .
339 - Xml::closeElement( 'fieldset' ) . "\n" .
340 -
341 - Xml::openElement( 'fieldset' ) . "\n" .
342 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-cache', array( 'parseinline' ) ) ) . "\n" .
343 - $this->buildCacheSettings() .
344 - Xml::closeElement( 'fieldset' ) . "\n" .
345 -
346 - Xml::openElement( 'fieldset' ) . "\n" .
347 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-interwiki', array( 'parseinline' ) ) ) . "\n" .
348 - $this->buildInterwikiSettings() .
349 - Xml::closeElement( 'fieldset' ) . "\n" .
350 -
351 - Xml::openElement( 'fieldset' ) . "\n" .
352 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-access', array( 'parseinline' ) ) ) . "\n" .
353 - $this->buildAccessSettings() .
354 - Xml::closeElement( 'fieldset' ) . "\n" .
355 -
356 - Xml::openElement( 'fieldset' ) . "\n" .
357 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-rates', array( 'parseinline' ) ) ) . "\n" .
358 - $this->buildRateLimitsSettings() .
359 - Xml::closeElement( 'fieldset' ) . "\n" .
360 -
361 - Xml::openElement( 'fieldset' ) . "\n" .
362 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-proxy', array( 'parseinline' ) ) ) . "\n" .
363 - $this->buildProxySettings() .
364 - Xml::closeElement( 'fieldset' ) . "\n" .
365 -
366 - Xml::openElement( 'fieldset' ) . "\n" .
367 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-squid', array( 'parseinline' ) ) ) . "\n" .
368 - $this->buildSquidSettings() .
369 - Xml::closeElement( 'fieldset' ) . "\n" .
370 -
371 - Xml::openElement( 'fieldset' ) . "\n" .
372 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-cookie', array( 'parseinline' ) ) ) . "\n" .
373 - $this->buildCookieSettings() .
374 - Xml::closeElement( 'fieldset' ) . "\n" .
375 -
376 - Xml::openElement( 'fieldset' ) . "\n" .
377 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-reduction', array( 'parseinline' ) ) ) . "\n" .
378 - $this->buildReductionSettings() .
379 - Xml::closeElement( 'fieldset' ) . "\n" .
380 -
381 - Xml::openElement( 'fieldset' ) . "\n" .
382 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-upload', array( 'parseinline' ) ) ) . "\n" .
383 - $this->buildUploadSettings() .
384 - Xml::closeElement( 'fieldset' ) . "\n" .
385 -
386 - Xml::openElement( 'fieldset' ) . "\n" .
387 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-images', array( 'parseinline' ) ) ) . "\n" .
388 - $this->buildImageSettings() .
389 - Xml::closeElement( 'fieldset' ) . "\n" .
390 -
391 - Xml::openElement( 'fieldset' ) . "\n" .
392 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-parser', array( 'parseinline' ) ) ) . "\n" .
393 - $this->buildParserSettings() .
394 - Xml::closeElement( 'fieldset' ) . "\n" .
395 -
396 - Xml::openElement( 'fieldset' ) . "\n" .
397 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-specialpages', array( 'parseinline' ) ) ) . "\n" .
398 - $this->buildSpecialPagesSettings() .
399 - Xml::closeElement( 'fieldset' ) . "\n" .
400 -
401 - Xml::openElement( 'fieldset' ) . "\n" .
402 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-users', array( 'parseinline' ) ) ) . "\n" .
403 - $this->buildUsersSettings() .
404 - Xml::closeElement( 'fieldset' ) . "\n" .
405 -
406 - Xml::openElement( 'fieldset' ) . "\n" .
407 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-feed', array( 'parseinline' ) ) ) . "\n" .
408 - $this->buildFeedSettings() .
409 - Xml::closeElement( 'fieldset' ) . "\n" .
410 -
411 - Xml::openElement( 'fieldset' ) . "\n" .
412 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-job', array( 'parseinline' ) ) ) . "\n" .
413 - $this->buildJobSettings() .
414 - Xml::closeElement( 'fieldset' ) . "\n" .
415 -
416 - Xml::openElement( 'fieldset' ) . "\n" .
417 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-extension', array( 'parseinline' ) ) ) . "\n" .
418 - $this->buildExtensionSettings() .
419 - Xml::closeElement( 'fieldset' ) . "\n" .
420 -
421 - Xml::openElement( 'fieldset' ) . "\n" .
422 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-copyright', array( 'parseinline' ) ) ) . "\n" .
423 - $this->buildCopyrightSettings() .
424 - Xml::closeElement( 'fieldset' ) . "\n" .
425 -
426 - Xml::openElement( 'fieldset' ) . "\n" .
427 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-htcp', array( 'parseinline' ) ) ) . "\n" .
428 - $this->buildHtcpSettings() .
429 - Xml::closeElement( 'fieldset' ) . "\n" .
430 -
431 - Xml::openElement( 'fieldset' ) . "\n" .
432 - Xml::element( 'legend', null, wfMsgExt( 'configure-section-misc', array( 'parseinline' ) ) ) . "\n" .
433 - $this->buildMiscSettings() .
434 - Xml::closeElement( 'fieldset' ) . "\n" .
435 -
436340 Xml::openElement( 'div', array( 'id' => 'prefsubmit' ) ) . "\n" .
437341 Xml::openElement( 'div', array() ) . "\n" .
438342 Xml::element( 'input', array( 'type' => 'submit', 'name' => 'wpSave', 'class' => 'btnSavePrefs', 'value' => wfMsgHtml( 'configure-btn-save' ) ) ) . "\n" .
@@ -465,19 +369,6 @@
466370 }
467371
468372 /**
469 - * Build a beginning of table with a header if requested
470 - *
471 - * @param String $msg name of the message to display or null
472 - * @return String xhtml fragment
473 - */
474 - protected function buildTableStart( $msg = null ){
475 - $table = "<table>\n";
476 - if( $msg !== null )
477 - $table .= $this->buildTableHeading( $msg );
478 - return $table;
479 - }
480 -
481 - /**
482373 * Like before but only for the header
483374 *
484375 * @param String $msg name of the message to display
@@ -491,17 +382,17 @@
492383 * Build an input for $conf setting with $default as default value
493384 *
494385 * @param String $conf name of the setting
 386+ * @param String $type type of the setting
495387 * @param String $default default value
496388 * @return String xhtml fragment
497389 */
498 - protected function buildInput( $conf, $default ){
 390+ protected function buildInput( $conf, $type, $default ){
499391 $allowed = true;
500392 if( in_array( $conf, self::$restricted ) ){
501393 global $wgUser;
502394 if( !$wgUser->isAllowed( 'configure-all' ) )
503395 $allowed = false;
504396 }
505 - $type = self::$settings[$conf];
506397 if( $type == 'text' || $type == 'int' ){
507398 if( !$allowed )
508399 return htmlspecialchars( $default );
@@ -732,10 +623,11 @@
733624 * @parm String $msg message name to display, use $conf if the message is
734625 * empty
735626 * @param String $conf name of the setting
 627+ * @param String $type type of the setting
736628 * @param String $default default value
737629 * @return String xhtml fragment
738630 */
739 - protected function buildTableRow( $msg, $conf, $default ){
 631+ protected function buildTableRow( $msg, $conf, $type, $default ){
740632 global $wgContLang;
741633
742634 $align = array();
@@ -745,7 +637,7 @@
746638 $msgVal = "\$$conf";
747639 $td1 = Xml::openElement( 'td', $align ) . $msgVal . '</td>';
748640 if( $this->isSettingAvailable( $conf ) )
749 - $td2 = Xml::openElement( 'td', $align ) . $this->buildInput( $conf, $default ) . '</td>';
 641+ $td2 = Xml::openElement( 'td', $align ) . $this->buildInput( $conf, $type, $default ) . '</td>';
750642 else
751643 $td2 = Xml::openElement( 'td', $align ) . wfMsgExt( 'configure-setting-not-available', array( 'parseinline' ) ) . '</td>';
752644
@@ -753,384 +645,25 @@
754646 }
755647
756648 /**
757 - * Simple wrapper for self::buildTableRow()
 649+ * Build the content of the form
758650 *
759 - * @param String $setting setting name
760 - * @return String xhtml fragment
 651+ * @return xhtml
761652 */
762 - protected function buildSimpleSetting( $setting ){
763 - return $this->buildTableRow( 'configure-setting-' . $setting, $setting, $this->getSettingValue( $setting ) );
764 - }
765 -
766 - /**
767 - * Like self::buildSimpleSetting() but accepts an array of settings
768 - *
769 - * @param array $settingArr array of settings name
770 - * @return string html
771 - */
772 - protected function buildSimpleSettingArray( $settingArr ){
773 - $text = '';
774 - foreach( $settingArr as $setting ){
775 - $text .= $this->buildSimpleSetting( $setting );
 653+ protected function buildAllSettings(){
 654+ $ret = '';
 655+ foreach( self::$settings as $title => $groups ){
 656+ $ret .= Xml::openElement( 'fieldset' ) . "\n" .
 657+ Xml::element( 'legend', null, wfMsgExt( 'configure-section-' . $title, array( 'parseinline' ) ) ) . "\n" .
 658+ Xml::openElement( 'table' ) . "\n";
 659+ foreach( $groups as $group => $settings ){
 660+ $ret .= $this->buildTableHeading( 'configure-section-' . $group );
 661+ foreach( $settings as $setting => $type ){
 662+ $ret .= $this->buildTableRow( 'configure-setting-' . $setting, $setting, $type, $this->getSettingValue( $setting ) );
 663+ }
 664+ }
 665+ $ret .= Xml::closeElement( 'table' ) . "\n" .
 666+ Xml::closeElement( 'fieldset' );
776667 }
777 - return $text;
 668+ return $ret;
778669 }
779 -
780 - private function buildGeneralSettings(){
781 - $out = $this->buildTableStart( 'configure-section-general' );
782 - $out .= $this->buildSimpleSetting( 'wgSitename' );
783 - $out .= $this->buildTableHeading( 'configure-section-paths' );
784 - $arr = array( 'wgAppleTouchIcon', 'wgArticlePath', 'wgDiff3', 'wgFavicon',
785 - 'wgLogo', 'wgMathDirectory', 'wgMathPath', 'wgRedirectScript', 'wgScriptExtension',
786 - 'wgScriptPath', 'wgStyleDirectory', 'wgStylePath', 'wgTmpDirectory', 'wgUsePathInfo',
787 - 'wgUploadNavigationUrl', 'wgVariantArticlePath' );
788 - $out .= $this->buildSimpleSettingArray( $arr );
789 - $out .= "</table>\n";
790 - return $out;
791 - }
792 -
793 - private function buildDbSettings(){
794 - global $wgUser;
795 - if( !$wgUser->isAllowed( 'configure-all' ) )
796 - return wfMsgExt( 'configure-section-db-notallowed', array( 'parse' ) );
797 - $out = $this->buildTableStart( 'configure-section-db' );
798 - $arr = array( 'wgAllDBsAreLocalhost', 'wgCheckDBSchema', 'wgDBAvgStatusPoll',
799 - 'wgDBClusterTimeout', 'wgDBminWordLen', 'wgDBmwschema', 'wgDBmysql5',
800 - 'wgDBprefix', 'wgDBservers', 'wgDBTableOptions', 'wgDBtransactions',
801 - 'wgDBts2schema', 'wgDBtype', 'wgLBFactoryConf', 'wgDefaultExternalStore',
802 - 'wgLocalDatabases', 'wgMasterWaitTimeout', 'wgSearchType', 'wgSlaveLagCritical',
803 - 'wgSlaveLagWarning', 'wgExternalServers' );
804 - $out .= $this->buildSimpleSettingArray( $arr );
805 - $out .= "</table>\n";
806 - return $out;
807 - }
808 -
809 - private function buildEmailSettings(){
810 - $out = $this->buildTableStart( 'configure-section-email' );
811 - $arr = array( 'wgEmailAuthentication', 'wgEmergencyContact', 'wgEnableEmail',
812 - 'wgEnableUserEmail', 'wgNoReplyAddress', 'wgPasswordSender', 'wgSMTP',
813 - 'wgUserEmailUseReplyTo' );
814 - $out .= $this->buildSimpleSettingArray( $arr );
815 - $out .= $this->buildTableHeading( 'configure-section-enotif' );
816 - $arr = array( 'wgEnotifFromEditor', 'wgEnotifImpersonal', 'wgEnotifMaxRecips',
817 - 'wgEnotifMinorEdits', 'wgEnotifRevealEditorAddress', 'wgEnotifUseJobQ',
818 - 'wgEnotifUserTalk', 'wgEnotifWatchlist', 'wgShowUpdatedMarker',
819 - 'wgUsersNotifedOnAllChanges', 'wgUsersNotifiedOnAllChanges' );
820 - $out .= $this->buildSimpleSettingArray( $arr );
821 - $out .= "</table>\n";
822 - return $out;
823 - }
824 -
825 - private function buildLocalizationSettings(){
826 - $out = $this->buildTableStart( 'configure-section-localization' );
827 - $arr = array( 'wgAmericanDates', 'wgDisableLangConversion', 'wgForceUIMsgAsContentMsg',
828 - 'wgInterwikiMagic', 'wgLanguageCode', 'wgLegacyEncoding', 'wgLocaltimezone',
829 - 'wgLocalTZoffset', 'wgLoginLanguageSelector', 'wgTranslateNumerals',
830 - 'wgUseDatabaseMessages', 'wgUseDynamicDates', 'wgUseZhdaemon', 'wgZhdaemonHost',
831 - 'wgZhdaemonPort' );
832 - $out .= $this->buildSimpleSettingArray( $arr );
833 - $out .= $this->buildTableHeading( 'configure-section-html' );
834 - $arr = array( 'wgDocType', 'wgDTD', 'wgMimeType', 'wgXhtmlDefaultNamespace', 'wgXhtmlNamespaces' );
835 - $out .= $this->buildSimpleSettingArray( $arr );
836 - $out .= "</table>\n";
837 - return $out;
838 - }
839 -
840 - private function buildDebugSettings(){
841 - $out = $this->buildTableStart( 'configure-section-debug' );
842 - $arr = array( 'wgColorErrors', 'wgDebugComments', 'wgDebugDumpSql', 'wgDebugLogFile',
843 - 'wgDebugLogGroups', 'wgDebugRawPage', 'wgDebugRedirects', 'wgLogQueries',
844 - 'wgShowSQLErrors', 'wgStatsMethod' );
845 - $out .= $this->buildSimpleSettingArray( $arr );
846 - $out .= $this->buildTableHeading( 'configure-section-profiling' );
847 - $arr = array( 'wgDebugFunctionEntry', 'wgDebugProfiling', 'wgDebugSquid',
848 - 'wgProfileCallTree', 'wgProfileLimit', 'wgProfileOnly', 'wgProfilePerHost',
849 - 'wgProfileToDatabase', 'wgUDPProfilerHost', 'wgUDPProfilerPort' );
850 - $out .= $this->buildSimpleSettingArray( $arr );
851 - $out .= "</table>\n";
852 - return $out;
853 - }
854 -
855 - private function buildSiteSettings(){
856 - $out = $this->buildTableStart( 'configure-section-site' );
857 - $arr = array( 'wgAllowUserCss', 'wgAllowUserJs', 'wgDefaultUserOptions',
858 - 'wgCapitalLinks', 'wgDefaultLanguageVariant', 'wgDefaultRobotPolicy',
859 - 'wgExtraLanguageNames', 'wgExtraSubtitle', 'wgHideInterlanguageLinks',
860 - 'wgLegalTitleChars', 'wgNoFollowLinks', 'wgPageShowWatchingUsers',
861 - 'wgPageShowWatchingUsers', 'wgRestrictionLevels', 'wgRestrictionTypes',
862 - 'wgSiteNotice', 'wgSiteSupportPage', 'wgUrlProtocols', 'wgUseSiteCss',
863 - 'wgUseSiteJs' );
864 - $out .= $this->buildSimpleSettingArray( $arr );
865 - $out .= $this->buildTableHeading( 'configure-section-ajax' );
866 - $arr = array( 'wgUseAjax', 'wgAjaxSearch', 'wgAjaxUploadDestCheck',
867 - 'wgAjaxWatch', 'wgLivePreview' );
868 - $out .= $this->buildSimpleSettingArray( $arr );
869 - $out .= "</table>\n";
870 - return $out;
871 - }
872 -
873 - private function buildNamespacesSettings(){
874 - $out = $this->buildTableStart( 'configure-section-namespaces' );
875 - $arr = array( 'wgContentNamespaces', 'wgExtraNamespaces', 'wgMetaNamespace',
876 - 'wgMetaNamespaceTalk', 'wgNamespaceAliases', 'wgNamespaceProtection',
877 - 'wgNamespaceRobotPolicies', 'wgNamespacesToBeSearchedDefault',
878 - 'wgNamespacesWithSubpages', 'wgNoFollowNsExceptions', 'wgNonincludableNamespaces',
879 - 'wgArticleRobotPolicies' );
880 - $out .= $this->buildSimpleSettingArray( $arr );
881 - $out .= "</table>\n";
882 - return $out;
883 - }
884 -
885 - private function buildSkinSettings(){
886 - $out = $this->buildTableStart( 'configure-section-skin' );
887 - $arr = array( 'wgDefaultSkin', 'wgSkipSkin', 'wgSkipSkins', 'wgValidSkinNames' );
888 - $out .= $this->buildSimpleSettingArray( $arr );
889 - $out .= "</table>\n";
890 - return $out;
891 - }
892 -
893 - private function buildCategorySettings(){
894 - $out = $this->buildTableStart( 'configure-section-category' );
895 - $arr = array( 'wgCategoryMagicGallery', 'wgCategoryPagingLimit', 'wgUseCategoryBrowser' );
896 - $out .= $this->buildSimpleSettingArray( $arr );
897 - $out .= "</table>\n";
898 - return $out;
899 - }
900 -
901 - private function buildCacheSettings(){
902 - $out = $this->buildTableStart( 'configure-section-cache' );
903 - $arr = array( 'wgCacheEpoch', 'wgCachePages', 'wgForcedRawSMaxage', 'wgMainCacheType',
904 - 'wgQueryCacheLimit', 'wgRevisionCacheExpiry', 'wgThumbnailEpoch', 'wgTranscludeCacheExpiry',
905 - 'wgUseFileCache', 'wgFileCacheDirectory', 'wgUseGzip' );
906 - $out .= $this->buildSimpleSettingArray( $arr );
907 - $out .= $this->buildTableHeading( 'configure-section-pcache' );
908 - $arr = array( 'wgEnableParserCache', 'wgEnableSidebarCache', 'wgParserCacheType',
909 - 'wgSidebarCacheExpiry' );
910 - $out .= $this->buildSimpleSettingArray( $arr );
911 - $out .= $this->buildTableHeading( 'configure-section-messagecache' );
912 - $arr = array( 'wgMessageCacheType', 'wgLocalMessageCache', 'wgMsgCacheExpiry',
913 - 'wgCachedMessageArrays', 'wgCheckSerialized', 'wgLocalMessageCacheSerialized',
914 - 'wgMaxMsgCacheEntrySize' );
915 - $out .= $this->buildSimpleSettingArray( $arr );
916 - $out .= $this->buildTableHeading( 'configure-section-memcached' );
917 - $arr = array( 'wgLinkCacheMemcached', 'wgMemCachedDebug', 'wgMemCachedPersistent',
918 - 'wgMemCachedServers', 'wgSessionsInMemcached' );
919 - $out .= $this->buildSimpleSettingArray( $arr );
920 - $out .= "</table>\n";
921 - return $out;
922 - }
923 -
924 - private function buildInterwikiSettings(){
925 - $out = $this->buildTableStart( 'configure-section-interwiki' );
926 - $arr = array( 'wgEnableScaryTranscluding', 'wgImportSources', 'wgInterwikiCache',
927 - 'wgInterwikiExpiry', 'wgInterwikiFallbackSite', 'wgInterwikiScopes', 'wgLocalInterwiki' );
928 - $out .= $this->buildSimpleSettingArray( $arr );
929 - $out .= "</table>\n";
930 - return $out;
931 - }
932 -
933 - private function buildAccessSettings(){
934 - $out = $this->buildTableStart( 'configure-section-access' );
935 - $arr = array( 'wgAutopromote', 'wgAccountCreationThrottle', 'wgAllowPageInfo',
936 - 'wgAutoblockExpiry', 'wgDeleteRevisionsLimit', 'wgDisabledActions',
937 - 'wgEmailConfirmToEdit', 'wgEnableCascadingProtection', 'wgEnableAPI',
938 - 'wgEnableWriteAPI', 'wgImplicitGroups', 'wgPasswordSalt', 'wgReadOnly',
939 - 'wgReadOnlyFile', 'wgWhitelistRead' );
940 - $out .= $this->buildSimpleSettingArray( $arr );
941 - $out .= $this->buildTableHeading( 'configure-section-groups' );
942 - $arr = array( 'wgGroupPermissions', 'wgAddGroups', 'wgRemoveGroups', 'wgGroupsAddToSelf',
943 - 'wgGroupsRemoveFromSelf' );
944 - $out .= $this->buildSimpleSettingArray( $arr );
945 - $out .= $this->buildTableHeading( 'configure-section-block' );
946 - $arr = array( 'wgBlockAllowsUTEdit', 'wgSysopEmailBans', 'wgSysopRangeBans',
947 - 'wgSysopUserBans' );
948 - $out .= $this->buildSimpleSettingArray( $arr );
949 - $out .= "</table>\n";
950 - return $out;
951 - }
952 -
953 - private function buildRateLimitsSettings(){
954 - $out = $this->buildTableStart( 'configure-section-rates' );
955 - $arr = array( 'wgRateLimitLog', 'wgRateLimits', 'wgRateLimitsExcludedGroups' );
956 - $out .= $this->buildSimpleSettingArray( $arr );
957 - $out .= "</table>\n";
958 - return $out;
959 - }
960 -
961 - private function buildProxySettings(){
962 - $out = $this->buildTableStart( 'configure-section-proxy' );
963 - $arr = array( 'wgBlockOpenProxies', 'wgEnableSorbs', 'wgProxyList', 'wgProxyMemcExpiry',
964 - 'wgProxyPorts', 'wgProxyScriptPath', 'wgProxyWhitelist', 'wgSecretKey' );
965 - $out .= $this->buildSimpleSettingArray( $arr );
966 - $out .= "</table>\n";
967 - return $out;
968 - }
969 -
970 - private function buildSquidSettings(){
971 - $out = $this->buildTableStart( 'configure-section-squid' );
972 - $arr = array( 'wgInternalServer', 'wgMaxSquidPurgeTitles', 'wgSquidMaxage',
973 - 'wgSquidServers', 'wgSquidServersNoPurge', 'wgUseESI', 'wgUseSquid' );
974 - $out .= $this->buildSimpleSettingArray( $arr );
975 - $out .= "</table>\n";
976 - return $out;
977 - }
978 -
979 - private function buildCookieSettings(){
980 - $out = $this->buildTableStart( 'configure-section-cookie' );
981 - $arr = array( 'wgCookieDomain', 'wgCookieExpiration', 'wgCookieHttpOnly',
982 - 'wgCookiePath', 'wgCookieSecure', 'wgDisableCookieCheck', 'wgSessionName' );
983 - $out .= $this->buildSimpleSettingArray( $arr );
984 - $out .= "</table>\n";
985 - return $out;
986 - }
987 -
988 - private function buildReductionSettings(){
989 - $out = $this->buildTableStart( 'configure-section-reduction' );
990 - $arr = array( 'wgDisableAnonTalk', 'wgDisableCounters', 'wgDisableQueryPages',
991 - 'wgDisableQueryPageUpdate', 'wgDisableSearchContext', 'wgDisableSearchUpdate',
992 - 'wgDisableTextSearch', 'wgMiserMode', 'wgShowHostnames', 'wgUseDumbLinkUpdate',
993 - 'wgWantedPagesThreshold' );
994 - $out .= $this->buildSimpleSettingArray( $arr );
995 - $out .= "</table>\n";
996 - return $out;
997 - }
998 -
999 - private function buildUploadSettings(){
1000 - $out = $this->buildTableStart( 'configure-section-upload' );
1001 - $arr = array( 'wgAjaxLicensePreview', 'wgAllowCopyUploads', 'wgCheckFileExtensions',
1002 - 'wgEnableUploads', 'wgFileBlacklist', 'wgFileExtensions', 'wgFileStore',
1003 - 'wgLocalFileRepo', 'wgRemoteUploads', 'wgStrictFileExtensions', 'wgUploadSizeWarning',
1004 - 'wgMaxUploadSize', 'wgHTTPTimeout', 'wgHTTPProxy', 'wgSaveDeletedFiles' );
1005 - $out .= $this->buildSimpleSettingArray( $arr );
1006 - $out .= $this->buildTableHeading( 'configure-section-sharedupload' );
1007 - $out .= $this->buildSimpleSetting( 'wgForeignFileRepos' );
1008 - $out .= $this->buildTableHeading( 'configure-section-mime' );
1009 - $arr = array( 'wgLoadFileinfoExtension', 'wgMimeDetectorCommand', 'wgMimeInfoFile',
1010 - 'wgMimeTypeFile', 'wgVerifyMimeType', 'wgMimeTypeBlacklist' );
1011 - $out .= $this->buildSimpleSettingArray( $arr );
1012 - $out .= "</table>\n";
1013 - return $out;
1014 - }
1015 -
1016 - private function buildImageSettings(){
1017 - $out = $this->buildTableStart( 'configure-section-images' );
1018 - $arr = array( 'wgDjvuPostProcessor', 'wgDjvuRenderer', 'wgDjvuToXML',
1019 - 'wgGenerateThumbnailOnParse', 'wgFileRedirects', 'wgIgnoreImageErrors',
1020 - 'wgImageLimits', 'wgImageMagickConvertCommand', 'wgMaxImageArea', 'wgMediaHandlers',
1021 - 'wgThumbnailScriptPath', 'wgThumbUpright', 'wgUseImageMagick', 'wgShowEXIF',
1022 - 'wgThumbLimits', 'wgTrustedMediaFormats' );
1023 - $out .= $this->buildSimpleSettingArray( $arr );
1024 - $out .= $this->buildTableHeading( 'configure-section-svg' );
1025 - $arr = array( 'wgAllowTitlesInSVG', 'wgSVGConverter', 'wgSVGConverterPath',
1026 - 'wgSVGConverters', 'wgSVGMaxSize' );
1027 - $out .= $this->buildSimpleSettingArray( $arr );
1028 - $out .= $this->buildTableHeading( 'configure-section-antivirus' );
1029 - $arr = array( 'wgAntivirus', 'wgAntivirusRequired', 'wgAntivirusSetup' );
1030 - $out .= $this->buildSimpleSettingArray( $arr );
1031 - $out .= "</table>\n";
1032 - return $out;
1033 - }
1034 -
1035 - private function buildParserSettings(){
1036 - $out = $this->buildTableStart( 'configure-section-parser' );
1037 - $arr = array( 'wgAllowDisplayTitle', 'wgAllowExternalImages', 'wgAllowExternalImagesFrom',
1038 - 'wgExpensiveParserFunctionLimit', 'wgMaxPPNodeCount', 'wgMaxPPExpandDepth',
1039 - 'wgParserConf', 'wgParserCacheExpireTime' );
1040 - $out .= $this->buildSimpleSettingArray( $arr );
1041 - $out .= $this->buildTableHeading( 'configure-section-html' );
1042 - $arr = array( 'wgRawHtml', 'wgUserHtml' );
1043 - $out .= $this->buildSimpleSettingArray( $arr );
1044 - $out .= $this->buildTableHeading( 'configure-section-tex' );
1045 - $arr = array( 'wgTexvc', 'wgUseTeX' );
1046 - $out .= $this->buildSimpleSettingArray( $arr );
1047 - $out .= $this->buildTableHeading( 'configure-section-tidy' );
1048 - $arr = array( 'wgAlwaysUseTidy', 'wgDebugTidy', 'wgTidyBin', 'wgTidyConf',
1049 - 'wgTidyInternal', 'wgTidyOpts', 'wgUseTidy', 'wgValidateAllHtml' );
1050 - $out .= $this->buildSimpleSettingArray( $arr );
1051 - $out .= "</table>\n";
1052 - return $out;
1053 - }
1054 -
1055 - private function buildSpecialPagesSettings(){
1056 - $out = $this->buildTableStart( 'configure-section-specialpages' );
1057 - $arr = array( 'wgAllowSpecialInclusion', 'wgExportAllowHistory', 'wgCountCategorizedImagesAsUsed',
1058 - 'wgExportAllowListContributors', 'wgExportMaxHistory', 'wgImportTargetNamespace',
1059 - 'wgLogRestrictions', 'wgMaxRedirectLinksRetrieved', 'wgUseNPPatrol', 'wgSortSpecialPages' );
1060 - $out .= $this->buildSimpleSettingArray( $arr );
1061 - $out .= $this->buildTableHeading( 'configure-section-recentchanges' );
1062 - $arr = array( 'wgAllowCategorizedRecentChanges', 'wgPutIPinRC', 'wgRCChangedSizeThreshold',
1063 - 'wgRCMaxAge', 'wgRCShowChangedSize', 'wgRCShowWatchingUsers', 'wgUseRCPatrol',
1064 - 'wgRC2UDPAddress', 'wgRC2UDPPort', 'wgRC2UDPPrefix' );
1065 - $out .= $this->buildSimpleSettingArray( $arr );
1066 - $out .= "</table>\n";
1067 - return $out;
1068 - }
1069 -
1070 - private function buildUsersSettings(){
1071 - $out = $this->buildTableStart( 'configure-section-users' );
1072 - $arr = array( 'wgAutoConfirmAge', 'wgAutoConfirmCount', 'wgAllowRealName',
1073 - 'wgMaxNameChars', 'wgMinimalPasswordLength', 'wgMaxSigChars', 'wgPasswordReminderResendTime',
1074 - 'wgReservedUsernames', 'wgBrowserBlackList' );
1075 - $out .= $this->buildSimpleSettingArray( $arr );
1076 - $out .= "</table>\n";
1077 - return $out;
1078 - }
1079 -
1080 - private function buildFeedSettings(){
1081 - $out = $this->buildTableStart( 'configure-section-feed' );
1082 - $arr = array( 'wgFeed', 'wgFeedCacheTimeout', 'wgFeedDiffCutoff', 'wgFeedLimit' );
1083 - $out .= $this->buildSimpleSettingArray( $arr );
1084 - $out .= "</table>\n";
1085 - return $out;
1086 - }
1087 -
1088 - private function buildCopyrightSettings(){
1089 - $out = $this->buildTableStart( 'configure-section-copyright' );
1090 - $arr = array( 'wgCheckCopyrightUpload', 'wgCopyrightIcon', 'wgEnableCreativeCommonsRdf',
1091 - 'wgEnableDublinCoreRdf', 'wgMaxCredits', 'wgRightsIcon', 'wgRightsPage',
1092 - 'wgRightsText', 'wgRightsUrl', 'wgShowCreditsIfMax', 'wgUseCopyrightUpload' );
1093 - $out .= $this->buildSimpleSettingArray( $arr );
1094 - $out .= "</table>\n";
1095 - return $out;
1096 - }
1097 -
1098 - private function buildJobSettings(){
1099 - $out = $this->buildTableStart( 'configure-section-job' );
1100 - $arr = array( 'wgJobRunRate', 'wgUpdateRowsPerJob' );
1101 - $out .= $this->buildSimpleSettingArray( $arr );
1102 - $out .= "</table>\n";
1103 - return $out;
1104 - }
1105 -
1106 - private function buildExtensionSettings(){
1107 - $out = $this->buildTableStart( 'configure-section-extension' );
1108 - $arr = array( 'wgAllowSlowParserFunctions', 'wgDisableInternalSearch',
1109 - 'wgExternalStores', 'wgSearchForwardUrl' );
1110 - $out .= $this->buildSimpleSettingArray( $arr );
1111 - $out .= "</table>\n";
1112 - return $out;
1113 - }
1114 -
1115 - private function buildHtcpSettings(){
1116 - $out = $this->buildTableStart( 'configure-section-htcp' );
1117 - $arr = array( 'wgHTCPMulticastAddress', 'wgHTCPMulticastTTL', 'wgHTCPPort' );
1118 - $out .= $this->buildSimpleSettingArray( $arr );
1119 - $out .= "</table>\n";
1120 - return $out;
1121 - }
1122 -
1123 - private function buildMiscSettings(){
1124 - $out = $this->buildTableStart( 'configure-section-misc' );
1125 - $arr = array( 'wgAntiLockFlags', 'wgBreakFrames', 'wgClockSkewFudge', 'wgCommandLineDarkBg',
1126 - 'wgCompressRevisions', 'wgDisableHardRedirects', 'wgDisableOutputCompression',
1127 - 'wgEnableMWSuggest', 'wgExternalDiffEngine', 'wgExtraRandompageSQL',
1128 - 'wgGoToEdit', 'wgGrammarForms', 'wgHitcounterUpdateFreq', 'wgJsMimeType',
1129 - 'wgMaxArticleSize', 'wgMaxShellFileSize', 'wgMaxShellMemory', 'wgMaxTocLevel',
1130 - 'wgMWSuggestTemplate', 'wgOpenSearchTemplate', 'wgRedirectSources',
1131 - 'wgShowIPinHeader', 'wgSpamRegex', 'wgUpdateRowsPerQuery', 'wgUseCommaCount',
1132 - 'wgUseETag', 'wgUseExternalEditor' );
1133 - $out .= $this->buildSimpleSettingArray( $arr );
1134 - $out .= "</table>\n";
1135 - return $out;
1136 - }
1137670 }
Index: trunk/extensions/Configure/Configure.settings.php
@@ -2,465 +2,580 @@
33 if ( !defined( 'MEDIAWIKI' ) ) die();
44
55 /**
6 - * Array mapping all editable settings to their type.
7 - * These settings are in the same order as
 6+ * Array mapping all editable settings to their type depending of their section
 7+ * First two keys will be used to show sections
 8+ * These settings are more or less in the same order as
89 * http://www.mediawiki.org/wiki/Manual:Configuration_settings
910 */
1011 $settings = array(
11 -# General
12 - 'wgSitename' => 'text',
13 - 'wgAppleTouchIcon' => 'text',
14 - 'wgArticlePath' => 'text',
15 - 'wgDiff3' => 'text',
16 - 'wgFavicon' => 'text',
17 - 'wgLogo' => 'text',
18 - 'wgMathDirectory' => 'text',
19 - 'wgMathPath' => 'text',
20 - 'wgRedirectScript' => 'text',
21 - 'wgScriptExtension' => 'text',
22 - 'wgScriptPath' => 'text',
23 - 'wgStyleDirectory' => 'text',
24 - 'wgStylePath' => 'text',
25 -# 'wgStyleSheetPath' => 'text',
26 - 'wgTmpDirectory' => 'text',
27 - 'wgUsePathInfo' => 'bool',
28 -# 'wgUploadDirectory' => 'text',
29 - 'wgUploadNavigationUrl' => 'text',
30 -# 'wgUploadPath' => 'text',
31 - 'wgVariantArticlePath' => 'text',
32 -# Db
33 - 'wgAllDBsAreLocalhost' => 'bool',
34 - 'wgAlternateMaster' => 'array',
35 - 'wgCheckDBSchema' => 'bool',
36 - 'wgDBAvgStatusPoll' => 'int',
37 - 'wgDBClusterTimeout' => 'int',
38 - 'wgDBerrorLog' => 'text',
39 - 'wgDBminWordLen' => 'int',
40 - 'wgDBmwschema' => 'text',
41 - 'wgDBmysql5' => 'bool',
42 - 'wgDBprefix' => 'text',
43 -# 'wgDBschema' => 'text',
44 - 'wgDBservers' => 'array',
45 - 'wgDBTableOptions' => 'text',
46 - 'wgDBtransactions' => 'bool',
47 - 'wgDBts2schema' => 'text',
48 - 'wgDBtype' => array( 'mysql' => 'MySQL', 'postgres' => 'PostreSQL' ),
49 - 'wgDefaultExternalStore' => 'array',
50 - 'wgLBFactoryConf' => 'array',
51 - 'wgLocalDatabases' => 'array',
52 - 'wgMasterWaitTimeout' => 'int',
53 - 'wgSearchType' => 'text',
54 - 'wgSlaveLagCritical' => 'int',
55 - 'wgSlaveLagWarning' => 'int',
56 - 'wgExternalServers' => 'array',
57 -# Email
58 - 'wgEmailAuthentication' => 'bool',
59 - 'wgEmergencyContact' => 'text',
60 - 'wgEnableEmail' => 'bool',
61 - 'wgEnableUserEmail' => 'bool',
62 - 'wgNoReplyAddress' => 'text',
63 - 'wgPasswordSender' => 'text',
64 - 'wgSMTP' => 'array',
65 - 'wgUserEmailUseReplyTo' => 'bool',
66 - 'wgEnotifFromEditor' => 'bool',
67 - 'wgEnotifImpersonal' => 'bool',
68 - 'wgEnotifMaxRecips' => 'int',
69 - 'wgEnotifMinorEdits' => 'bool',
70 - 'wgEnotifRevealEditorAddress' => 'bool',
71 - 'wgEnotifUseJobQ' => 'bool',
72 - 'wgEnotifUserTalk' => 'bool',
73 - 'wgEnotifWatchlist' => 'bool',
74 - 'wgShowUpdatedMarker' => 'bool',
75 - 'wgUsersNotifedOnAllChanges' => 'array',
76 - 'wgUsersNotifiedOnAllChanges' => 'array',
77 -# Localization
78 - 'wgAmericanDates' => 'bool',
79 - 'wgDisableLangConversion' => 'bool',
80 - 'wgDocType' => 'text',
81 - 'wgDTD' => 'text',
82 -# 'wgEditEncoding' => 'text',
83 - 'wgForceUIMsgAsContentMsg' => 'array',
84 -# 'wgInputEncoding' => 'text',
85 - 'wgInterwikiMagic' => 'bool',
86 - 'wgLanguageCode' => 'lang',
87 - 'wgLegacyEncoding' => 'text',
88 - 'wgLocaltimezone' => 'text',
89 - 'wgLocalTZoffset' => 'int',
90 - 'wgLoginLanguageSelector' => 'bool',
91 - 'wgMimeType' => 'text',
92 - 'wgMsgCacheExpiry' => 'int',
93 -# 'wgOutputEncoding' => 'text',
94 - 'wgTranslateNumerals' => 'bool',
95 - 'wgUseDatabaseMessages' => 'bool',
96 - 'wgUseDynamicDates' => 'bool',
97 - 'wgUseZhdaemon' => 'bool',
98 - 'wgXhtmlDefaultNamespace' => 'text',
99 - 'wgXhtmlNamespaces' => 'array',
100 - 'wgZhdaemonHost' => 'text',
101 - 'wgZhdaemonPort' => 'int',
102 -# Debug
103 - 'wgColorErrors' => 'bool',
104 - 'wgDebugComments' => 'bool',
105 - 'wgDebugDumpSql' => 'bool',
106 - 'wgDebugLogFile' => 'text',
107 - 'wgDebugLogGroups' => 'array',
108 - 'wgDebugRawPage' => 'bool',
109 - 'wgDebugRedirects' => 'bool',
110 - 'wgLogQueries' => 'bool',
111 - 'wgShowSQLErrors' => 'bool',
112 - 'wgStatsMethod' => array( 'cache' => 'Cache', 'udp' => 'UDP', 0 => 'None' ),
113 - 'wgDebugFunctionEntry' => 'bool',
114 - 'wgDebugProfiling' => 'bool',
115 - 'wgDebugSquid' => 'bool',
116 - 'wgProfileCallTree' => 'bool',
117 - 'wgProfileLimit' => 'int',
118 - 'wgProfileOnly' => 'bool',
119 - 'wgProfilePerHost' => 'bool',
120 - 'wgProfileSampleRate' => 'int',
121 - 'wgProfileToDatabase' => 'bool',
122 - 'wgProfilerType' => 'text',
123 - 'wgProfiling' => 'bool',
124 - 'wgUDPProfilerHost' => 'text',
125 - 'wgUDPProfilerPort' => 'int',
126 -# Site custom
127 -# 'wgAjaxExportList' => 'array',
128 - 'wgAjaxSearch' => 'bool',
129 - 'wgAjaxUploadDestCheck' => 'bool',
130 - 'wgAjaxWatch' => 'bool',
131 - 'wgAllowUserCss' => 'bool',
132 - 'wgAllowUserJs' => 'bool',
133 - 'wgDefaultUserOptions' => 'array',
134 - 'wgCapitalLinks' => 'bool',
135 - 'wgDefaultLanguageVariant' => 'text',
136 - 'wgDefaultRobotPolicy' => 'text',
137 - 'wgExtraLanguageNames' => 'array',
138 - 'wgExtraSubtitle' => 'text',
139 - 'wgHideInterlanguageLinks' => 'bool',
140 - 'wgLegalTitleChars' => 'text',
141 - 'wgNoFollowLinks' => 'bool',
142 - 'wgPageShowWatchingUsers' => 'bool',
143 - 'wgRestrictionLevels' => 'array',
144 - 'wgSiteNotice' => 'text',
145 - 'wgSiteSupportPage' => 'text',
146 - 'wgUrlProtocols' => 'array',
147 - 'wgUseAjax' => 'bool',
148 - 'wgUseSiteCss' => 'bool',
149 - 'wgUseSiteJs' => 'bool',
150 - 'wgContentNamespaces' => 'array',
151 - 'wgExtraNamespaces' => 'array',
152 - 'wgMetaNamespace' => 'text',
153 - 'wgMetaNamespaceTalk' => 'text',
154 - 'wgNamespaceAliases' => 'array',
155 - 'wgNamespaceProtection' => 'array',
156 - 'wgNamespaceRobotPolicies' => 'array',
157 - 'wgNamespacesToBeSearchedDefault' => 'array',
158 - 'wgNamespacesWithSubpages' => 'array',
159 - 'wgNoFollowNsExceptions' => 'array',
160 - 'wgNonincludableNamespaces' => 'array',
161 - 'wgArticleRobotPolicies' => 'array',
162 -# Skins
163 - 'wgDefaultSkin' => 'text',
164 - 'wgSkipSkin' => 'text',
165 - 'wgSkipSkins' => 'array',
166 - 'wgValidSkinNames' => 'array',
167 -# Category
168 - 'wgCategoryMagicGallery' => 'bool',
169 - 'wgCategoryPagingLimit' => 'int',
170 - 'wgUseCategoryBrowser' => 'bool',
171 -# Cache
172 - 'wgCachedMessageArrays' => 'text',
173 - 'wgCacheEpoch' => 'text',
174 - 'wgCachePages' => 'bool',
175 - 'wgCheckSerialized' => 'bool',
176 - 'wgEnableParserCache' => 'bool',
177 - 'wgEnableSidebarCache' => 'bool',
178 - 'wgFileCacheDirectory' => 'text',
179 - 'wgForcedRawSMaxage' => 'int',
180 - 'wgLocalMessageCache' => 'text',
181 - 'wgLocalMessageCacheSerialized' => 'bool',
182 - 'wgMainCacheType' => array( -1 => 'Anything', 0 => 'None',
 12+ 'general' => array(
 13+ 'general' => array(
 14+ 'wgSitename' => 'text',
 15+ ),
 16+ 'paths' => array(
 17+ 'wgAppleTouchIcon' => 'text',
 18+ 'wgArticlePath' => 'text',
 19+ 'wgDiff3' => 'text',
 20+ 'wgFavicon' => 'text',
 21+ 'wgLogo' => 'text',
 22+ 'wgMathDirectory' => 'text',
 23+ 'wgMathPath' => 'text',
 24+ 'wgRedirectScript' => 'text',
 25+ 'wgScriptExtension' => 'text',
 26+ 'wgScriptPath' => 'text',
 27+ 'wgStyleDirectory' => 'text',
 28+ 'wgStylePath' => 'text',
 29+# 'wgStyleSheetPath' => 'text',
 30+ 'wgTmpDirectory' => 'text',
 31+ 'wgUsePathInfo' => 'bool',
 32+# 'wgUploadDirectory' => 'text',
 33+ 'wgUploadNavigationUrl' => 'text',
 34+# 'wgUploadPath' => 'text',
 35+ 'wgVariantArticlePath' => 'text',
 36+ ),
 37+ ),
 38+ 'db' => array(
 39+ 'db' => array(
 40+ 'wgAllDBsAreLocalhost' => 'bool',
 41+ 'wgAlternateMaster' => 'array',
 42+ 'wgCheckDBSchema' => 'bool',
 43+ 'wgDBAvgStatusPoll' => 'int',
 44+ 'wgDBClusterTimeout' => 'int',
 45+ 'wgDBerrorLog' => 'text',
 46+ 'wgDBminWordLen' => 'int',
 47+ 'wgDBmwschema' => 'text',
 48+ 'wgDBmysql5' => 'bool',
 49+ 'wgDBprefix' => 'text',
 50+# 'wgDBschema' => 'text',
 51+ 'wgDBservers' => 'array',
 52+ 'wgDBTableOptions' => 'text',
 53+ 'wgDBtransactions' => 'bool',
 54+ 'wgDBts2schema' => 'text',
 55+ 'wgDBtype' => array( 'mysql' => 'MySQL', 'postgres' => 'PostreSQL' ),
 56+ 'wgDefaultExternalStore' => 'array',
 57+ 'wgLBFactoryConf' => 'array',
 58+ 'wgLocalDatabases' => 'array',
 59+ 'wgMasterWaitTimeout' => 'int',
 60+ 'wgSearchType' => 'text',
 61+ 'wgSlaveLagCritical' => 'int',
 62+ 'wgSlaveLagWarning' => 'int',
 63+ 'wgExternalServers' => 'array',
 64+ ),
 65+ ),
 66+ 'email' => array(
 67+ 'enotif' => array(
 68+ 'wgEmailAuthentication' => 'bool',
 69+ 'wgEmergencyContact' => 'text',
 70+ 'wgEnableEmail' => 'bool',
 71+ 'wgEnableUserEmail' => 'bool',
 72+ 'wgNoReplyAddress' => 'text',
 73+ 'wgPasswordSender' => 'text',
 74+ 'wgSMTP' => 'array',
 75+ 'wgUserEmailUseReplyTo' => 'bool',
 76+ ),
 77+ 'enotif' => array(
 78+ 'wgEnotifFromEditor' => 'bool',
 79+ 'wgEnotifImpersonal' => 'bool',
 80+ 'wgEnotifMaxRecips' => 'int',
 81+ 'wgEnotifMinorEdits' => 'bool',
 82+ 'wgEnotifRevealEditorAddress' => 'bool',
 83+ 'wgEnotifUseJobQ' => 'bool',
 84+ 'wgEnotifUserTalk' => 'bool',
 85+ 'wgEnotifWatchlist' => 'bool',
 86+ 'wgShowUpdatedMarker' => 'bool',
 87+ 'wgUsersNotifedOnAllChanges' => 'array',
 88+ 'wgUsersNotifiedOnAllChanges' => 'array',
 89+ ),
 90+ ),
 91+ 'localization' => array(
 92+ 'localization' => array(
 93+ 'wgAmericanDates' => 'bool',
 94+ 'wgDisableLangConversion' => 'bool',
 95+# 'wgEditEncoding' => 'text',
 96+ 'wgForceUIMsgAsContentMsg' => 'array',
 97+# 'wgInputEncoding' => 'text',
 98+ 'wgInterwikiMagic' => 'bool',
 99+ 'wgLanguageCode' => 'lang',
 100+ 'wgLegacyEncoding' => 'text',
 101+ 'wgLocaltimezone' => 'text',
 102+ 'wgLocalTZoffset' => 'int',
 103+ 'wgLoginLanguageSelector' => 'bool',
 104+# 'wgOutputEncoding' => 'text',
 105+ 'wgTranslateNumerals' => 'bool',
 106+ 'wgUseDatabaseMessages' => 'bool',
 107+ 'wgUseDynamicDates' => 'bool',
 108+ 'wgUseZhdaemon' => 'bool',
 109+ 'wgZhdaemonHost' => 'text',
 110+ 'wgZhdaemonPort' => 'int',
 111+ ),
 112+ 'html' => array(
 113+ 'wgDocType' => 'text',
 114+ 'wgDTD' => 'text',
 115+ 'wgMimeType' => 'text',
 116+ 'wgXhtmlDefaultNamespace' => 'text',
 117+ 'wgXhtmlNamespaces' => 'array',
 118+ ),
 119+ ),
 120+ 'debug' => array(
 121+ 'debug' => array(
 122+ 'wgColorErrors' => 'bool',
 123+ 'wgDebugComments' => 'bool',
 124+ 'wgDebugDumpSql' => 'bool',
 125+ 'wgDebugLogFile' => 'text',
 126+ 'wgDebugLogGroups' => 'array',
 127+ 'wgDebugRawPage' => 'bool',
 128+ 'wgDebugRedirects' => 'bool',
 129+ 'wgLogQueries' => 'bool',
 130+ 'wgShowSQLErrors' => 'bool',
 131+ 'wgStatsMethod' => array( 'cache' => 'Cache', 'udp' => 'UDP', 0 => 'None' ),
 132+ ),
 133+ 'profiling' => array(
 134+ 'wgDebugFunctionEntry' => 'bool',
 135+ 'wgDebugProfiling' => 'bool',
 136+ 'wgDebugSquid' => 'bool',
 137+ 'wgProfileCallTree' => 'bool',
 138+ 'wgProfileLimit' => 'int',
 139+ 'wgProfileOnly' => 'bool',
 140+ 'wgProfilePerHost' => 'bool',
 141+ 'wgProfileSampleRate' => 'int',
 142+ 'wgProfileToDatabase' => 'bool',
 143+ 'wgProfilerType' => 'text',
 144+ 'wgProfiling' => 'bool',
 145+ 'wgUDPProfilerHost' => 'text',
 146+ 'wgUDPProfilerPort' => 'int',
 147+ ),
 148+ ),
 149+ 'site' => array(
 150+ 'site' => array(
 151+ 'wgAllowUserCss' => 'bool',
 152+ 'wgAllowUserJs' => 'bool',
 153+ 'wgDefaultUserOptions' => 'array',
 154+ 'wgCapitalLinks' => 'bool',
 155+ 'wgDefaultLanguageVariant' => 'text',
 156+ 'wgDefaultRobotPolicy' => 'text',
 157+ 'wgExtraLanguageNames' => 'array',
 158+ 'wgExtraSubtitle' => 'text',
 159+ 'wgHideInterlanguageLinks' => 'bool',
 160+ 'wgLegalTitleChars' => 'text',
 161+ 'wgNoFollowLinks' => 'bool',
 162+ 'wgPageShowWatchingUsers' => 'bool',
 163+ 'wgRestrictionLevels' => 'array',
 164+ 'wgSiteNotice' => 'text',
 165+ 'wgSiteSupportPage' => 'text',
 166+ 'wgUrlProtocols' => 'array',
 167+ 'wgUseAjax' => 'bool',
 168+ 'wgUseSiteCss' => 'bool',
 169+ 'wgUseSiteJs' => 'bool',
 170+ 'wgArticleRobotPolicies' => 'array',
 171+ ),
 172+ 'ajax' => array(
 173+# 'wgAjaxExportList' => 'array',
 174+ 'wgAjaxSearch' => 'bool',
 175+ 'wgAjaxUploadDestCheck' => 'bool',
 176+ 'wgAjaxWatch' => 'bool',
 177+ 'wgLivePreview' => 'bool',
 178+ ),
 179+ ),
 180+ 'namespaces' => array(
 181+ 'namespaces' => array(
 182+ 'wgContentNamespaces' => 'array',
 183+ 'wgExtraNamespaces' => 'array',
 184+ 'wgMetaNamespace' => 'text',
 185+ 'wgMetaNamespaceTalk' => 'text',
 186+ 'wgNamespaceAliases' => 'array',
 187+ 'wgNamespaceProtection' => 'array',
 188+ 'wgNamespaceRobotPolicies' => 'array',
 189+ 'wgNamespacesToBeSearchedDefault' => 'array',
 190+ 'wgNamespacesWithSubpages' => 'array',
 191+ 'wgNoFollowNsExceptions' => 'array',
 192+ 'wgNonincludableNamespaces' => 'array',
 193+ ),
 194+ ),
 195+ 'skin' => array(
 196+ 'skin' => array(
 197+ 'wgDefaultSkin' => 'text',
 198+ 'wgSkipSkin' => 'text',
 199+ 'wgSkipSkins' => 'array',
 200+ 'wgValidSkinNames' => 'array',
 201+ ),
 202+ ),
 203+ 'category' => array(
 204+ 'category' => array(
 205+ 'wgCategoryMagicGallery' => 'bool',
 206+ 'wgCategoryPagingLimit' => 'int',
 207+ 'wgUseCategoryBrowser' => 'bool',
 208+ ),
 209+ ),
 210+ 'cache' => array(
 211+ 'cache' => array(
 212+ 'wgMainCacheType' => array( -1 => 'Anything', 0 => 'None',
183213 1 => 'DB', 2 => 'Memcached',
184214 3 => 'Accel', 4 => 'DBA' ),
185 - 'wgMaxMsgCacheEntrySize' => 'int',
186 - 'wgMessageCacheType' => array( -1 => 'Anything', 0 => 'None',
187 - 1 => 'DB', 2 => 'Memcached',
188 - 3 => 'Accel', 4 => 'DBA' ),
189 - 'wgParserCacheType' => array( -1 => 'Anything', 0 => 'None',
190 - 1 => 'DB', 2 => 'Memcached',
191 - 3 => 'Accel', 4 => 'DBA' ),
192 - 'wgQueryCacheLimit' => 'int',
193 - 'wgRevisionCacheExpiry' => 'int',
194 - 'wgThumbnailEpoch' => 'text',
195 - 'wgTranscludeCacheExpiry' => 'int',
196 - 'wgUseFileCache' => 'bool',
197 - 'wgUseGzip' => 'bool',
198 - 'wgSidebarCacheExpiry' => 'int',
199 - 'wgLinkCacheMemcached' => 'bool',
200 - 'wgMemCachedDebug' => 'bool',
201 - 'wgMemCachedPersistent' => 'bool',
202 - 'wgMemCachedServers' => 'array',
203 - 'wgSessionsInMemcached' => 'bool',
204 - 'wgUseWatchlistCache' => 'bool',
205 - 'wgWLCacheTimeout' => 'int',
206 -# Interwiki
207 - 'wgEnableScaryTranscluding' => 'bool',
208 - 'wgImportSources' => 'array',
209 - 'wgInterwikiCache' => 'text',
210 - 'wgInterwikiExpiry' => 'int',
211 - 'wgInterwikiFallbackSite' => 'text',
212 - 'wgInterwikiScopes' => 'int',
213 - 'wgLocalInterwiki' => 'text',
214 -# Access
215 - 'wgAutopromote' => 'array',
216 - 'wgAccountCreationThrottle' => 'int',
217 - 'wgAddGroups' => 'array',
218 - 'wgAllowPageInfo' => 'bool',
219 - 'wgAutoblockExpiry' => 'int',
220 - 'wgBlockAllowsUTEdit' => 'bool',
221 - 'wgDeleteRevisionsLimit' => 'int',
222 - 'wgDisabledActions' => 'array',
223 - 'wgEmailConfirmToEdit' => 'bool',
224 - 'wgEnableCascadingProtection' => 'bool',
225 - 'wgEnableAPI' => 'bool',
226 - 'wgEnableWriteAPI' => 'bool',
227 - 'wgGroupPermissions' => 'array',
228 - 'wgGroupsAddToSelf' => 'array',
229 - 'wgGroupsRemoveFromSelf' => 'array',
230 - 'wgImplicitGroups' => 'array',
231 - 'wgPasswordSalt' => 'bool',
232 - 'wgReadOnly' => 'text',
233 - 'wgReadOnlyFile' => 'text',
234 - 'wgRemoveGroups' => 'array',
235 - 'wgSysopEmailBans' => 'bool',
236 - 'wgSysopRangeBans' => 'bool',
237 - 'wgSysopUserBans' => 'bool',
238 - 'wgWhitelistRead' => 'array',
239 -# Rate limits
240 - 'wgRateLimitLog' => 'text',
241 - 'wgRateLimits' => 'array',
242 - 'wgRateLimitsExcludedGroups' => 'array',
243 -# Proxies
244 - 'wgBlockOpenProxies' => 'bool',
245 - 'wgEnableSorbs' => 'bool',
246 - 'wgProxyList' => 'array',
247 - 'wgProxyMemcExpiry' => 'int',
248 - 'wgProxyPorts' => 'array',
249 - 'wgProxyScriptPath' => 'text',
250 - 'wgProxyWhitelist' => 'array',
251 - 'wgSecretKey' => 'text',
252 -# Squid
253 - 'wgInternalServer' => 'text',
254 - 'wgMaxSquidPurgeTitles' => 'int',
255 - 'wgSquidMaxage' => 'int',
256 - 'wgSquidServers' => 'array',
257 - 'wgSquidServersNoPurge' => 'array',
258 - 'wgUseESI' => 'bool',
259 - 'wgUseSquid' => 'bool',
260 -# Cookies
261 - 'wgCookieDomain' => 'text',
262 - 'wgCookieExpiration' => 'int',
263 - 'wgCookieHttpOnly' => 'bool',
264 - 'wgCookiePath' => 'text',
265 - 'wgCookieSecure' => 'bool',
266 - 'wgDisableCookieCheck' => 'bool',
267 - 'wgSessionName' => 'text',
268 -# Reduction
269 - 'wgDisableAnonTalk' => 'bool',
270 - 'wgDisableCounters' => 'bool',
271 - 'wgDisableQueryPages' => 'bool',
272 - 'wgDisableQueryPageUpdate' => 'array',
273 - 'wgDisableSearchContext' => 'bool',
274 - 'wgDisableSearchUpdate' => 'bool',
275 - 'wgDisableTextSearch' => 'bool',
276 - 'wgMiserMode' => 'bool',
277 - 'wgShowHostnames' => 'bool',
278 - 'wgUseDumbLinkUpdate' => 'bool',
279 - 'wgWantedPagesThreshold' => 'int',
280 -# Uploads
281 - 'wgAjaxLicensePreview' => 'bool',
282 - 'wgAllowCopyUploads' => 'bool',
283 - 'wgCheckFileExtensions' => 'bool',
284 - 'wgEnableUploads' => 'bool',
285 - 'wgFileBlacklist' => 'array',
286 - 'wgFileExtensions' => 'array',
287 - 'wgFileStore' => 'array',
288 - 'wgLocalFileRepo' => 'array',
289 - 'wgRemoteUploads' => 'bool',
290 - 'wgStrictFileExtensions' => 'bool',
291 - 'wgUploadSizeWarning' => 'int',
292 - 'wgMaxUploadSize' => 'int',
293 - 'wgHTTPTimeout' => 'int',
294 - 'wgHTTPProxy' => 'text',
295 - 'wgSaveDeletedFiles' => 'bool',
296 -
297 - 'wgForeignFileRepos' => 'array',
298 -
299 - 'wgLoadFileinfoExtension' => 'bool',
300 - 'wgMimeDetectorCommand' => 'text',
301 - 'wgMimeInfoFile' => 'text',
302 - 'wgMimeTypeFile' => 'text',
303 - 'wgVerifyMimeType' => 'bool',
304 - 'wgMimeTypeBlacklist' => 'array',
305 -# Images
306 - 'wgAllowTitlesInSVG' => 'bool',
307 - 'wgDjvuPostProcessor' => 'text',
308 - 'wgDjvuRenderer' => 'text',
309 - 'wgDjvuToXML' => 'text',
310 - 'wgFileRedirects' => 'bool',
311 - 'wgGenerateThumbnailOnParse' => 'bool',
312 - 'wgIgnoreImageErrors' => 'bool',
313 - 'wgImageLimits' => 'array',
314 - 'wgImageMagickConvertCommand' => 'text',
315 - 'wgMaxImageArea' => 'int',
316 - 'wgMediaHandlers' => 'array',
317 - 'wgSVGConverter' => 'text',
318 - 'wgSVGConverterPath' => 'text',
319 - 'wgSVGConverters' => 'array',
320 - 'wgThumbnailScriptPath' => 'text',
321 - 'wgThumbUpright' => 'text',
322 - 'wgUseImageMagick' => 'bool',
323 - 'wgShowEXIF' => 'bool',
324 - 'wgUseImageResize' => 'bool',
325 - 'wgThumbLimits' => 'array',
326 - 'wgTrustedMediaFormats' => 'array',
327 - 'wgSVGMaxSize' => 'int',
328 -
329 - 'wgAntivirus' => 'text',
330 - 'wgAntivirusRequired' => 'bool',
331 - 'wgAntivirusSetup' => 'array',
332 -# Parser
333 - 'wgAllowDisplayTitle' => 'bool',
334 - 'wgAllowExternalImages' => 'bool',
335 - 'wgAllowExternalImagesFrom' => 'text',
336 - 'wgExpensiveParserFunctionLimit' => 'int',
337 - 'wgMaxPPExpandDepth' => 'int',
338 - 'wgMaxPPNodeCount' => 'int',
339 - 'wgParserConf' => 'array',
340 - 'wgParserCacheExpireTime' => 'int',
341 -# 'wgParserTestFiles' => 'array',
342 - 'wgUseXMLparser' => 'bool',
343 -
344 - 'wgRawHtml' => 'bool',
345 - 'wgUserHtml' => 'bool',
346 -
347 - 'wgTexvc' => 'text',
348 - 'wgUseTeX' => 'bool',
349 -
350 - 'wgAlwaysUseTidy' => 'bool',
351 - 'wgDebugTidy' => 'bool',
352 - 'wgTidyBin' => 'text',
353 - 'wgTidyConf' => 'text',
354 - 'wgTidyInternal' => 'bool',
355 - 'wgTidyOpts' => 'text',
356 - 'wgUseTidy' => 'bool',
357 - 'wgValidateAllHtml' => 'bool',
358 -# Special pages
359 - 'wgAllowSpecialInclusion' => 'bool',
360 - 'wgExportAllowHistory' => 'bool',
361 - 'wgExportAllowListContributors' => 'bool',
362 - 'wgExportMaxHistory' => 'int',
363 - 'wgImportTargetNamespace' => 'text',
364 -# 'wgLogActions' => 'array',
365 -# 'wgLogHeaders' => 'array',
366 -# 'wgLogNames' => 'array',
367 - 'wgLogRestrictions' => 'array',
368 -# 'wgLogTypes' => 'array',
369 - 'wgMaxRedirectLinksRetrieved' => 'int',
370 - 'wgUseNPPatrol' => 'bool',
371 -
372 - 'wgAllowCategorizedRecentChanges' => 'bool',
373 - 'wgPutIPinRC' => 'bool',
374 - 'wgRCChangedSizeThreshold' => 'int',
375 - 'wgRCMaxAge' => 'int',
376 - 'wgRCShowChangedSize' => 'bool',
377 - 'wgRCShowWatchingUsers' => 'bool',
378 - 'wgUseRCPatrol' => 'bool',
379 - 'wgRC2UDPAddress' => 'text',
380 - 'wgRC2UDPPort' => 'int',
381 - 'wgRC2UDPPrefix' => 'text',
382 -# Users
383 - 'wgAutoConfirmAge' => 'int',
384 - 'wgAutoConfirmCount' => 'int',
385 - 'wgAllowRealName' => 'bool',
386 - 'wgMaxNameChars' => 'int',
387 - 'wgMinimalPasswordLength' => 'int',
388 - 'wgMaxSigChars' => 'int',
389 - 'wgPasswordReminderResendTime' => 'int',
390 - 'wgReservedUsernames' => 'array',
391 - 'wgBrowserBlackList' => 'array',
392 -# Feed
393 - 'wgFeed' => 'bool',
394 - 'wgFeedCacheTimeout' => 'int',
395 - 'wgFeedDiffCutoff' => 'int',
396 - 'wgFeedLimit' => 'int',
397 -# Copyright
398 - 'wgCheckCopyrightUpload' => 'bool',
399 - 'wgCopyrightIcon' => 'text',
400 - 'wgEnableCreativeCommonsRdf' => 'bool',
401 - 'wgEnableDublinCoreRdf' => 'bool',
402 - 'wgMaxCredits' => 'int',
403 - 'wgRightsIcon' => 'text',
404 - 'wgRightsPage' => 'text',
405 - 'wgRightsText' => 'text',
406 - 'wgRightsUrl' => 'bool',
407 - 'wgShowCreditsIfMax' => 'bool',
408 - 'wgUseCopyrightUpload' => 'bool',
409 -# Jobs
410 - 'wgJobRunRate' => 'int',
411 -# 'wgJobClasses' => 'array',
412 - 'wgUpdateRowsPerJob' => 'int',
413 -# Extensions
414 - 'wgAllowSlowParserFunctions' => 'bool',
415 -# 'wgAPIModules' => 'array',
416 -# 'wgAutoloadClasses' => 'array',
417 - 'wgDisableInternalSearch' => 'bool',
418 -# 'wgExtensionCredits' => 'array',
419 -# 'wgExtensionFunctions' => 'array',
420 -# 'wgExtensionMessagesFiles' => 'array',
421 - 'wgExternalStores' => 'array',
422 -# 'wgHooks' => 'array',
423 -# 'wgPagePropLinkInvalidations' => 'array',
424 -# 'wgParserOutputHooks' => 'array',
425 - 'wgSearchForwardUrl' => 'text',
426 -# 'wgSkinExtensionFunctions' => 'array',
427 -# HTCP multicast purging
428 - 'wgHTCPMulticastAddress' => 'text',
429 - 'wgHTCPMulticastTTL' => 'int',
430 - 'wgHTCPPort' => 'int',
431 -# Miscellaneous settings
432 - 'wgAntiLockFlags' => 'int',
433 - 'wgBreakFrames' => 'bool',
434 - 'wgClockSkewFudge' => 'int',
435 - 'wgCommandLineDarkBg' => 'bool',
436 - 'wgCompressRevisions' => 'bool',
437 - 'wgCountCategorizedImagesAsUsed' => 'bool',
438 - 'wgDisableHardRedirects' => 'bool',
439 - 'wgDisableOutputCompression' => 'bool',
440 - 'wgEnableMWSuggest' => 'bool',
441 - 'wgExternalDiffEngine' => 'text',
442 - 'wgExtraRandompageSQL' => 'text',
443 -# 'wgFilterCallback' => 'text',
444 - 'wgGoToEdit' => 'bool',
445 - 'wgGrammarForms' => 'array',
446 - 'wgHitcounterUpdateFreq' => 'int',
447 - 'wgJsMimeType' => 'text',
448 - 'wgLivePreview' => 'bool',
449 - 'wgMaxArticleSize' => 'int',
450 - 'wgMaxShellFileSize' => 'int',
451 - 'wgMaxShellMemory' => 'int',
452 - 'wgMaxTocLevel' => 'int',
453 - 'wgMWSuggestTemplate' => 'text',
454 - 'wgOpenSearchTemplate' => 'text',
455 - 'wgRedirectSources' => 'array',
456 - 'wgRestrictionTypes' => 'array',
457 - 'wgShowIPinHeader' => 'bool',
458 - 'wgSortSpecialPages' => 'bool',
459 - 'wgSpamRegex' => 'text',
460 -# 'wgStyleVersion' => 'int',
461 - 'wgUpdateRowsPerQuery' => 'int',
462 - 'wgUseCommaCount' => 'int',
463 - 'wgUseETag' => 'bool',
464 - 'wgUseExternalEditor' => 'bool',
 215+ 'wgCacheEpoch' => 'text',
 216+ 'wgCachePages' => 'bool',
 217+ 'wgFileCacheDirectory' => 'text',
 218+ 'wgForcedRawSMaxage' => 'int',
 219+ 'wgQueryCacheLimit' => 'int',
 220+ 'wgRevisionCacheExpiry' => 'int',
 221+ 'wgThumbnailEpoch' => 'text',
 222+ 'wgTranscludeCacheExpiry' => 'int',
 223+ 'wgUseFileCache' => 'bool',
 224+ 'wgUseGzip' => 'bool',
 225+ 'wgUseWatchlistCache' => 'bool',
 226+ 'wgWLCacheTimeout' => 'int',
 227+ ),
 228+ 'pcache' => array(
 229+ 'wgParserCacheType' => array( -1 => 'Anything', 0 => 'None',
 230+ 1 => 'DB', 2 => 'Memcached',
 231+ 3 => 'Accel', 4 => 'DBA' ),
 232+ 'wgEnableParserCache' => 'bool',
 233+ 'wgEnableSidebarCache' => 'bool',
 234+ 'wgSidebarCacheExpiry' => 'int',
 235+ ),
 236+ 'messagecache' => array(
 237+ 'wgMessageCacheType' => array( -1 => 'Anything', 0 => 'None',
 238+ 1 => 'DB', 2 => 'Memcached',
 239+ 3 => 'Accel', 4 => 'DBA' ),
 240+ 'wgLocalMessageCache' => 'text',
 241+ 'wgMsgCacheExpiry' => 'int',
 242+ 'wgCachedMessageArrays' => 'text',
 243+ 'wgCheckSerialized' => 'bool',
 244+ 'wgLocalMessageCacheSerialized' => 'bool',
 245+ 'wgMaxMsgCacheEntrySize' => 'int',
 246+ ),
 247+ 'memcached' => array(
 248+ 'wgLinkCacheMemcached' => 'bool',
 249+ 'wgMemCachedDebug' => 'bool',
 250+ 'wgMemCachedPersistent' => 'bool',
 251+ 'wgMemCachedServers' => 'array',
 252+ 'wgSessionsInMemcached' => 'bool',
 253+ ),
 254+ ),
 255+ 'interwiki' => array(
 256+ 'interwiki' => array(
 257+ 'wgEnableScaryTranscluding' => 'bool',
 258+ 'wgImportSources' => 'array',
 259+ 'wgInterwikiCache' => 'text',
 260+ 'wgInterwikiExpiry' => 'int',
 261+ 'wgInterwikiFallbackSite' => 'text',
 262+ 'wgInterwikiScopes' => 'int',
 263+ 'wgLocalInterwiki' => 'text',
 264+ ),
 265+ ),
 266+ 'access' => array(
 267+ 'access' => array(
 268+ 'wgAutopromote' => 'array',
 269+ 'wgAccountCreationThrottle' => 'int',
 270+ 'wgAllowPageInfo' => 'bool',
 271+ 'wgAutoblockExpiry' => 'int',
 272+ 'wgDeleteRevisionsLimit' => 'int',
 273+ 'wgDisabledActions' => 'array',
 274+ 'wgEmailConfirmToEdit' => 'bool',
 275+ 'wgEnableCascadingProtection' => 'bool',
 276+ 'wgEnableAPI' => 'bool',
 277+ 'wgEnableWriteAPI' => 'bool',
 278+ 'wgImplicitGroups' => 'array',
 279+ 'wgPasswordSalt' => 'bool',
 280+ 'wgReadOnly' => 'text',
 281+ 'wgReadOnlyFile' => 'text',
 282+ 'wgWhitelistRead' => 'array',
 283+ ),
 284+ 'groups' => array(
 285+ 'wgGroupPermissions' => 'array',
 286+ 'wgAddGroups' => 'array',
 287+ 'wgRemoveGroups' => 'array',
 288+ 'wgGroupsAddToSelf' => 'array',
 289+ 'wgGroupsRemoveFromSelf' => 'array',
 290+ ),
 291+ 'block' => array(
 292+ 'wgBlockAllowsUTEdit' => 'bool',
 293+ 'wgSysopEmailBans' => 'bool',
 294+ 'wgSysopRangeBans' => 'bool',
 295+ 'wgSysopUserBans' => 'bool',
 296+ ),
 297+ ),
 298+ 'rates' => array(
 299+ 'rates' => array(
 300+ 'wgRateLimitLog' => 'text',
 301+ 'wgRateLimits' => 'array',
 302+ 'wgRateLimitsExcludedGroups' => 'array',
 303+ ),
 304+ ),
 305+ 'proxy' => array(
 306+ 'proxy' => array(
 307+ 'wgBlockOpenProxies' => 'bool',
 308+ 'wgEnableSorbs' => 'bool',
 309+ 'wgProxyList' => 'array',
 310+ 'wgProxyMemcExpiry' => 'int',
 311+ 'wgProxyPorts' => 'array',
 312+ 'wgProxyScriptPath' => 'text',
 313+ 'wgProxyWhitelist' => 'array',
 314+ 'wgSecretKey' => 'text',
 315+ ),
 316+ ),
 317+ 'squid' => array(
 318+ 'squid' => array(
 319+ 'wgInternalServer' => 'text',
 320+ 'wgMaxSquidPurgeTitles' => 'int',
 321+ 'wgSquidMaxage' => 'int',
 322+ 'wgSquidServers' => 'array',
 323+ 'wgSquidServersNoPurge' => 'array',
 324+ 'wgUseESI' => 'bool',
 325+ 'wgUseSquid' => 'bool',
 326+ ),
 327+ ),
 328+ 'cookie' => array(
 329+ 'cookie' => array(
 330+ 'wgCookieDomain' => 'text',
 331+ 'wgCookieExpiration' => 'int',
 332+ 'wgCookieHttpOnly' => 'bool',
 333+ 'wgCookiePath' => 'text',
 334+ 'wgCookieSecure' => 'bool',
 335+ 'wgDisableCookieCheck' => 'bool',
 336+ 'wgSessionName' => 'text',
 337+ ),
 338+ ),
 339+ 'reduction' => array(
 340+ 'reduction' => array(
 341+ 'wgDisableAnonTalk' => 'bool',
 342+ 'wgDisableCounters' => 'bool',
 343+ 'wgDisableQueryPages' => 'bool',
 344+ 'wgDisableQueryPageUpdate' => 'array',
 345+ 'wgDisableSearchContext' => 'bool',
 346+ 'wgDisableSearchUpdate' => 'bool',
 347+ 'wgDisableTextSearch' => 'bool',
 348+ 'wgMiserMode' => 'bool',
 349+ 'wgShowHostnames' => 'bool',
 350+ 'wgUseDumbLinkUpdate' => 'bool',
 351+ 'wgWantedPagesThreshold' => 'int',
 352+ ),
 353+ ),
 354+ 'upload' => array(
 355+ 'upload' => array(
 356+ 'wgAjaxLicensePreview' => 'bool',
 357+ 'wgAllowCopyUploads' => 'bool',
 358+ 'wgCheckFileExtensions' => 'bool',
 359+ 'wgEnableUploads' => 'bool',
 360+ 'wgFileBlacklist' => 'array',
 361+ 'wgFileExtensions' => 'array',
 362+ 'wgFileStore' => 'array',
 363+ 'wgLocalFileRepo' => 'array',
 364+ 'wgRemoteUploads' => 'bool',
 365+ 'wgStrictFileExtensions' => 'bool',
 366+ 'wgUploadSizeWarning' => 'int',
 367+ 'wgMaxUploadSize' => 'int',
 368+ 'wgHTTPTimeout' => 'int',
 369+ 'wgHTTPProxy' => 'text',
 370+ 'wgSaveDeletedFiles' => 'bool',
 371+ ),
 372+ 'sharedupload' => array(
 373+ 'wgForeignFileRepos' => 'array',
 374+ ),
 375+ 'mime' => array(
 376+ 'wgLoadFileinfoExtension' => 'bool',
 377+ 'wgMimeDetectorCommand' => 'text',
 378+ 'wgMimeInfoFile' => 'text',
 379+ 'wgMimeTypeFile' => 'text',
 380+ 'wgVerifyMimeType' => 'bool',
 381+ 'wgMimeTypeBlacklist' => 'array',
 382+ ),
 383+ ),
 384+ 'images' => array(
 385+ 'images' => array(
 386+ 'wgDjvuPostProcessor' => 'text',
 387+ 'wgDjvuRenderer' => 'text',
 388+ 'wgDjvuToXML' => 'text',
 389+ 'wgFileRedirects' => 'bool',
 390+ 'wgGenerateThumbnailOnParse' => 'bool',
 391+ 'wgIgnoreImageErrors' => 'bool',
 392+ 'wgImageLimits' => 'array',
 393+ 'wgImageMagickConvertCommand' => 'text',
 394+ 'wgMaxImageArea' => 'int',
 395+ 'wgMediaHandlers' => 'array',
 396+ 'wgThumbnailScriptPath' => 'text',
 397+ 'wgThumbUpright' => 'text',
 398+ 'wgUseImageMagick' => 'bool',
 399+ 'wgShowEXIF' => 'bool',
 400+ 'wgUseImageResize' => 'bool',
 401+ 'wgThumbLimits' => 'array',
 402+ 'wgTrustedMediaFormats' => 'array',
 403+ ),
 404+ 'svg' => array(
 405+ 'wgAllowTitlesInSVG' => 'bool',
 406+ 'wgSVGConverter' => 'text',
 407+ 'wgSVGConverterPath' => 'text',
 408+ 'wgSVGConverters' => 'array',
 409+ 'wgSVGMaxSize' => 'int',
 410+ ),
 411+ 'antivirus' => array(
 412+ 'wgAntivirus' => 'text',
 413+ 'wgAntivirusRequired' => 'bool',
 414+ 'wgAntivirusSetup' => 'array',
 415+ ),
 416+ ),
 417+ 'parser' => array(
 418+ 'parser' => array(
 419+ 'wgAllowDisplayTitle' => 'bool',
 420+ 'wgAllowExternalImages' => 'bool',
 421+ 'wgAllowExternalImagesFrom' => 'text',
 422+ 'wgExpensiveParserFunctionLimit' => 'int',
 423+ 'wgMaxPPExpandDepth' => 'int',
 424+ 'wgMaxPPNodeCount' => 'int',
 425+ 'wgParserConf' => 'array',
 426+ 'wgParserCacheExpireTime' => 'int',
 427+# 'wgParserTestFiles' => 'array',
 428+ 'wgUseXMLparser' => 'bool',
 429+ ),
 430+ 'html' => array(
 431+ 'wgRawHtml' => 'bool',
 432+ 'wgUserHtml' => 'bool',
 433+ ),
 434+ 'tex' => array(
 435+ 'wgTexvc' => 'text',
 436+ 'wgUseTeX' => 'bool',
 437+ ),
 438+ 'tidy' => array(
 439+ 'wgAlwaysUseTidy' => 'bool',
 440+ 'wgDebugTidy' => 'bool',
 441+ 'wgTidyBin' => 'text',
 442+ 'wgTidyConf' => 'text',
 443+ 'wgTidyInternal' => 'bool',
 444+ 'wgTidyOpts' => 'text',
 445+ 'wgUseTidy' => 'bool',
 446+ 'wgValidateAllHtml' => 'bool',
 447+ ),
 448+ ),
 449+ 'specialpages' => array(
 450+ 'specialpages' => array(
 451+ 'wgAllowSpecialInclusion' => 'bool',
 452+ 'wgExportAllowHistory' => 'bool',
 453+ 'wgExportAllowListContributors' => 'bool',
 454+ 'wgExportMaxHistory' => 'int',
 455+ 'wgImportTargetNamespace' => 'text',
 456+# 'wgLogActions' => 'array',
 457+# 'wgLogHeaders' => 'array',
 458+# 'wgLogNames' => 'array',
 459+ 'wgLogRestrictions' => 'array',
 460+# 'wgLogTypes' => 'array',
 461+ 'wgMaxRedirectLinksRetrieved' => 'int',
 462+ 'wgUseNPPatrol' => 'bool',
 463+ ),
 464+ 'recentchanges' => array(
 465+ 'wgAllowCategorizedRecentChanges' => 'bool',
 466+ 'wgPutIPinRC' => 'bool',
 467+ 'wgRCChangedSizeThreshold' => 'int',
 468+ 'wgRCMaxAge' => 'int',
 469+ 'wgRCShowChangedSize' => 'bool',
 470+ 'wgRCShowWatchingUsers' => 'bool',
 471+ 'wgUseRCPatrol' => 'bool',
 472+ 'wgRC2UDPAddress' => 'text',
 473+ 'wgRC2UDPPort' => 'int',
 474+ 'wgRC2UDPPrefix' => 'text',
 475+ ),
 476+ ),
 477+ 'users' => array(
 478+ 'users' => array(
 479+ 'wgAutoConfirmAge' => 'int',
 480+ 'wgAutoConfirmCount' => 'int',
 481+ 'wgAllowRealName' => 'bool',
 482+ 'wgMaxNameChars' => 'int',
 483+ 'wgMinimalPasswordLength' => 'int',
 484+ 'wgMaxSigChars' => 'int',
 485+ 'wgPasswordReminderResendTime' => 'int',
 486+ 'wgReservedUsernames' => 'array',
 487+ 'wgBrowserBlackList' => 'array',
 488+ ),
 489+ ),
 490+ 'feed' => array(
 491+ 'feed' => array(
 492+ 'wgFeed' => 'bool',
 493+ 'wgFeedCacheTimeout' => 'int',
 494+ 'wgFeedDiffCutoff' => 'int',
 495+ 'wgFeedLimit' => 'int',
 496+ ),
 497+ ),
 498+ 'copyright' => array(
 499+ 'copyright' => array(
 500+ 'wgCheckCopyrightUpload' => 'bool',
 501+ 'wgCopyrightIcon' => 'text',
 502+ 'wgEnableCreativeCommonsRdf' => 'bool',
 503+ 'wgEnableDublinCoreRdf' => 'bool',
 504+ 'wgMaxCredits' => 'int',
 505+ 'wgRightsIcon' => 'text',
 506+ 'wgRightsPage' => 'text',
 507+ 'wgRightsText' => 'text',
 508+ 'wgRightsUrl' => 'bool',
 509+ 'wgShowCreditsIfMax' => 'bool',
 510+ 'wgUseCopyrightUpload' => 'bool',
 511+ ),
 512+ ),
 513+ 'job' => array(
 514+ 'job' => array(
 515+ 'wgJobRunRate' => 'int',
 516+# 'wgJobClasses' => 'array',
 517+ 'wgUpdateRowsPerJob' => 'int',
 518+ ),
 519+ ),
 520+ 'extension' => array(
 521+ 'extension' => array(
 522+ 'wgAllowSlowParserFunctions' => 'bool',
 523+# 'wgAPIModules' => 'array',
 524+# 'wgAutoloadClasses' => 'array',
 525+ 'wgDisableInternalSearch' => 'bool',
 526+# 'wgExtensionCredits' => 'array',
 527+# 'wgExtensionFunctions' => 'array',
 528+# 'wgExtensionMessagesFiles' => 'array',
 529+ 'wgExternalStores' => 'array',
 530+# 'wgHooks' => 'array',
 531+# 'wgPagePropLinkInvalidations' => 'array',
 532+# 'wgParserOutputHooks' => 'array',
 533+ 'wgSearchForwardUrl' => 'text',
 534+# 'wgSkinExtensionFunctions' => 'array',
 535+ ),
 536+ ),
 537+ 'htcp' => array(
 538+ 'htcp' => array(
 539+ 'wgHTCPMulticastAddress' => 'text',
 540+ 'wgHTCPMulticastTTL' => 'int',
 541+ 'wgHTCPPort' => 'int',
 542+ ),
 543+ ),
 544+ 'misc' => array(
 545+ 'misc' => array(
 546+ 'wgAntiLockFlags' => 'int',
 547+ 'wgBreakFrames' => 'bool',
 548+ 'wgClockSkewFudge' => 'int',
 549+ 'wgCommandLineDarkBg' => 'bool',
 550+ 'wgCompressRevisions' => 'bool',
 551+ 'wgCountCategorizedImagesAsUsed' => 'bool',
 552+ 'wgDisableHardRedirects' => 'bool',
 553+ 'wgDisableOutputCompression' => 'bool',
 554+ 'wgEnableMWSuggest' => 'bool',
 555+ 'wgExternalDiffEngine' => 'text',
 556+ 'wgExtraRandompageSQL' => 'text',
 557+# 'wgFilterCallback' => 'text',
 558+ 'wgGoToEdit' => 'bool',
 559+ 'wgGrammarForms' => 'array',
 560+ 'wgHitcounterUpdateFreq' => 'int',
 561+ 'wgJsMimeType' => 'text',
 562+ 'wgMaxArticleSize' => 'int',
 563+ 'wgMaxShellFileSize' => 'int',
 564+ 'wgMaxShellMemory' => 'int',
 565+ 'wgMaxTocLevel' => 'int',
 566+ 'wgMWSuggestTemplate' => 'text',
 567+ 'wgOpenSearchTemplate' => 'text',
 568+ 'wgRedirectSources' => 'array',
 569+ 'wgRestrictionTypes' => 'array',
 570+ 'wgShowIPinHeader' => 'bool',
 571+ 'wgSortSpecialPages' => 'bool',
 572+ 'wgSpamRegex' => 'text',
 573+# 'wgStyleVersion' => 'int',
 574+ 'wgUpdateRowsPerQuery' => 'int',
 575+ 'wgUseCommaCount' => 'int',
 576+ 'wgUseETag' => 'bool',
 577+ 'wgUseExternalEditor' => 'bool',
 578+ ),
 579+ ),
465580 );
466581
467582 /**
Index: trunk/extensions/Configure/CHANGELOG
@@ -0,0 +1,26 @@
 2+This file lists changes on this extension.
 3+Localisation updates are done on betawiki and aren't listed here.
 4+
 5+0.2.0 - 1 May 2008
 6+ Rewrote the part that generate the form, will now use $settings variable that
 7+ is defined Configure.settings.php to put the variables into groups.
 8+
 9+0.1.5 - 26 April 2008
 10+ Now check that the directory used to store the settings is writable.
 11+
 12+0.1.4 - 23 April 2008
 13+ Now support $wgImageLimits.
 14+
 15+0.1.3 - 22 April 2008
 16+ Now support $wgNamespaceProtection.
 17+
 18+0.1.2 - 21 April 2008
 19+ Now support $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups,
 20+ $wgGroupsAddToSelf and $wgGroupsRemoveFromSelf.
 21+
 22+0.1.1 - 20 April 2008
 23+ Now treats an empty an empty text area as an empty array, was breaking some
 24+ settings.
 25+
 26+0.1.0 - 18 April 2008
 27+ Initial version of the extension.
\ No newline at end of file
Property changes on: trunk/extensions/Configure/CHANGELOG
___________________________________________________________________
Added: svn:eol-style
128 + native
Index: trunk/extensions/Configure/Configure.php
@@ -16,7 +16,7 @@
1717 'url' => 'http://www.mediawiki.org/wiki/Extension:Configure',
1818 'description' => 'Allow authorised users to configure the wiki by a web-based interface',
1919 'descriptionmsg' => 'configure-desc',
20 - 'version' => '0.1.5',
 20+ 'version' => '0.2.0',
2121 );
2222
2323 ## Adding new rights...
Index: trunk/extensions/Configure/README
@@ -43,13 +43,13 @@
4444 (all what need also "external" changes, i.e. server rewrite rules, squid
4545 configuration, ...) but also $wgGroupPermission.
4646
47 -Even this extension allows you configure about the whole settings, it's
48 -recommanded to keep the original LocalSettings.php file. You can simply add the
49 -extension after the default settings. If you don't want a setting to be
50 -modified, simply redeclare it after calling efConfigureSetup(), it will still be
51 -customizable in Special:Configure but changes won't have any effect.
 47+Although this extension allows you to configure all settings, it's recommended
 48+to keep the original LocalSettings.php file. You can simply add the extension
 49+after the default settings. If you don't want a setting to be modified, simply
 50+redeclare it after calling efConfigureSetup(), it will still be customizable in
 51+Special:Configure but changes won't have any effect.
5252
53 -This extension use an extended class of SiteConfiguration, for "normal"
 53+This extension uses an extended class of SiteConfiguration, for "normal"
5454 installation, it isn't useful, but for some wiki farms, it will allow to
5555 multiple with only one copy of the software. To change the configuration you
5656 want to load, pass an argument to efConfigureSetup(). A user with

Status & tagging log