Difference between revisions of "DPL:Manual - Compatibility"

From FollowTheScore
Jump to: navigation, search
(Levels of Functionality)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Type Manual|section=Compatibility}}
 
{{Type Manual|section=Compatibility}}
  
As said before, DPL 1.8.2 contains all functionality of Extension:Intersection.
+
As said before, since release 1.8.2 DPL contains all functionality of Extension:Intersection.
  
 
==== Migration aid ====
 
==== Migration aid ====
Line 11: Line 11:
 
In this constellation you can change some of your existing calls of 'Intersection' (which use the <DynamicPageList> tag) to the <Intersection> tag. Once you are convinced that this produces identical results and works with equal efficiency you can change to require_once("DynamicPageList.php"). Don't forget to change the statements back to the <DynamicPageList> tag!. Of course you must also remove the require_once() for the Intersection extension.
 
In this constellation you can change some of your existing calls of 'Intersection' (which use the <DynamicPageList> tag) to the <Intersection> tag. Once you are convinced that this produces identical results and works with equal efficiency you can change to require_once("DynamicPageList.php"). Don't forget to change the statements back to the <DynamicPageList> tag!. Of course you must also remove the require_once() for the Intersection extension.
  
 +
==== Messages ====
 +
 +
The 'i18n' files of 'Intersection' and DPL have been merged.
 +
There are some messages which are semantically identical in 'Intersection' and DPL (although they have a different technical key). If the <DynamicPageList> tag is used, DPL will have a preference for these old messages.
  
 
==== Levels of Functionality ====
 
==== Levels of Functionality ====
Line 16: Line 20:
 
After the migration to DPL the <DynamicPageList> tag will offer exactly the same functionality as the former Extension:Intersection.
 
After the migration to DPL the <DynamicPageList> tag will offer exactly the same functionality as the former Extension:Intersection.
  
