http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95785
Revision: 95785
Author: yaron
Date: 2011-08-30 15:43:19 +0000 (Tue, 30 Aug 2011)
Log Message:
-----------
Changed 'getXmlTextForFieldInputs' hook to two hooks, 'PageSchemasGetSchemaXML'
and 'PageSchemasGetFieldXML'; plus general cleanup
Modified Paths:
--------------
trunk/extensions/PageSchemas/specials/PS_EditSchema.php
Modified: trunk/extensions/PageSchemas/specials/PS_EditSchema.php
===================================================================
--- trunk/extensions/PageSchemas/specials/PS_EditSchema.php 2011-08-30
15:41:15 UTC (rev 95784)
+++ trunk/extensions/PageSchemas/specials/PS_EditSchema.php 2011-08-30
15:43:19 UTC (rev 95785)
@@ -212,18 +212,22 @@
$save_page = $wgRequest->getCheck( 'wpSave' );
if ( $save_page ) {
//Generate the XML from the Form elements
- $XMLtext = "";
//$s_name = $wgRequest->getText('s_name');
- $XMLtext .= '<PageSchema>';
+ $XMLtext = '<PageSchema>';
$ps_add_xml = $wgRequest->getText( 'ps_add_xml' );
$XMLtext .= $ps_add_xml;
$fieldName = "";
$fieldNum = -1;
$templateNum = -1;
- $xmlFromExtensions = array(); //This var. will save the
xml text returned by the extensions
- wfRunHooks( 'getXmlTextForFieldInputs', array(
$wgRequest, &$xmlFromExtensions ));
- if ( $xmlFromExtensions['sf_form'] != null ) {
- $XMLtext .= $xmlFromExtensions['sf_form'];
+ //This var. will save the xml text returned by the
extensions
+ $schemaXMLFromExtensions = array();
+ $fieldXMLFromExtensions = array();
+ wfRunHooks( 'PageSchemasGetSchemaXML', array(
$wgRequest, &$schemaXMLFromExtensions ));
+ wfRunHooks( 'PageSchemasGetFieldXML', array(
$wgRequest, &$fieldXMLFromExtensions ));
+ foreach ( $schemaXMLFromExtensions as $extensionName =>
$xml ) {
+ if ( !empty( $xml ) ) {
+ $XMLtext .= $xml;
+ }
}
$indexGlobalField = 0 ; //this variable is use to index
the array returned by extensions for XML.
foreach ( $wgRequest->getValues() as $var => $val ) {
@@ -249,25 +253,13 @@
}
} elseif ( substr( $var, 0, 8 ) == 'f_label_' )
{
$XMLtext .= '<Label>'.$val.'</Label>';
- //Get XML parsed from extensions
- if ( $xmlFromExtensions['smw'] != null
) {
- $xml_ex_array =
$xmlFromExtensions['smw'];
- if
($xml_ex_array[$indexGlobalField] != null ) {
- $XMLtext .=
$xml_ex_array[$indexGlobalField] ;
+
+ // Get XML created by extensions
+ foreach ( $fieldXMLFromExtensions as
$extensionName => $xmlPerField ) {
+ if ( !empty(
$xmlPerField[$indexGlobalField] ) ) {
+ $XMLtext .=
$xmlPerField[$indexGlobalField];
}
}
- if ( $xmlFromExtensions['sf'] != null )
{
- $xml_ex_array =
$xmlFromExtensions['sf'];
- if
($xml_ex_array[$indexGlobalField] != null ) {
- $XMLtext .=
$xml_ex_array[$indexGlobalField] ;
- }
- }
- if ( $xmlFromExtensions['sd'] != null )
{
- $xml_ex_array =
$xmlFromExtensions['sd'];
- if
($xml_ex_array[$indexGlobalField] != null ) {
- $XMLtext .=
$xml_ex_array[$indexGlobalField] ;
- }
- }
$indexGlobalField++ ;
} elseif ( substr( $var, 0, 10 ) ==
'f_add_xml_' ) {
$XMLtext .= $val;
@@ -335,6 +327,8 @@
$formHTML = self::blankFormHTML( $htmlFromExtensions );
$formHTML .= self::starterFieldHTML( $htmlFromExtensions );
+ $add_xml_label = wfMsg('ps-add-xml-label');
+
$pageSchemaObj = new PSSchema( $category );
$title = Title::newFromText( $category, NS_CATEGORY );
$pageId = $title->getArticleID();
@@ -431,9 +425,9 @@
$fieldLabel = (string)$child;
}
}
- $text_4 .= '<p>Field
name: <input size="15" name="f_name_'.$field_count.'" value="'.$fieldName.'" >';
+ $text_4 .= '<p>Field
name: <input size="15" name="f_name_'.$field_count.'" value="'.$fieldName.'"
/>';
$display_label = wfMsg(
'pageschemas-displaylabel' );
- $text_4 .=
$display_label . ' <input size="15" name="f_label_'.$field_count.'"
value="'.$fieldLabel.'" >
+ $text_4 .=
$display_label . ' <input size="15" name="f_label_'.$field_count.'"
value="'.$fieldLabel.'" />
</p> ';
$attrs = array();
$pAttrs = array(
'class' => 'delimiterInput' );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs