Page MenuHomePhabricator

titleMatch.patch

Authored By
bzimport
Nov 22 2014, 2:26 AM
Size
3 KB
Referenced Files
None
Subscribers
None

titleMatch.patch

commit ce69895ae597437d944e80ef3039eceeb7cb8c01
Author: Yuan Xingyuan <yuanxy@163.com>
Date: Sun Nov 10 22:26:43 2013 +0800
select boilerplate based on title
diff --git a/www/wiki/extensions/MultiBoilerplate/MultiBoilerplate.php b/www/wiki/extensions/MultiBoilerplate/MultiBoilerplate.php
index 4b643a4..baceb12 100644
--- a/www/wiki/extensions/MultiBoilerplate/MultiBoilerplate.php
+++ b/www/wiki/extensions/MultiBoilerplate/MultiBoilerplate.php
@@ -73,7 +73,7 @@ function efBoilerplateDisplaySpecialPage( &$aSpecialPages ) {
function efMultiBoilerplate( $form ) {
// Get various variables needed for this extension.
- global $wgMultiBoilerplateOptions, $wgMultiBoilerplateOverwrite, $wgTitle, $wgRequest;
+ global $wgMultiBoilerplateOptions, $wgMultiBoilerplateOverwrite, $wgMultiBoilerplateSelectByTitle, $wgTitle, $wgRequest;
// If $wgMultiBoilerplateOverwrite is true then detect whether
// the current page exists or not and if it does return true
@@ -92,20 +92,42 @@ function efMultiBoilerplate( $form ) {
}
} else {
$things = wfMsgForContent( 'multiboilerplate' );
- $options = '';
+ $options = '';
$things = explode( "\n", str_replace( "\r", "\n", str_replace( "\r\n", "\n", $things ) ) ); // 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 );
+ $row = explode( '|', $row );
if( !isset( $row[ 1 ] ) ) return true; // Invalid syntax, abort.
- $selected = false;
- if( $wgRequest->getVal( 'boilerplate' ) == $row[ 1 ] ) $selected = true;
+ array_push($biolerplate_titles, $row[0]);
+ $selected = false;
+ if( $wgRequest->getVal( 'boilerplate' ) == $row[ 1 ] ) {
+ $selected = true;
+ } else {
+ // boilerplate pre-select based on page title
+ if ( $wgMultiBoilerplateSelectByTitle ) {
+ if (!$boilerplateTitle) {
+
+ $title = trim($wgTitle->getText());
+ $type = trim($row[0]);
+ if (strpos($title,$type)) {
+ $boilerplateTitle = $row[1];
+ $selected = true;
+ }
+ }
+ }
+
+ }
$options .= Xml::option( $row[ 0 ], $row[ 1 ], $selected );
}
}
}
+ // boilerplate pre-select based on page title
+ if ( $wgRequest->getText( 'boilerplate', false ) ) {
+ $boilerplateTitle = $wgRequest->getVal( 'boilerplate' );
+ }
+
// No options found in either configuration file, abort.
if( $options == '' ) return true;
@@ -128,8 +150,8 @@ function efMultiBoilerplate( $form ) {
Xml::closeElement( 'form' );
// If the Load button has been pushed replace the article text with the boilerplate.
- if( $wgRequest->getText( 'boilerplate', false ) ) {
- $plate = new Article( Title::newFromURL( $wgRequest->getVal( 'boilerplate' ) ) );
+ if( $boilerplateTitle ) {
+ $plate = new Article( Title::newFromURL( $boilerplateTitle ) );
$content = $plate->fetchContent();
/* Strip out noinclude tags and contained data, and strip includeonly
* tags (but retain contained data). If a function exists in the

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
11796
Default Alt Text
titleMatch.patch (3 KB)

Event Timeline