A small update to the below instructions on how to load resources in the future: the file SMW.hooks.php that is given there in the example, has been merged into .includes/SMW_Setup.php. You can now find the example code in there (look for "$wgResourceModules").
-- Markus On 07/11/2010 20:51, Markus Krötzsch wrote: > Dear extension developers, > > this is an important notice for developers of extensions that load > JavaScript or CSS. Updates are required in order to stay compatible with > recent changes in MediaWiki (1.17). Luckily, SMW helps you to achieve > this easily. Below is a quick walkthrough. > > > So far, SMW supports the loading of Javascript and CSS resources with > the function "SMWOutputs::requireHeadItem". It takes two parameters: an > ID (to avoid loading something twice) and an HTML snippet for the thing > that is loaded. Example from SRF's timeline code: > > SMWOutputs::requireHeadItem( 'smw_tlhelper', '<script > type="text/javascript" src="' . $wgScriptPath . > '/extensions/SemanticResultFormats/Timeline/SRF_timeline.js"></script>' ); > > From 1.17 on, MediaWiki has its own support for efficiently loading and > compressing resources that also reduces server load. To use this > facility, it is necessary to declare so-called "resource modules". SMW > has examples on how to do this in its file "./SMW.hooks.php". > Essentially, you just need to specify the location of the file to be > loaded, and the other resource modules that it requires to run. Each > module also has an ID (e.g. "ext.smw.tooltips"). > > Now you need to do the following to make your extension MW 1.17 > compatible while keeping downwards compatible with older MW version: > > (1) Define resource modules for the files that you need, just like done > for SMW in SMW.hooks.php. Please use hierarchical names and a suitable > group name for your extension (SMW uses "ext.smw" as a prefix, Semantic > Result Formats might use "ext.srf" etc.). > > (2) Change all calls to SMWOutputs::requireHeadItem in your code to use > the ID of the according resource module when loading a script. For > example, the above ID 'smw_tlhelper' would probably not be used for > resource modules. Rather, you could use something hierarchical like > 'ext.srf.tlhelper'. > > The above should allow you to update your code in no time while keeping > fully compatible with old versions of SMW and MW. > > If you use a lot of Javascript, then you could check out the > capabilities of Resource Loader for your application. In particular, SMW > also allows you to directly register a module for loading by using the > function "SMWOutputs::requireModule". Thus, if preferred, you can do the > MW version check in your own code and only call either this function or > the old function directly. > > The above method only works in the current development version of SMW. > SMW 1.5.3 uses the Resource Loader but it does not yet interpret the IDs > used for scripts by extensions as resource loader IDs. So if you need to > be compatible with SMW 1.5.3, you will have to call > SMWOutputs::requireModule manually in such cases. Calling it in addition > to RequireHeadItem would not do much harm, though. > > Cheers, > > Markus > > > ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel