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

Revision: 95789
Author:   yaron
Date:     2011-08-30 16:19:23 +0000 (Tue, 30 Aug 2011)
Log Message:
-----------
Page Schemas 'getXmlTextForFieldInputs' hook was replaced with 
'PageSchemasGetFieldXML'; plus general cleanup

Modified Paths:
--------------
    trunk/extensions/SemanticDrilldown/SemanticDrilldown.php
    trunk/extensions/SemanticDrilldown/includes/SD_Utils.php

Modified: trunk/extensions/SemanticDrilldown/SemanticDrilldown.php
===================================================================
--- trunk/extensions/SemanticDrilldown/SemanticDrilldown.php    2011-08-30 
16:14:05 UTC (rev 95788)
+++ trunk/extensions/SemanticDrilldown/SemanticDrilldown.php    2011-08-30 
16:19:23 UTC (rev 95789)
@@ -70,7 +70,7 @@
 $wgHooks['PSParseFieldElements'][] = 'SDUtils::parseFieldElements' ; //Hook 
for  creating Pages
 $wgHooks['PageSchemasGetObject'][] = 'SDUtils::createPageSchemasObject' ; 
//Hook for  returning PageSchema(extension)  object from a given xml 
 $wgHooks['getHtmlTextForFieldInputs'][] = 'SDUtils::getHtmlTextForPS' ; //Hook 
for  retuning html text to PS schema
-$wgHooks['getXmlTextForFieldInputs'][] = 'SDUtils::getXMLTextForPS' ; //Hook 
for  retuning html text to PS schema
+$wgHooks['PageSchemasGetFieldXML'][] = 'SDUtils::getFieldXMLForPS' ; //Hook 
for  retuning html text to PS schema
 $wgHooks['getFilledHtmlTextForFieldInputs'][] = 
'SDUtils::getFilledHtmlTextForPS' ; //Hook for  retuning html text to PS schema
 
 

Modified: trunk/extensions/SemanticDrilldown/includes/SD_Utils.php
===================================================================
--- trunk/extensions/SemanticDrilldown/includes/SD_Utils.php    2011-08-30 
16:14:05 UTC (rev 95788)
+++ trunk/extensions/SemanticDrilldown/includes/SD_Utils.php    2011-08-30 
16:19:23 UTC (rev 95789)
@@ -10,8 +10,8 @@
 class SDUtils {
 
        /**
-* Function to return the Property based on the xml passed from the PageSchema 
extension 
-*/
+       * Function to return the Property based on the xml passed from the 
PageSchema extension
+       */
        public static function createPageSchemasObject( $objectName, 
$xmlForField, &$object ) {
                $sdarray = array();
                if ( $objectName == "semanticdrilldown_Filter" ) {
@@ -30,13 +30,13 @@
                                        }
                                }
                        }
-                       //Setting value specific to SF in 'sf' index. 
-                       $object['sd'] = $sdarray;               
+                       $object['sd'] = $sdarray;
                }
