r95785 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r95784‎ | r95785 | r95786 >
Date:15:43, 30 August 2011
Author:yaron
Status:deferred
Tags:
Comment:
Changed 'getXmlTextForFieldInputs' hook to two hooks, 'PageSchemasGetSchemaXML' and 'PageSchemasGetFieldXML'; plus general cleanup
Modified paths:
  • /trunk/extensions/PageSchemas/specials/PS_EditSchema.php (modified) (history)

Diff [purge]

Index: trunk/extensions/PageSchemas/specials/PS_EditSchema.php
@@ -212,18 +212,22 @@
213213 $save_page = $wgRequest->getCheck( 'wpSave' );
214214 if ( $save_page ) {
215215 //Generate the XML from the Form elements
216 - $XMLtext = "";
217216 //$s_name = $wgRequest->getText('s_name');
218 - $XMLtext .= '<PageSchema>';
 217+ $XMLtext = '<PageSchema>';
219218 $ps_add_xml = $wgRequest->getText( 'ps_add_xml' );
220219 $XMLtext .= $ps_add_xml;
221220 $fieldName = "";
222221 $fieldNum = -1;
223222 $templateNum = -1;
224 - $xmlFromExtensions = array(); //This var. will save the xml text returned by the extensions
225 - wfRunHooks( 'getXmlTextForFieldInputs', array( $wgRequest, &$xmlFromExtensions ));
226 - if ( $xmlFromExtensions['sf_form'] != null ) {
227 - $XMLtext .= $xmlFromExtensions['sf_form'];
 223+ //This var. will save the xml text returned by the extensions
 224+ $schemaXMLFromExtensions = array();
 225+ $fieldXMLFromExtensions = array();
 226+ wfRunHooks( 'PageSchemasGetSchemaXML', array( $wgRequest, &$schemaXMLFromExtensions ));
 227+ wfRunHooks( 'PageSchemasGetFieldXML', array( $wgRequest, &$fieldXMLFromExtensions ));
 228+ foreach ( $schemaXMLFromExtensions as $extensionName => $xml ) {
 229+ if ( !empty( $xml ) ) {
 230+ $XMLtext .= $xml;
 231+ }
228232 }
229233 $indexGlobalField = 0 ; //this variable is use to index the array returned by extensions for XML.
230234 foreach ( $wgRequest->getValues() as $var => $val ) {
@@ -249,25 +253,13 @@
250254 }
251255 } elseif ( substr( $var, 0, 8 ) == 'f_label_' ) {
252256 $XMLtext .= '<Label>'.$val.'</Label>';
253 - //Get XML parsed from extensions
254 - if ( $xmlFromExtensions['smw'] != null ) {
255 - $xml_ex_array = $xmlFromExtensions['smw'];
256 - if ($xml_ex_array[$indexGlobalField] != null ) {
257 - $XMLtext .= $xml_ex_array[$indexGlobalField] ;
 257+
 258+ // Get XML created by extensions
 259+ foreach ( $fieldXMLFromExtensions as $extensionName => $xmlPerField ) {
 260+ if ( !empty( $xmlPerField[$indexGlobalField] ) ) {
 261+ $XMLtext .= $xmlPerField[$indexGlobalField];
258262 }
259263 }
260 - if ( $xmlFromExtensions['sf'] != null ) {
261 - $xml_ex_array = $xmlFromExtensions['sf'];
262 - if ($xml_ex_array[$indexGlobalField] != null ) {
263 - $XMLtext .= $xml_ex_array[$indexGlobalField] ;
264 - }
265 - }
266 - if ( $xmlFromExtensions['sd'] != null ) {
267 - $xml_ex_array = $xmlFromExtensions['sd'];
268 - if ($xml_ex_array[$indexGlobalField] != null ) {
269 - $XMLtext .= $xml_ex_array[$indexGlobalField] ;
270 - }
271 - }
272264 $indexGlobalField++ ;
273265 } elseif ( substr( $var, 0, 10 ) == 'f_add_xml_' ) {
274266 $XMLtext .= $val;
@@ -335,6 +327,8 @@
336328 $formHTML = self::blankFormHTML( $htmlFromExtensions );
337329 $formHTML .= self::starterFieldHTML( $htmlFromExtensions );
338330
 331+ $add_xml_label = wfMsg('ps-add-xml-label');
 332+
339333 $pageSchemaObj = new PSSchema( $category );
340334 $title = Title::newFromText( $category, NS_CATEGORY );
341335 $pageId = $title->getArticleID();
@@ -431,9 +425,9 @@
432426 $fieldLabel = (string)$child;
433427 }
434428 }
435 - $text_4 .= '<p>Field name: <input size="15" name="f_name_'.$field_count.'" value="'.$fieldName.'" >';
 429+ $text_4 .= '<p>Field name: <input size="15" name="f_name_'.$field_count.'" value="'.$fieldName.'" />';
436430 $display_label = wfMsg( 'pageschemas-displaylabel' );
437 - $text_4 .= $display_label . ' <input size="15" name="f_label_'.$field_count.'" value="'.$fieldLabel.'" >
 431+ $text_4 .= $display_label . ' <input size="15" name="f_label_'.$field_count.'" value="'.$fieldLabel.'" />
438432 </p> ';
439433 $attrs = array();
440434 $pAttrs = array( 'class' => 'delimiterInput' );

Status & tagging log