> Brion Vibber wrote:
>>> I'm not a real MediaWiki developer, so it may be a silly question:  
>>> How
>>> hard it is to convert a gadget into an extension? If it's not too
>>> hard, wouldn't it be better to redo useful gadgets as extensions?
>>> Unless i miss something very basic, this will make them easier to
>>> maintain, install, update and localize.
>>
>> In principle, making an extension based on an existing Gadget  
>> should be
>> pretty straightforward, especially with ResourceLoader taking care  
>> of more
>> of the details of JS & CSS fetching.
>>
>> Might be fun to whip up a how-to guide and post it on the tech  
>> blog...

That (may or may not be intentionally) sounds like a way to work-around
the elephant in the room, which is global preferences.

Gadgets are gadgets.

MZMcBride wrote:
> In the case of gadgets, I mostly agree with Tobias: better global  
> support is
> needed. Though instead of the interwiki transclusion/marking certain
> pages/etc. hackery, I think global preferences (and by extension,  
> global
> gadgets) make much more sense. Centralize the "add a purge link"  
> scripts at
> Meta-Wiki and let everyone use the same code. That seems like a more  
> sane
> approach than creating Extension:AddAPurgeLink, even if it is easier  
> now
> with the implementation of ResourceLoader. :-)
>
> MZMcBride

+1

Although global preferences [1] is not fixed yet. Centralized gadgets  
is already
possible. Both with and without resource loader (ie. before and after  
1.17).

= Old way =
This was only done or HotCats.js on some wikis:
== Central wiki ==
* MediaWiki:Gadget-definitions
        * foo|foo.js|foo.css
* MediaWiki:Gadget-foo
        This is Foo description.
* MediaWiki:Gadget-foo.js
        alert('foo');
* MediaWiki:Gadget-foo.css
        body { background: orange; }
== Other wiki ==
* MediaWiki:Gadget-definitions
        * foo|foo.js
* MediaWiki:Gadget-foo
        This is Foo description.
* MediaWiki:Gadget-foo.js
        importScriptURI( 
'http://centralwiki.org/w/index.php?title=MediaWiki:Gadget-foo.js&action=raw&ctype=text/javascript'
 
  );
        importStylesheetURI( 
'http://centralwiki.org/w/index.php?title=MediaWiki:Gadget-foo.css&action=raw&ctype=text/css'
 
  );

= New way =
This way is promoted in the migration here [2] to start centralizing  
gadgets and
avoid stuff from getting out of date. (navPopups, HotCat, UTCLiveClock,
WikiMiniAtlas etc.) :

== Central wiki ==
* MediaWiki:Gadget-definitions
        * foo[ResourceLoader]|foo.js|foo.css
* MediaWiki:Gadget-foo
        This is Foo description.
* MediaWiki:Gadget-foo.js
        alert('foo');
* MediaWiki:Gadget-foo.css
        body { background: orange; }

== Other wiki ==
* MediaWiki:Gadget-definitions
        * foo|foo.js
* MediaWiki:Gadget-foo
        This is Foo description.
* MediaWiki:Gadget-foo.js
        mw.loader.load( 
'http://centralwiki.org/w/load.php?modules=ext.gadget.foo' 
  );

This new way not only centralizes stuff (like the old way did) but  
also does all resource loader stuff
(1 request, minified, combined, cached)

This is already a huge improvement and can and is being done today.
Once global preferences are up and RL 2.0 is in the air, it would be  
even easier.
ie. extra section in Special:Preferences#Gadgets with "global gadgets"  
and
MediaWiki:Gadgets-globaldefinition is used and meta.wikimedia/load.php

--
Krinkle

[1] https://bugzilla.wikimedia.org/show_bug.cgi?id=14950
[2] http://www.mediawiki.org/wiki/RL/MGU#Keep_gadgets_central


_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to