http://www.mediawiki.org/wiki/Special:Code/MediaWiki/90708
Revision: 90708
Author: salvatoreingala
Date: 2011-06-24 10:22:21 +0000 (Fri, 24 Jun 2011)
Log Message:
-----------
- GadgetHooks::userSaveOptions now omits gadget preferences if they equal their
default value
- Gadget::setPrefsDescription invalidates gadget's preferences, if they had
previously been set
Modified Paths:
--------------
branches/salvatoreingala/Gadgets/backend/Gadget.php
branches/salvatoreingala/Gadgets/backend/GadgetHooks.php
Modified: branches/salvatoreingala/Gadgets/backend/Gadget.php
===================================================================
--- branches/salvatoreingala/Gadgets/backend/Gadget.php 2011-06-24 10:00:35 UTC
(rev 90707)
+++ branches/salvatoreingala/Gadgets/backend/Gadget.php 2011-06-24 10:22:21 UTC
(rev 90708)
@@ -648,6 +648,8 @@
* Sets the description of preferences for this gadget. If the given
array is not valid,
* then internal preference description is set to null.
*
+ * Invalidates any previous preference value set with setPrefs().
+ *
* @param $prefsDescription mixed an array with new preferences
description, or null.
*
*/
@@ -657,6 +659,9 @@
} else {
$this->prefsDescription = null;
}
+
+ //Any previously set of preferences has no meaning now, set
back to null
+ $this->preferences = null;
}
//Check if a preference is valid, according to description
Modified: branches/salvatoreingala/Gadgets/backend/GadgetHooks.php
===================================================================
--- branches/salvatoreingala/Gadgets/backend/GadgetHooks.php 2011-06-24
10:00:35 UTC (rev 90707)
+++ branches/salvatoreingala/Gadgets/backend/GadgetHooks.php 2011-06-24
10:22:21 UTC (rev 90708)
@@ -236,11 +236,18 @@
}
foreach ( $gadgets as $gadget ) {
- if ( $gadget->getPrefs() !== null ) {
- //TODO: should remove prefs that equal their
default
-
- $prefsSerialized = serialize(
$gadget->getPrefs() );
- $options["gadget-{$gadget->getName()}-config"]
= $prefsSerialized;
+ $prefs = $gadget->getPrefs();
+ if ( $prefs !== null ) {
+ $prefsDescription =
$gadget->getPrefsDescription();
+
+ //Remove preferences that equal their default
+ foreach ( $prefs as $prefName => $value ) {
+ if (
$prefsDescription['fields'][$prefName]['default'] === $value ) {
+ unset( $prefs[$prefName] );
+ }
+ }
+
+ $options["gadget-{$gadget->getName()}-config"]
= serialize( $prefs );
}
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs