http://www.mediawiki.org/wiki/Special:Code/MediaWiki/94160

Revision: 94160
Author:   ankitgarg833
Date:     2011-08-10 15:43:19 +0000 (Wed, 10 Aug 2011)
Log Message:
-----------
adding Form related Xml and html

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-10 
15:42:40 UTC (rev 94159)
+++ trunk/extensions/PageSchemas/specials/PS_EditSchema.php     2011-08-10 
15:43:19 UTC (rev 94160)
@@ -90,9 +90,8 @@
                self::addJavascript();
                $pageSchemaObj = null;
                $text_extensions = array(); //This var. will save the html text 
returned by the extensions
-               $js_extensions = array();
-               wfRunHooks( 'getHtmlTextForFieldInputs', array( 
&$js_extensions, &$text_extensions ));
-               
+               $js_extensions = array();               
+               wfRunHooks( 'getHtmlTextForFieldInputs', array( 
&$js_extensions, &$text_extensions ));          
                $text = "";
                $text .= '<p>This category does not exist yet. Create this 
category and its page schema: </p>';
                $text .= '      <form id="createPageSchemaForm" action="" 
method="post">' . "\n";
@@ -100,6 +99,10 @@
                $text .= '<p>Additional XML:
                <textarea rows=4 style="width: 100%" 
name="ps_add_xml"></textarea> 
                </p> ';         
+               if($text_extensions['sf_form'] != null){
+                       $text_ex = preg_replace('/starter/', '1', 
$text_extensions['sf_form']);
+                       $text .= $text_ex;
+               }
                $text .= '<div id="templatesList">';
                $text .= '<div class="templateBox" >';
                $text .= '<fieldset style="background: 
#ddd;"><legend>Template</legend> ';
@@ -115,10 +118,18 @@
                This field can hold a list of values
                </p> 
                <div class="delimiterInput"  style="display: none" 
><p>Delimiter for values (default is ","): <input type="text" 
name="f_delimiter_1" /> </p></div>';
-               foreach( $text_extensions as $text_ex ){
-                       $text_ex = preg_replace('/starter/', '1', $text_ex);    
                        
-                       $text .= $text_ex ;
-               }
+               if($text_extensions['smw'] != null){
+                       $text_ex = preg_replace('/starter/', '1', 
$text_extensions['smw']);
+                       $text .= $text_ex;
+               }                               
+               if($text_extensions['sf'] != null){
+                       $text_ex = preg_replace('/starter/', '1', 
$text_extensions['sf']);
+                       $text .= $text_ex;
+               }                               
+               if($text_extensions['sd'] != null){
+                       $text_ex = preg_replace('/starter/', '1', 
$text_extensions['sd']);
+                       $text .= $text_ex;
+               }                               
                $text .= '<p>Additional XML:
                <textarea rows=4 style="width: 100%" 
name="f_add_xml_1"></textarea> 
                </p> 
@@ -204,10 +215,13 @@
                        $xml_text_extensions = array(); //This var. will save 
the xml text returned by the extensions
                        $js_extensions = array();
                        wfRunHooks( 'getXmlTextForFieldInputs', array( 
$wgRequest, &$xml_text_extensions ));
+                       if( $xml_text_extensions['sf_form'] != null ){
+                               $Xmltext .= $xml_text_extensions['sf_form'];
+                       }
                        $indexGlobalField = 0 ;  //this variable is use to 
