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' ); |