|
[MediaWiki-CVS] SVN: [54083] trunk/extensions/MultiBoilerplate: msg#01461mediawiki-cvs
http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54083 Revision: 54083 Author: roberthl Date: 2009-07-31 09:55:23 +0000 (Fri, 31 Jul 2009) Log Message: ----------- MultiBoilerplate: * Integrate patch by Al Maghi, adds a special page listing boilerplates. Modified Paths: -------------- trunk/extensions/MultiBoilerplate/MultiBoilerplate.i18n.php trunk/extensions/MultiBoilerplate/MultiBoilerplate.php Added Paths: ----------- trunk/extensions/MultiBoilerplate/SpecialBoilerplates_body.php Modified: trunk/extensions/MultiBoilerplate/MultiBoilerplate.i18n.php =================================================================== --- trunk/extensions/MultiBoilerplate/MultiBoilerplate.i18n.php 2009-07-31 09:45:31 UTC (rev 54082) +++ trunk/extensions/MultiBoilerplate/MultiBoilerplate.i18n.php 2009-07-31 09:55:23 UTC (rev 54083) @@ -17,6 +17,15 @@ 'multiboilerplate-label' => '', 'multiboilerplate-legend' => 'Select boilerplate', 'multiboilerplate-submit' => 'Load', + 'boilerplates' => 'Custom preload on creation', + 'boilerplates-name' => 'Boilerplates', + 'multiboilerplate-special-title' => 'Custom templates preloader', + 'multiboilerplate-special-pagetext' => 'Those templates can be preloaded on page creation. (<span class=plainlinks>[{{fullurl:This page does not exist|action=edit}} demo]</span>)', + 'multiboilerplate-special-define-on-localsettings' => 'Boilerplates are defined on LocalSettings.php in array <code>$wgMultiBoilerplateOptions</code>. Set <code>$wgMultiBoilerplateOptions = false;</code> to use [[MediaWiki:Multiboilerplate]] instead.', + 'multiboilerplate-special-define-on-interface' => 'Boilerplates are defined on interface page: [[MediaWiki:Multiboilerplate]].', + 'multiboilerplate-label' => '', + 'multiboilerplate-legend' => 'Select boilerplate', + 'multiboilerplate-submit' => 'Load', ); /** Message documentation (Message documentation) @@ -30,6 +39,7 @@ 'multiboilerplate-submit' => 'The text displayed on the button that loads the boilerplate into the edit box. {{Identical|Load}}', + 'boilerplates' => 'The description on Special:SpecialPages', ); /** Afrikaans (Afrikaans) Modified: trunk/extensions/MultiBoilerplate/MultiBoilerplate.php =================================================================== --- trunk/extensions/MultiBoilerplate/MultiBoilerplate.php 2009-07-31 09:45:31 UTC (rev 54082) +++ trunk/extensions/MultiBoilerplate/MultiBoilerplate.php 2009-07-31 09:55:23 UTC (rev 54083) @@ -11,8 +11,9 @@ * * @link http://www.mediawiki.org/wiki/Extension:MultiBoilerplate * - * @author MinuteElectron <minuteelectron@xxxxxxxxxxxxxx> - * @copyright Copyright  2007-2008 MinuteElectron. + * @author Robert Leverington <robert@xxxxxxxxx> + * @copyright Copyright  2007 - 2009 Robert Leverington. + * @copyright Copyright  2009 Al Maghi. * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later */ @@ -25,16 +26,21 @@ 'name' => 'MultiBoilerplate', 'description' => 'Allows a boilerplate to be selected from a drop down box located above the edit form when editing pages.', 'descriptionmsg' => 'multiboilerplate-desc', - 'author' => 'MinuteElectron', + 'author' => array( 'Robert Leverington', 'Al Maghi' ), 'url' => 'http://www.mediawiki.org/wiki/Extension:MultiBoilerplate', - 'version' => '1.7', + 'version' => '1.8.0', ); // Hook into EditPage::showEditForm:initial to modify the edit page header. $wgHooks[ 'EditPage::showEditForm:initial' ][] = 'efMultiBoilerplate'; // Set extension messages file. -$wgExtensionMessagesFiles[ 'MultiBoilerplate' ] = dirname( __FILE__ ) . '/MultiBoilerplate.i18n.php'; +$dir = dirname( __FILE__ ) . '/'; +$wgExtensionMessagesFiles[ 'MultiBoilerplate' ] = $dir . 'MultiBoilerplate.i18n.php'; +$wgExtensionMessagesFiles[ 'MultiBoilerplate' ] = $dir . 'MultiBoilerplate.i18n.php'; +$wgAutoloadClasses['SpecialBoilerplates'] = $dir . 'SpecialBoilerplates_body.php'; +$wgSpecialPages['Boilerplates'] = 'SpecialBoilerplates'; +$wgSpecialPageGroups['Boilerplates'] = 'wiki'; //section of [[Special:SpecialPages]] // Default configuration variables. /* Array of boilerplate names to boilerplate pages to load, for example: @@ -46,7 +52,20 @@ $wgMultiBoilerplateOptions = array(); /* Whether or not to show the form when editing pre-existing pages. */ $wgMultiBoilerplateOverwrite = false; +/* Whether or not to display a special page listing boilerplates. + * If set to true then the special page exists. */ +$wgMultiBoilerplateDiplaySpecialPage = false; + +$wgHooks['SpecialPage_initList'][]='efBoilerplateDisplaySpecialPage'; +function efBoilerplateDisplaySpecialPage( &$aSpecialPages ) { + global $wgMultiBoilerplateDiplaySpecialPage; + if ( !$wgMultiBoilerplateDiplaySpecialPage ) { + unset( $aSpecialPages['Boilerplates'] ); + } + return true; +} + /** * Generate the form to be displayed at the top of the edit page and insert it. * @param $form EditPage object. Added: trunk/extensions/MultiBoilerplate/SpecialBoilerplates_body.php =================================================================== --- trunk/extensions/MultiBoilerplate/SpecialBoilerplates_body.php (rev 0) +++ trunk/extensions/MultiBoilerplate/SpecialBoilerplates_body.php 2009-07-31 09:55:23 UTC (rev 54083) @@ -0,0 +1,47 @@ +ï<?php +/** + * Special:boilerplates, provides a list of MediaWiki:Multiboilerplate or $wgMultiBoilerplateOptions. + * This add-on use three new messages. + * For more info see http://mediawiki.org/wiki/Extension:Multiboilerplate + * + * @subpackage Extensions + * @author Al Maghi + */ + +class SpecialBoilerplates extends IncludableSpecialPage { + + function __construct() { + parent::SpecialPage( 'Boilerplates' ); + $this->mIncludable = true; + } + + function execute( $par ) { + global $wgOut, $wgMultiBoilerplateOptions; + if ( !isset($wgMultiBoilerplateOptions)) return true; // No options found in either configuration file, abort. + wfLoadExtensionMessages( 'MultiBoilerplate' ); + if( !$this->mIncluding ) { + $this->setHeaders(); + $wgOut->setPagetitle( wfMsg( "multiboilerplate-special-title" ) ); + $wgOut->addWikiMsg( "multiboilerplate-special-pagetext" ); + $wgOut->wrapWikiMsg( "==$1==\n", "boilerplates-name" ); + } + if( is_array( $wgMultiBoilerplateOptions ) ) { + if( !$this->mIncluding ) $wgOut->addWikiMsg( "multiboilerplate-special-define-on-localsettings" ); + foreach( $wgMultiBoilerplateOptions as $name => $template ) { + $wgOut->addWikiText( "* [[$template]]\n" ); + } + } else { + if( !$this->mIncluding ) $wgOut->addWikiMsg( "multiboilerplate-special-define-on-interface" ) ; + $things = explode( "\n", str_replace( "\r", "\n", str_replace( "\r\n", "\n", wfMsg( 'multiboilerplate' ) ) ) ); // Ensure line-endings are \n + foreach( $things as $row ) { + if ( substr( ltrim( $row ), 0, 1 ) === '*' ) { + $row = ltrim( $row, '* ' ); // Remove the asterix (and a space if found) from the start of the line. + $row = explode( '|', $row ); + if( !isset( $row[ 1 ] ) ) return true; // Invalid syntax, abort. + $wgOut->addWikiText( "* [[$row[1]|$row[0]]]\n" ); + } + } + } + } +} + _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@xxxxxxxxxxxxxxxxxxx https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|
|
||||||||||||||||||||||||||
|
|
|
| News | Mail Home | sitemap | FAQ | advertise |