| Index: trunk/extensions/PageSchemas/specials/PS_EditSchema.php |
| — | — | @@ -212,18 +212,22 @@ |
| 213 | 213 | $save_page = $wgRequest->getCheck( 'wpSave' ); |
| 214 | 214 | if ( $save_page ) { |
| 215 | 215 | //Generate the XML from the Form elements |
| 216 | | - $XMLtext = ""; |
| 217 | 216 | //$s_name = $wgRequest->getText('s_name'); |
| 218 | | - $XMLtext .= '<PageSchema>'; |
| | 217 | + $XMLtext = '<PageSchema>'; |
| 219 | 218 | $ps_add_xml = $wgRequest->getText( 'ps_add_xml' ); |
| 220 | 219 | $XMLtext .= $ps_add_xml; |
| 221 | 220 | $fieldName = ""; |
| 222 | 221 | $fieldNum = -1; |
| 223 | 222 | $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 | + } |
| 228 | 232 | } |
| 229 | 233 | $indexGlobalField = 0 ; //this variable is use to index the array returned by extensions for XML. |
| 230 | 234 | foreach ( $wgRequest->getValues() as $var => $val ) { |
| — | — | @@ -249,25 +253,13 @@ |
| 250 | 254 | } |
| 251 | 255 | } elseif ( substr( $var, 0, 8 ) == 'f_label_' ) { |
| 252 | 256 | $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]; |
| 258 | 262 | } |
| 259 | 263 | } |
| 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 | | - } |
| 272 | 264 | $indexGlobalField++ ; |
| 273 | 265 | } elseif ( substr( $var, 0, 10 ) == 'f_add_xml_' ) { |
| 274 | 266 | $XMLtext .= $val; |
| — | — | @@ -335,6 +327,8 @@ |
| 336 | 328 | $formHTML = self::blankFormHTML( $htmlFromExtensions ); |
| 337 | 329 | $formHTML .= self::starterFieldHTML( $htmlFromExtensions ); |
| 338 | 330 | |
| | 331 | + $add_xml_label = wfMsg('ps-add-xml-label'); |
| | 332 | + |
| 339 | 333 | $pageSchemaObj = new PSSchema( $category ); |
| 340 | 334 | $title = Title::newFromText( $category, NS_CATEGORY ); |
| 341 | 335 | $pageId = $title->getArticleID(); |
| — | — | @@ -431,9 +425,9 @@ |
| 432 | 426 | $fieldLabel = (string)$child; |
| 433 | 427 | } |
| 434 | 428 | } |
| 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.'" />'; |
| 436 | 430 | $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.'" /> |
| 438 | 432 | </p> '; |
| 439 | 433 | $attrs = array(); |
| 440 | 434 | $pAttrs = array( 'class' => 'delimiterInput' ); |