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

Reply via email to