Furthermore, there will be the &lt;dpl&gt tag available and the <nowiki>{{#dpl: ... }}</nowiki> parser function. They will by default offer their whole functionality - which may be a little bit more than you want.
+
Furthermore, there will be the &lt;dpl&gt; tag available and the <nowiki>{{#dpl: ... }}</nowiki> parser function. They will by default offer their whole functionality - which may be a little bit more than you want.
  
 
Calling  
 
Calling  
Line 38: Line 42:
  
 
We recommend to  
 
We recommend to  
* allow DPL also on non-protected pages (as is true for extension:intersection)
+
* allow DPL to run also on non-protected pages (as is true for Extension:Intersection)
* accept the default limitation of 500 pages as a maximum result size or even increase the number
+
* accept the default limitation of 500 pages as a maximum result size or even increase that number
 
* configure true dynamic behaviour (using the [[dplcache]] where appropriate)
 
* configure true dynamic behaviour (using the [[dplcache]] where appropriate)
 
* select 2,3 or 4 as your level of functional richness.
 
* select 2,3 or 4 as your level of functional richness.
In this case the only statement you would need is the call to setFunctionalRichness()
 
  
The Level of functional richness has 5 values. Each DPL command belongs to exactly one of these levels.
+
If you follow this guideline the ''only'' statement you would need (after the require_once()) is the call to setFunctionalRichness().
 +
 
 +
The level of functional richness has 5 values. Each DPL command belongs to exactly one of these levels.
 
They are defined near line 860 in 'DPLSetup.php':
 
They are defined near line 860 in 'DPLSetup.php':
  
Line 97: Line 102:
 
addcontribution
 
addcontribution
 
addeditdate
 
addeditdate
 +
addexternallink
 
addlasteditor
 
addlasteditor
 
addpagecounter
 
addpagecounter
Line 128: Line 134:
 
linksfrom
 
linksfrom
 
linksto
 
linksto
 +
linkstoexternal
 
listattr
 
listattr
 
minoredits
 
minoredits
Line 175: Line 182:
  
 
   level=0 will not allow any additional functionality (compared to Extension:Intersection).
 
   level=0 will not allow any additional functionality (compared to Extension:Intersection).
   level=1 brings a series of improvements which will not affect performance
+
   level=1 brings a series of small formatting improvements which will not affect performance
 
   level=2 brings some additional features which are roughly on the same level of database load
 
   level=2 brings some additional features which are roughly on the same level of database load
           as the basic functionality; also contains content transclusion (which may require
+
           as the basic functionality; it also contains content transclusion (which may require
 
           the dpl-cache on huge websites)
 
           the dpl-cache on huge websites)
 
   level=3 brings more new features: selection based on regular expressions,
 
   level=3 brings more new features: selection based on regular expressions,

Latest revision as of 21:43, 15 June 2009

Manual Compatibility

As said before, since release 1.8.2 DPL contains all functionality of Extension:Intersection.

Migration aid

In the standard configuration DPL registers the <DynamicPageList> tag. This is needed to be downward compatible with extension 'Intersection'.

In the transition phase you may want to install DPL in PARALLEL to 'Intersection' for testing. DPL offers a second entry point for that purpose. Instead of require_once("DynamicPageList.php") you have to use require_once("DPLMigration.php"). DPL will then ONLY register a tag called <Intersection>

In this constellation you can change some of your existing calls of 'Intersection' (which use the <DynamicPageList> tag) to the <Intersection> tag. Once you are convinced that this produces identical results and works with equal efficiency you can change to require_once("DynamicPageList.php"). Don't forget to change the statements back to the <DynamicPageList> tag!. Of course you must also remove the require_once() for the Intersection extension.

Messages

The 'i18n' files of 'Intersection' and DPL have been merged. There are some messages which are semantically identical in 'Intersection' and DPL (although they have a different technical key). If the <DynamicPageList> tag is used, DPL will have a preference for these old messages.

Levels of Functionality

After the migration to DPL the <DynamicPageList> tag will offer exactly the same functionality as the former Extension:Intersection.

Furthermore, there will be the <dpl> tag available and the {{#dpl: ... }} parser function. They will by default offer their whole functionality - which may be a little bit more than you want.

Calling

  ExtDynamicPageList::setFunctionalRichness(0);

will ensure that they behave identical to Extension:Intersection.

Your LocalSettings.php might contain the following entries:

require_once( "$IP/extensions/DynamicPageList/DynamicPageList.php" );
# the next statement served only for migration and is now commented out:
# require_once( "$IP/extensions/DynamicPageList/DynamicPageListMigration.php" );
ExtDynamicPageList::$options['RunFromProtectedPagesOnly'] = 
      'Extension DPL (warning): current configuration '.
      'allows execution of DPL code from protected pages only.";
ExtDynamicPageList::$maxResultCount = 100;
ExtDynamicPageList::$allowUnlimitedResults = false; 
ExtDynamicPageList::$respectParserCache = true;
ExtDynamicPageList::setFunctionalRichness(0);

This would be a VERY conservative setting which allows DPL to run from protected pages only, restricting result sets to 100 pages, without real dynamic behaviour and with DPL tags offering nothing else but the mere functionality of extension:Intersection.

We recommend to

  • allow DPL to run also on non-protected pages (as is true for Extension:Intersection)
  • accept the default limitation of 500 pages as a maximum result size or even increase that number
  • configure true dynamic behaviour (using the dplcache where appropriate)
  • select 2,3 or 4 as your level of functional richness.

If you follow this guideline the only statement you would need (after the require_once()) is the call to setFunctionalRichness().

The level of functional richness has 5 values. Each DPL command belongs to exactly one of these levels. They are defined near line 860 in 'DPLSetup.php':

			0 =>	'
					addfirstcategorydate
					category
					count
					mode
					namespace
					notcategory
					order
					ordermethod
					qualitypages
					redirects
					showcurid
					shownamespace
					stablepages
					suppresserrors
					',
			1 => 	'
					allowcachedresults
					execandexit
					columns
					debug
					distinct
					escapelinks
					format
					inlinetext
					listseparators
					notnamespace
					offset
					oneresultfooter
					oneresultheader
					ordercollation
					noresultsfooter
					noresultsheader
					randomcount
					randomseed	
					replaceintitle
					resultsfooter
					resultsheader
					rowcolformat
					rows
					rowsize
					titlemaxlength
					userdateformat
					',
			2 =>	'
					addauthor
					addcategories
					addcontribution
					addeditdate
					addexternallink
					addlasteditor
					addpagecounter
					addpagesize
					addpagetoucheddate
					adduser
					categoriesminmax
					createdby
					dominantsection
					dplcache
					dplcacheperiod
					eliminate
					headingcount
					headingmode
					hitemattr
					hlistattr
					ignorecase
					imagecontainer
					imageused
					include
					includematch
					includematchparsed
					includemaxlength
					includenotmatch
					includenotmatchparsed
					includepage
					includesubpages
					includetrim
					itemattr
					lastmodifiedby
					linksfrom
					linksto
					linkstoexternal
					listattr
					minoredits
					modifiedby
					multisecseparators
					notcreatedby
					notlastmodifiedby
					notlinksfrom
					notlinksto
					notmodifiedby
					notuses
					reset
					secseparators
					skipthispage
					table
					tablerow
					tablesortcol
					title
					titlematch
					usedby
					uses
					',
			3 =>	'
					allrevisionsbefore
					allrevisionssince
					articlecategory
					categorymatch
					categoryregexp
					firstrevisionsince
					lastrevisionbefore
					maxrevisions
					minrevisions
					notcategorymatch
					notcategoryregexp
					nottitlematch
					nottitleregexp
					openreferences
					titleregexp
					',
			4 => 	'
					deleterules
					goal
					updaterules
					',

 level=0 will not allow any additional functionality (compared to Extension:Intersection).
 level=1 brings a series of small formatting improvements which will not affect performance
 level=2 brings some additional features which are roughly on the same level of database load
         as the basic functionality; it also contains content transclusion (which may require
         the dpl-cache on huge websites)
 level=3 brings more new features: selection based on regular expressions,
         queries on revision level
 level=4 adds a few additional features which are useful for private websites (like batch updates)
         but should not be made available on huge public websites.