logo       

[MediaWiki-CVS] SVN: [54083] trunk/extensions/MultiBoilerplate: msg#01461

mediawiki-cvs

Subject: [MediaWiki-CVS] SVN: [54083] trunk/extensions/MultiBoilerplate

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>&#36;wgMultiBoilerplateOptions</code>. Set
<code>&#36;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
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | Mail Home | sitemap | FAQ | advertise