index the array returned by extensions for XML.
-                       foreach ( $wgRequest->getValues() as $var => $val ) {   
                
+                       foreach ( $wgRequest->getValues() as $var => $val ) {
                                if(substr($var,0,7) == 't_name_'){
-                                       $templateNum = substr($var,7,1);        
                                
+                                       $templateNum = substr($var,7,1);
                                        if($wgRequest->getCheck( 
'is_multiple_'.$templateNum )){
                                                $Xmltext .= '<Template 
name="'.$val.'" multiple="multiple">';
                                        }else{
@@ -229,9 +243,24 @@
                                }else if(substr($var,0,8) == 'f_label_'){
                                        $Xmltext .= '<Label>'.$val.'</Label>';
                                        //Get Xml parsed from extensions,       
                                
-                                       foreach( $xml_text_extensions as 
$xml_ex_array ){
-                                               $Xmltext .= 
$xml_ex_array[$indexGlobalField] ;                                          
+                                       if( $xml_text_extensions['smw'] != null 
){
+                                               $xml_ex_array = 
$xml_text_extensions['smw'];
+                                               
if($xml_ex_array[$indexGlobalField] != null){
+                                                       $Xmltext .= 
$xml_ex_array[$indexGlobalField] ;
+                                               }                               
                
                                        }
+                                       if( $xml_text_extensions['sf'] != null 
){
+                                               $xml_ex_array = 
$xml_text_extensions['sf'];
+                                               
if($xml_ex_array[$indexGlobalField] != null){
+                                                       $Xmltext .= 
$xml_ex_array[$indexGlobalField] ;
+                                               }                               
                
+                                       }
+                                       if( $xml_text_extensions['sd'] != null 
){
+                                               $xml_ex_array = 
$xml_text_extensions['sd'];
+                                               
if($xml_ex_array[$indexGlobalField] != null){
+                                                       $Xmltext .= 
$xml_ex_array[$indexGlobalField] ;
+                                               }
+                                       }                               
                                        $indexGlobalField++ ;
                                }else if(substr($var,0,10) == 'f_add_xml_'){
                                        $Xmltext .= $val;
@@ -241,13 +270,11 @@
                                        $Xmltext .= '</Template>';
                                }
                        }
-                       $Xmltext .= '</PageSchema>';
-                       wfDebugLog( 'myextension', 'Xmltext: ' . print_r( 
$Xmltext, true ) );
+                       $Xmltext .= '</PageSchema>';                    
                        $categoryTitle = Title::newFromText( $category, 
NS_CATEGORY );
                        $categoryArticle = new Article( $categoryTitle );
                        $pageText = $categoryArticle->getContent();
-                       $replaced_text = 
preg_replace('/<PageSchema>*<\/PageSchema>/', $Xmltext, $pageText );
-                       wfDebugLog( 'myextension', 'Xmltext: ' . print_r( 
$replaced_text, true ) );
+                       //$replaced_text = 
preg_replace('/<PageSchema*<\/PageSchema>/', $Xmltext, $pageText );             
     
                        $jobs = array();
                        if( $wgRequest->getText('is_edit')=='true' ){
                                //Do some preg-replace magic
@@ -295,15 +322,21 @@
                                $text_4 .= '<form id="editPageSchemaForm" 
action="" method="post">' . "\n";
                                $text_4 .= '<p>Name of schema: <input 
type="text" name="s_name" value="'.$pageName.'" /> </p> ';
                                foreach ( $pageXml->children() as $template_xml 
) {
-                                       if ( $template_xml->getName() != 
'Template' ){                          
+                                       if ( ($template_xml->getName() != 
'Template') && ($template_xml->getName() != 'Form') ){
                                                $ps_add_xml .= 
(string)$template_xml->asXML();
                                        }
                                }                       
                                $text_4 .= '<p>Additional XML:
                                <textarea rows=4 style="width: 100%" 
name="ps_add_xml" >'.$ps_add_xml.'</textarea> 
                                </p> ';
-                               $text_4 .= '<div id="templatesList">';
                                
+                               $filled_html_text_extensions = array();
+                               wfRunHooks( 'getFilledHtmlTextForFieldInputs', 
array( $pageSchemaObj, &$filled_html_text_extensions ));
+                               if($filled_html_text_extensions['sf_form'] != 
null){
+                               $text_ex = preg_replace('/starter/', '1', 
$filled_html_text_extensions['sf_form']);
+                               $text_4 .= $text_ex;
+                               }
+                               $text_4 .= '<div id="templatesList">';          
                
                                $template_num = 0;
                                /*  index for template objects */               
                                                
                                foreach ( $pageXml->children() as $tag => 
$template_xml ) {
@@ -355,14 +388,29 @@
                                                                                
$text_4 .= '<div class="delimiterInput"  style="display: none" ><p>Delimiter 
for values (default is ","): <input type="text" 
name="f_delimiter_'.$field_count.'" /> </p></div>';
                                                                        }
                                                                        
//Inserting HTML text from Extensions
-                                                       
$filled_html_text_extensions = array();
-                                                       wfRunHooks( 
'getFilledHtmlTextForFieldInputs', array( $pageSchemaObj, 
&$filled_html_text_extensions ));
-                                                       foreach( 
$filled_html_text_extensions as $text_ex_array ){
+                                                       
+                                                       if( 
$filled_html_text_extensions['smw'] != null ){
+                                                               $text_ex_array 
= $filled_html_text_extensions['smw'];
                                                                if( 
$text_ex_array[$field_count] != null ){
                                                                        
$text_ex = preg_replace('/starter/', $field_count, 
$text_ex_array[$field_count]);
                                                                        $text_4 
.= $text_ex;
                                                                }
-                                                       }                       
+                                                       }
+                                                       if( 
$filled_html_text_extensions['sf'] != null ){
+                                                               $text_ex_array 
= $filled_html_text_extensions['sf'];
+                                                               if( 
$text_ex_array[$field_count] != null ){
+                                                                       
$text_ex = preg_replace('/starter/', $field_count, 
$text_ex_array[$field_count]);
+                                                                       $text_4 
.= $text_ex;
+                                                               }
+                                                       }
+                                                       if( 
$filled_html_text_extensions['sd'] != null ){
+                                                               $text_ex_array 
= $filled_html_text_extensions['sd'];
+                                                               if( 
$text_ex_array[$field_count] != null ){
+                                                                       
$text_ex = preg_replace('/starter/', $field_count, 
$text_ex_array[$field_count]);
+                                                                       $text_4 
.= $text_ex;
+                                                               }
+                                                       }
+                                                       
                                                        $text_4 .= 
'<p>Additional XML:
                <textarea rows=4 style="width: 100%" 
name="f_add_xml_'.$field_count.'"></textarea> 
                </p> 


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to