-       return true;
-}
-    public static function getFilledHtmlTextForPS( $pageSchemaObj, 
&$text_extensions ){
-                       $text = "";             
+               return true;
+       }
+
+       public static function getFilledHtmlTextForPS( $pageSchemaObj, 
&$text_extensions ){
+               $text = "";
                $name_label = wfMsg( 'sd_createfilter_name' );
                $property_label = wfMsg( 'sd_createfilter_property' );
                $label_label = wfMsg( 'sd_createfilter_label' );
@@ -58,172 +58,158 @@
                $date_range_label = wfMsg( 'sd_filter_daterange' );
                $date_range_value = wfMsgForContent( 'sd_filter_daterange' );
                $require_filter_label = wfMsg( 'sd_createfilter_requirefilter' 
);
-               
+
                $template_fields = array();
-               $html_text = "";        
+               $html_text = "";
                $template_all = $pageSchemaObj->getTemplates();
                $html_text_array = array();
                foreach ( $template_all as $template ) {
-                       $field_all = $template->getFields();                    
-                       $field_count = 0; //counts the number of fields         
        
+                       $field_all = $template->getFields();
+                       $field_count = 0; //counts the number of fields
                        foreach( $field_all as $field ) {
                                $html_text .= '<fieldset style="background: 
#FDD;"><legend>Filter</legend>';
-                               $field_count++; 
+                               $field_count++;
                                $sd_array = 
$field->getObject('semanticdrilldown_Filter');//this returns an array with 
property values filled
                                $filter_array = $sd_array['sd'];
                                $html_text .= '<p>'.$name_label.' <input 
size="25" name="sd_filter_name_starter" value="'.$filter_array['Label'].'" 
></p>';
                                $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="property">'.
-               $values_from_property_label.'
-               </p>';
-               $categories = SDUtils::getTopLevelCategories();
-               $option_html_text = "";
-                       foreach ( $categories as $category ) {
-                               $category = str_replace( '_', ' ', $category );
-                               $option_html_text .= "  
<option>$category</option>\n";
-                       }
-                       if( $filter_array['ValuesFromCategory'] != null){
-                               $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="category">'.
-                       $values_from_category_label.'
-                       <select id="category_dropdown" 
name="sd_category_name_starter">';
+                               $values_from_property_label.'
+                               </p>';
+                               $categories = SDUtils::getTopLevelCategories();
                                $option_html_text = "";
                                foreach ( $categories as $category ) {
                                        $category = str_replace( '_', ' ', 
$category );
-                                       if( $category == 
$filter_array["ValuesFromCategory"]) {
-                                               $option_html_text .= '  <option 
selected>'.$category.'</option>\n';
-                                       }else{
-                                               $option_html_text .= '  
<option>'.$category.'</option>\n';
-                                       }
+                                       $option_html_text .= "  
<option>$category</option>\n";
                                }
-                       }else{
-                               $html_text .= '<p><input type="radio" 
name="sd_values_source_starter"  value="category">'.
-                       $values_from_category_label.'
+                               if( $filter_array['ValuesFromCategory'] != 
null){
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="category">'.
+                                       $values_from_category_label.'
                        <select id="category_dropdown" 
name="sd_category_name_starter">';
-                       }
-                       $html_text .= $option_html_text;
-                       $html_text .= '</select></p>';
-                       
-               if( $filter_array["TimePeriod"] != null ){
-                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="dates">'.
-                       $date_values_label.'
+                                       $option_html_text = "";
+                                       foreach ( $categories as $category ) {
+                                               $category = str_replace( '_', ' 
', $category );
+                                               if( $category == 
$filter_array["ValuesFromCategory"]) {
+                                                       $option_html_text .= '  
<option selected>'.$category.'</option>\n';
+                                               }else{
+                                                       $option_html_text .= '  
<option>'.$category.'</option>\n';
+                                               }
+                                       }
+                               } else {
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" value="category">'.
+                                       $values_from_category_label.'
+                       <select id="category_dropdown" 
name="sd_category_name_starter">';
+                               }
+                               $html_text .= $option_html_text;
+                               $html_text .= '</select></p>';
+
+                               if ( $filter_array["TimePeriod"] != null ){
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="dates">'.
+                                       $date_values_label.'
                        <select id="time_period_dropdown" 
name="sd_time_period_starter">';
 
-                       if($filter_array['TimePeriod'] == $year_value ){
-                               $html_text .= '<option selected 
value="'.$year_value.'">'.$year_label.'</option>
+                                       if($filter_array['TimePeriod'] == 
$year_value ){
+                                               $html_text .= '<option selected 
value="'.$year_value.'">'.$year_label.'</option>
                        <option 
value="'.$month_value.'">'.$month_label.'</option>';
-                       }else{
-                               $html_text .= '<option  
value="'.$year_value.'">'.$year_label.'</option>
+                                       }else{
+                                               $html_text .= '<option 
value="'.$year_value.'">'.$year_label.'</option>
                        <option selected 
value="'.$month_value.'">'.$month_label.'</option>';
-                       }
-                       
-                       $html_text .= '</select>
-                       </p>';
-               
-               }else{
-                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter"  value="dates">'.
-                       $date_values_label.'
+                                       }
+
+
+                               } else {
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" value="dates">'.
+                                       $date_values_label.'
                        <select id="time_period_dropdown" 
name="sd_time_period_starter">
                        <option value="'.$year_value.'">'.$year_label.'</option>
-                       <option 
value="'.$month_value.'">'.$month_label.'</option>
-                       </select>
+                       <option 
value="'.$month_value.'">'.$month_label.'</option>';
+                               }
+                               $html_text .= '</select>
                        </p>';
-               }
-               if( $filter_array['Values'] != null){
-                       $values_array = $filter_array['Values'];
-                       $values_str = "";
-                       foreach($values_array as $value)
-                       {
-                               $values_str .= $value.', ';
-                       }
-                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="manual">'.
-                       $enter_values_label.' <input size="40" 
name="sd_filter_values_starter" value=".'.$values_str.'" >
+                               if( $filter_array['Values'] != null){
+                                       $values_array = $filter_array['Values'];
+                                       $values_str = "";
+                                       foreach($values_array as $value) {
+                                               $values_str .= $value.', ';
+                                       }
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" checked value="manual">'.
+                                       $enter_values_label.' <input size="40" 
name="sd_filter_values_starter" value=".'.$values_str.'" >
                        </p>';
-               }else{
-                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" value="manual">'.
-                       $enter_values_label.' <input size="40" 
name="sd_filter_values_starter" value="">
+                               }else{
+                                       $html_text .= '<p><input type="radio" 
name="sd_values_source_starter" value="manual">'.
+                                       $enter_values_label.' <input size="40" 
name="sd_filter_values_starter" value="">
                        </p>';
-               }
-               if( $filter_array['InputType'] != null){                
-                       $input_type_val = $filter_array['InputType'];
-                       $html_text .= '<p>'.$input_type_label.'
+                               }
+                               $input_type_val = $filter_array['InputType'];
+                               $html_text .= '<p>'.$input_type_label.'
                        <select id="input_type_dropdown" 
name="sd_input_type_starter">
                        <option selected 
value="">'.$values_list_label.'</option>';
-                       if( $input_type_val == $combo_box_value){
-                       $html_text .= '<option selected 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
-                       <option 
value="'.$date_range_value.'">'.$date_range_label.'</option>
+                               if ( $input_type_val == $combo_box_value ) {
+                                       $html_text .= '<option selected 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
+                       <option 
value="'.$date_range_value.'">'.$date_range_label.'</option>';
+                               } elseif ( $input_type_val == $date_range_value 
) {
+                                       $html_text .= '<option 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
+                       <option selected 
value="'.$date_range_value.'">'.$date_range_label.'</option>';
+                               } else {
+                                       $html_text .= '<option 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
+                               <option 
value="'.$date_range_value.'">'.$date_range_label.'</option>';
+                               }
+                               $html_text .= <<<END
                        </select>
-                       </p>';          
-                       }else if( $input_type_val == $date_range_value ){
-                       $html_text .= '<option 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
-                       <option selected 
value="'.$date_range_value.'">'.$date_range_label.'</option>
-                       </select>
-                       </p>';          
-                       }else{
-                       $html_text .= '<option 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
-                       <option 
value="'.$date_range_value.'">'.$date_range_label.'</option>
-                       </select>
-                       </p>';                  
+                       </p>
+                       </fieldset>
+
+END;
+
+                               $html_text_array[] = $html_text;
+                               $html_text = "";
                        }
-               }else{          
-                       $html_text .= '<p>'.$input_type_label.'
-                       <select id="input_type_dropdown" 
name="sd_input_type_starter">
-                       <option selected 
value="">'.$values_list_label.'</option>';     
-                       $html_text .= '<option 
value="'.$combo_box_value.'">'.$combo_box_label.'</option>
-                       <option 
value="'.$date_range_value.'">'.$date_range_label.'</option>
-                       </select>
-                       </p>';                                          
                }
-               
-               $html_text .= '</fieldset>';    
-               $html_text_array[] = $html_text;
-               $html_text = "";
-               }
-               }
                $text_extensions['sd'] = $html_text_array;
                return true;
        }
-       public static function getXMLTextForPS( $wgRequest, &$text_extensions 
){        
-               $Xmltext = "";
+
+       public static function getFieldXMLForPS( $request, &$xmlArray ) {
                $templateNum = -1;
-               $xml_text_array = array();              
-               foreach ( $wgRequest->getValues() as $var => $val ) {
-                       if(substr($var,0,15) == 'sd_filter_name_'){
-                               $Xmltext .= '<semanticdrilldown_Filter>';
-                               $templateNum = substr($var,15,1);               
        
-                               $Xmltext .= '<Label>'.$val.'</Label>';
-                       }else if(substr($var,0,17) == 'sd_values_source_'){
+               $xmlPerField = array();
+               foreach ( $request->getValues() as $var => $val ) {
+                       if ( substr( $var, 0, 15 ) == 'sd_filter_name_' ) {
+                               $xml = '<semanticdrilldown_Filter>';
+                               $templateNum = substr($var,15,1);
+                               $xml .= '<Label>'.$val.'</Label>';
+                       } elseif ( substr( $var, 0, 17 ) == 
'sd_values_source_') {
                                if ( $val == 'category' ) {
-                                       $Xmltext .= 
'<ValuesFromCategory>'.$wgRequest->getText('sd_category_name_'.$templateNum).'</ValuesFromCategory>';
-                               }else if ( $val == 'dates' ) {
-                                        $Xmltext .= 
'<TimePeriod>'.$wgRequest->getText('sd_time_period_'.$templateNum).'</TimePeriod>';
-                               }else if ( $val == 'manual' ) {
+                                       $xml .= 
'<ValuesFromCategory>'.$wgRequest->getText('sd_category_name_'.$templateNum).'</ValuesFromCategory>';
+                               } elseif ( $val == 'dates' ) {
+                                        $xml .= 
'<TimePeriod>'.$wgRequest->getText('sd_time_period_'.$templateNum).'</TimePeriod>';
+                               } elseif ( $val == 'manual' ) {
                                        $filter_mannual_values_str = 
$wgRequest->getText('sd_filter_values_'.$templateNum);
                                        // replace the comma substitution 
character that has no chance of
                                        // being included in the values list - 
namely, the ASCII beep
                                        $listSeparator = ',';
                                        $filter_mannual_values_str = 
str_replace( "\\$listSeparator", "\a", $filter_mannual_values_str );
                                        $filter_mannual_values_array = explode( 
$listSeparator, $filter_mannual_values_str );
-                                       $Xmltext .= '<Values>';
+                                       $xml .= '<Values>';
                                        foreach ( $filter_mannual_values_array 
as $i => $value ) {
                                                // replace beep back with 
comma, trim
                                                $value = str_replace( "\a", 
$listSeparator, trim( $value ) );
-                                               $Xmltext .= 
'<Value>'.$value.'</Value>';                                                
+                                               $xml .= 
'<Value>'.$value.'</Value>';
                                        }
-                                       $Xmltext .= '</Values>';
+                                       $xml .= '</Values>';
                                }
-                       }else if( substr($var,0,14) == 'sd_input_type_'){
-                               $Xmltext .= '<InputType>'.$val.'</InputType>';
-                               $Xmltext .= '</semanticdrilldown_Filter>';
-                               $xml_text_array[] = $Xmltext;
-                               $Xmltext = '';
+                       } elseif ( substr($var,0,14) == 'sd_input_type_') {
+                               $xml .= '<InputType>'.$val.'</InputType>';
+                               $xml .= '</semanticdrilldown_Filter>';
+                               $xmlPerField[] = $xml;
                        }
                }
-               
-               $text_extensions['sd'] = $xml_text_array;
+
+               $xmlArray['sd'] = $xmlPerField;
                return true;
        }
-       public static function getHtmlTextForPS( &$js_extensions 
,&$text_extensions ) { 
+
+       public static function getHtmlTextForPS( &$js_extensions 
,&$text_extensions ) {
                global $wgContLang;
-               
+
                $text = "";
                $text .= '<fieldset style="background: 
#FDD;"><legend>Filter</legend>';
                $name_label = wfMsg( 'sd_createfilter_name' );
@@ -251,7 +237,7 @@
                $date_range_value = wfMsgForContent( 'sd_filter_daterange' );
                $require_filter_label = wfMsg( 'sd_createfilter_requirefilter' 
);
                $text .= <<<END
-               
+
                <p><input type="radio" name="sd_values_source_starter" checked 
value="property">
                $values_from_property_label
                </p>
@@ -260,7 +246,7 @@
                <select id="category_dropdown" name="sd_category_name_starter">
 
 END;
-                       
+
                $categories = SDUtils::getTopLevelCategories();
                foreach ( $categories as $category ) {
                        $category = str_replace( '_', ' ', $category );
@@ -289,13 +275,13 @@
                </fieldset>
 
 END;
-               
+
                $text_extensions['sd'] = $text;
                return true;
        }
-/**
- *Thi Function parses the Field elements in the xml of the pages. Hooks for 
PageSchemas extension
-*/
+       /**
+        * This function parses the Field elements in the xml of the pages. 
Hooks for Page Schemas extension
+        */
        public static function parseFieldElements( $field_xml, &$text_object ) {
                foreach ( $field_xml->children() as $tag => $child ) {
                        if ( $tag == "semanticdrilldown_Filter" ) {
@@ -486,8 +472,8 @@
                if ( class_exists( 'PSSchema' ) ) {
                        $pageSchemaObj = new PSSchema( $category );
                        if($pageSchemaObj->isPSDefined()){
-                               $filters_ps = SDFilter::loadAllFromPageSchema( 
$pageSchemaObj );                                                
-                               $result_filters = array_merge($filters, 
$filters_ps);                   
+                               $filters_ps = SDFilter::loadAllFromPageSchema( 
$pageSchemaObj );
+                               $result_filters = array_merge($filters, 
$filters_ps);
                                return $result_filters;
                        }
                }
@@ -497,7 +483,7 @@
        /**
         * Gets all the display parameters defined for a category
         */
-       static function getDisplayParamsForCategory( $category ) {              
+       static function getDisplayParamsForCategory( $category ) {
                $all_display_params = SDUtils::getValuesForProperty( 
str_replace( ' ', '_', $category ), NS_CATEGORY, '_SD_DP' );
 
                $return_display_params = array();
@@ -675,7 +661,7 @@
                $magicWordVariableIDs[] = 'MAG_SHOWINDRILLDOWN';
                return true;
        }
- 
+
        /**
         * Set the actual value of the magic words
         */


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

Reply via email to