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

Revision: 99752
Author:   yaron
Date:     2011-10-14 02:40:29 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
Fix for r99748, plus some small improvements

Modified Paths:
--------------
    trunk/extensions/SemanticMediaWiki/includes/SMW_PageSchemas.php

Modified: trunk/extensions/SemanticMediaWiki/includes/SMW_PageSchemas.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/SMW_PageSchemas.php     
2011-10-14 01:07:00 UTC (rev 99751)
+++ trunk/extensions/SemanticMediaWiki/includes/SMW_PageSchemas.php     
2011-10-14 02:40:29 UTC (rev 99752)
@@ -32,15 +32,15 @@
        }
 
        /**
-        * Returns the list of property pages defined by the passed-in
-        * Page Schemas XML object.
+        * Returns the set of SMW property data from the entire page schema.
         */
-       function getPageList( $psSchemaObj , &$genPageList ) {
-               $template_all = $psSchemaObj->getTemplates();
-               foreach ( $template_all as $template ) {
-                       $field_all = $template->getFields();
-                       foreach( $field_all as $field ) {
-                               $smw_array = 
$field->getObject('semanticmediawiki_Property');
+       static function getAllPropertyData( $psSchemaObj ) {
+               $propertyDataArray = array();
+               $psTemplates = $psSchemaObj->getTemplates();
+               foreach ( $psTemplates as $psTemplate ) {
+                       $psTemplateFields = $psTemplate->getFields();
+                       foreach ( $psTemplateFields as $psTemplateField ) {
+                               $smw_array = 
$psTemplateField->getObject('semanticmediawiki_Property');
                                if ( !array_key_exists( 'smw', $smw_array ) ) {
                                        continue;
                                }
@@ -51,10 +51,22 @@
                                if ( empty( $prop_array['name'] ) ) {
                                        continue;
                                }
-                               $title = Title::makeTitleSafe( SMW_NS_PROPERTY, 
$prop_array['name'] );
-                               $genPageList[] = $title;
+                               $propertyDataArray[] = $prop_array;
                        }
                }
+               return $propertyDataArray;
+       }
+
+       /**
+        * Sets the list of property pages defined by the passed-in
+        * Page Schemas XML object.
+        */
+       function getPageList( $psSchemaObj , &$genPageList ) {
+               $propertyDataArray = self::getAllPropertyData( $psSchemaObj );
+               foreach ( $propertyDataArray as $propertyData ) {
+                       $title = Title::makeTitleSafe( SMW_NS_PROPERTY, 
$propertyData['name'] );
+                       $genPageList[] = $title;
+               }
                return true;
        }
 
@@ -96,7 +108,7 @@
         * Returns the HTML necessary for getting information about the
         * semantic property within the Page Schemas 'editschema' page.
         */
-       function getFieldHTML( $field, &$text_extensions ) {
+       function getFieldHTML( $field, &$fieldHTMLFromExtensions ) {
                global $smwgContLang;
 
                $prop_array = array();
@@ -146,7 +158,7 @@
                }
                $html_text .= '<p>' . Html::input( 'smw_values_num', 
$allowed_val_string, 'text', $allowedValsInputAttrs ) . "</p>\n";
 
-               $text_extensions['smw'] = array( 'Semantic property', '#DEF', 
$html_text, $hasExistingValues );
+               $fieldHTMLFromExtensions['smw'] = array( 'Semantic property', 
'#DEF', $html_text, $hasExistingValues );
 
                return true;
        }
@@ -156,17 +168,20 @@
         * passed-in Page Schemas XML object.
         */
        function generatePages( $psSchemaObj, $selectedPageList ) {
-               $genPageList = array();
-               self::getPageList( $psSchemaObj , &$genPageList );
-               foreach ( $genPageList as $generatedPage ) {
-                       if ( !in_array( $generatedPage, $selectedPageList ) ) {
+               $propertyDataArray = self::getAllPropertyData( $psSchemaObj );
+               foreach ( $propertyDataArray as $propertyData ) {
+                       $title = Title::makeTitleSafe( SMW_NS_PROPERTY, 
$propertyData['name'] );
+                       if ( !in_array( $title, $selectedPageList ) ) {
                                continue;
                        }
-                       self::createProperty( $prop_array['name'], 
$prop_array['Type'], $prop_array['allowed_values'] ) ;
+                       self::createProperty( $propertyData['name'], 
$propertyData['Type'], $propertyData['allowed_values'] );
                }
                return true;
        }
 
+       /**
+        * Creates the text for a property page.
+        */
        function createPropertyText( $property_type, $allowed_values ) {
                global $smwgContLang;
                $prop_labels = $smwgContLang->getPropertyLabels();
@@ -194,6 +209,7 @@
 
        function createProperty( $prop_name, $prop_type, $allowed_values ) {
                global $wgUser;
+
                $title = Title::makeTitleSafe( SMW_NS_PROPERTY, $prop_name );
                $params = array();
                $params['user_id'] = $wgUser->getId();


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

Reply via email to