https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114428

Revision: 114428
Author:   danwe
Date:     2012-03-22 19:00:08 +0000 (Thu, 22 Mar 2012)
Log Message:
-----------
"?!" parser function and moved parser hook files into sub directory

Modified Paths:
--------------
    trunk/extensions/SemanticExpressiveness/SemanticExpressiveness.php

Added Paths:
-----------
    trunk/extensions/SemanticExpressiveness/includes/parserhooks/
    
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExExpressiveStringPF.php
    
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExPlainQueryPF.php
    
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExQueryPF.php

Removed Paths:
-------------
    trunk/extensions/SemanticExpressiveness/includes/SemExExpressiveStringPF.php
    trunk/extensions/SemanticExpressiveness/includes/SemExQueryPF.php

Modified: trunk/extensions/SemanticExpressiveness/SemanticExpressiveness.php
===================================================================
--- trunk/extensions/SemanticExpressiveness/SemanticExpressiveness.php  
2012-03-22 18:17:36 UTC (rev 114427)
+++ trunk/extensions/SemanticExpressiveness/SemanticExpressiveness.php  
2012-03-22 19:00:08 UTC (rev 114428)
@@ -50,7 +50,6 @@
 $wgAutoloadClasses['SemExExpressiveStringPieceSQResult'] = $incDir . 
'SemExExpressiveStringPieceSQResult.php';
 $wgAutoloadClasses['SemExExpressiveStringPieceWikiLink'] = $incDir . 
'SemExExpressiveStringPieceWikiLink.php';
 $wgAutoloadClasses['SemExExpressiveStringOutputOptions'] = $incDir . 
'SemExExpressiveStringOutputOptions.php';
-$wgAutoloadClasses['SemExQueryPF'                      ] = $incDir . 
'SemExQueryPF.php';
 $wgAutoloadClasses['SemExShortQuery'                   ] = $incDir . 
'SemExShortQuery.php';
 $wgAutoloadClasses['SemExShortQueryProcessor'          ] = $incDir . 
'SemExShortQueryProcessor.php';
 $wgAutoloadClasses['SemExShortQueryResult'             ] = $incDir . 
'SemExShortQueryResult.php';
@@ -65,8 +64,9 @@
 $wgAutoloadClasses['SemExParamManipulationQuerySource'] = $incDir . 
'validation/SemExParamManipulationQuerySource.php';
 
 // Parser function initializations:
-$wgAutoloadClasses['SemExQueryPF'            ] = $incDir . 'SemExQueryPF.php';
-$wgAutoloadClasses['SemExExpressiveStringPF' ] = $incDir . 
'SemExExpressiveStringPF.php';
+$wgAutoloadClasses['SemExQueryPF'           ] = $incDir . 
'parserhooks/SemExQueryPF.php';
+$wgAutoloadClasses['SemExPlainQueryPF'      ] = $incDir . 
'parserhooks/SemExPlainQueryPF.php';
+$wgAutoloadClasses['SemExExpressiveStringPF'] = $incDir . 
'parserhooks/SemExExpressiveStringPF.php';
 
 $wgHooks['ParserFirstCallInit'][] = 'SemExExpressiveStringPF::staticInit';
 
@@ -85,8 +85,8 @@
        
        static function init( &$parser ) {
                $parser->setFunctionHook( '?',  array( 'SemExQueryPF', 'render' 
), SFH_NO_HASH );
-               //$parser->setFunctionHook( '?!', array( 'SemExPlainQueryPF', 
'render' ),  SFH_NO_HASH );
-               $parser->setFunctionHook( '?to?!', __CLASS__ . 
'::parserFunc_QueryToPlainQuery', SFH_NO_HASH );
+               $parser->setFunctionHook( '?!', array( 'SemExPlainQueryPF', 
'render' ), SFH_NO_HASH );
+               //$parser->setFunctionHook( '?to?!', array( __CLASS__, 
'parserFunc_QueryToPlainQuery' ), SFH_NO_HASH );
                return true;
        }
        

Deleted: 
trunk/extensions/SemanticExpressiveness/includes/SemExExpressiveStringPF.php
===================================================================
--- 
trunk/extensions/SemanticExpressiveness/includes/SemExExpressiveStringPF.php    
    2012-03-22 18:17:36 UTC (rev 114427)
+++ 
trunk/extensions/SemanticExpressiveness/includes/SemExExpressiveStringPF.php    
    2012-03-22 19:00:08 UTC (rev 114428)
@@ -1,132 +0,0 @@
-<?php
-
-/**
- * Class for the '?to?!' parser function, basically a limited converter for 
expressive strings.
- * 
- * @since 0.1
- * 
- * @file SemExExpressiveStringPF.php
- * @ingroup SemanticExpressiveness
- *
- * @author Daniel Werner < danwe...@web.de >
- */
-class SemExExpressiveStringPF extends ParserHook {
-               
-       public function __construct() {
-               // make this a parser function extension (no tag extension) 
only:
-               parent::__construct( false, true, ParserHook::FH_NO_HASH );
-       }
-               
-       /**
-        * No LSB in pre-5.3 PHP, to be refactored later
-        */     
-       public static function staticInit( Parser &$parser ) {          
-               $instance = new self;
-               $instance->init( $parser );
-               return true;
-       }
-       
-       /**
-        * Gets the name of the parser hook.
-        * @see ParserHook::getName
-        * 
-        * @return string
-        */
-       protected function getName() {
-               return '?to?!';
-       }
-       
-       /**
-        * Returns an array containing the parameter info.
-        * @see ParserHook::getParameterInfo
-        * 
-        * @return array
-        */
-       protected function getParameterInfo( $type ) {
-               $params = SemExExpressiveStringOutputOptions::getPFParams();
-               
-               # input text.
-               # since 0.1
-               $params['text'] = new Parameter( 'text' );
-               
-               $pieceTypesCriteria = new CriterionInArray(
-                               array_values( 
SemExExpressiveString::getRegisteredPieceTypeNames() )
-               );
-               
-               $params['detect'] = new ListParameter( 'detect' );
-               $params['detect']->addCriteria( $pieceTypesCriteria );
-               $params['detect']->setDefault( array( '' ), false );
-               
-               $params['ignore'] = new ListParameter( 'ignore' );
-               $params['ignore']->addCriteria( $pieceTypesCriteria );
-               $params['ignore']->setDefault( array(), false );
-               
-               return $params;
-       }
-       
-       /**
-        * Returns the list of default parameters.
-        * @see ParserHook::getDefaultParameters
-        * 
-        * @return array
-        */
-       protected function getDefaultParameters( $type ) {
-               return array(
-                       array( 'text', Validator::PARAM_UNNAMED ),
-               );
-       }
-       
-       /**
-        * Returns the parser function options.
-        * @see ParserHook::getFunctionOptions
-        * 
-        * @return array
-        */
-       protected function getFunctionOptions() {
-               return array(
-                       'noparse' => true,
-                       'isHTML' => false
-               );
-       }
-               
-       /**
-        * Renders and returns the output.
-        * @see ParserHook::renderTag
-        * 
-        * @param array $parameters
-        * @return string
-        */
-       public function render( array $parameters ) {
-               // get all types that should be handled by this
-               $enabledTypes = array();
-               
-               if( implode( '', $parameters['detect'] ) !== '' ) { // '' 
counts as if parameter not set
-                       foreach( $parameters['detect'] as $typeName ) {
-                               $type = 
SemExExpressiveString::getRegisteredPieceTypeByName( $typeName );
-                               if( $type !== null ) {
-                                       $enabledTypes[] = $type;
-                               }
-                       }
-               } elseif( empty( $parameters['ignore'] ) ) {
-                       $enabledTypes = null; // same as next but constructor 
will process this faster
-               } else {
-                       $enabledTypes = 
SemExExpressiveString::getRegisteredPieceTypeNames();
-               }
-               
-               if( $enabledTypes !== null ) {
-                       $enabledTypes = array_flip( $enabledTypes );
-                       foreach( $parameters['ignore'] as $typeName ) {
-                               unset( $enabledTypes[ 
SemExExpressiveString::getRegisteredPieceTypeByName( $typeName ) ] );
-                       }
-                       $enabledTypes = array_flip( $enabledTypes );
-               }
-               
-               // build expressive string from input with enabled types:
-               $exprString = new SemExExpressiveString( $parameters['text'], 
$this->parser, $enabledTypes );
-               
-               /** @ToDo: Make it possible to define options per piece type 
per parameter prefixes */
-               $options = 
SemExExpressiveStringOutputOptions::newFromValidatedParams( $parameters );
-               return $exprString->getOutput( $options );
-       }
-       
-}

Deleted: trunk/extensions/SemanticExpressiveness/includes/SemExQueryPF.php
===================================================================
--- trunk/extensions/SemanticExpressiveness/includes/SemExQueryPF.php   
2012-03-22 18:17:36 UTC (rev 114427)
+++ trunk/extensions/SemanticExpressiveness/includes/SemExQueryPF.php   
2012-03-22 19:00:08 UTC (rev 114428)
@@ -1,90 +0,0 @@
-<?php
-
-/**
- * Class for '?' short query parser function
- * 
- * @since 0.1
- * 
- * @file SemExQueryPF.php
- * @ingroup SemanticExpressiveness
- *
- * @author Daniel Werner < danwe...@web.de >
- */
-
-class SemExQueryPF {
-       
-       public static function render( Parser &$parser ) {
-               global $smwgQEnabled, $smwgIQRunningNumber;
-               
-               if ( $smwgQEnabled ) {
-                       $smwgIQRunningNumber++;
-                       
-                       $params = func_get_args();
-                       array_shift( $params ); // remove $parser               
        
-                       $params = static::validateParams( $params );
-                       
-                       $query = SemExShortQuery::newFromValidatedParams( 
$params );
-                       $options = 
SemExShortQueryOutputOptions::newFromValidatedParams( $params );
-                       
-                       if( ! $query || ! $options ) {
-                               // @ToDo: real error message (anyway, in what 
case can this happen?)
-                               return 'FALSE';
-                       }
-                       
-                       $result = SemExShortQueryProcessor::getResultFromQuery( 
$parser, $query, $options );
-                       
-                       if( $result === '' ) {
-                               $result = $params['default'];
-                       } else {
-                               $result = // allow ' ' in form of '_' around 
the result
-                                               preg_replace( '/_$/', ' ', 
$params['intro'] ) .
-                                               $result .
-                                               preg_replace( '/^_/', ' ', 
$params['outro'] );
-                       }
-               }
-               else {
-                       $result = smwfEncodeMessages( array( wfMsgForContent( 
'smw_iq_disabled' ) ) );
-               }
-               
-                return $result;
-       }
-       
-       protected static function validateParams( array $rawParams, &$validator 
= null ) {
-               $validator = new Validator();
-               $validator->setFunctionParams(
-                               $rawParams,
-                               static::getParameters(),
-                               array( 'property', Validator::PARAM_UNNAMED ) 
// 'property' is parameter 1
-               );
-               $validator->validateParameters();
-               
-               return $validator->getParameterValues();
-       }
-       
-       /**
-        * Returns a description of all allowed function Parameters.
-        * 
-        * @return array
-        */
-       public static function getParameters() {
-               $params = array();
-               
-               $params['intro']   = new Parameter( 'intro' );
-               $params['intro']->setDefault( '' );
-               
-               $params['outro']   = new Parameter( 'outro' );
-               $params['outro']->setDefault( '' );
-               
-               $params['default'] = new Parameter( 'default' );
-               $params['default']->setDefault( '' );
-               
-               // add function parameters describing the querry and its 
options:
-               $params = array_merge(
-                       $params,
-                       SemExShortQuery::getPFParams(),
-                       SemExShortQueryOutputOptions::getPFParams()
-               );
-               
-               return $params;
-       }
-}

Copied: 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExExpressiveStringPF.php
 (from rev 114427, 
trunk/extensions/SemanticExpressiveness/includes/SemExExpressiveStringPF.php)
===================================================================
--- 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExExpressiveStringPF.php
                            (rev 0)
+++ 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExExpressiveStringPF.php
    2012-03-22 19:00:08 UTC (rev 114428)
@@ -0,0 +1,132 @@
+<?php
+
+/**
+ * Class for the '?to?!' parser function, basically a limited converter for 
expressive strings.
+ * 
+ * @since 0.1
+ * 
+ * @file SemExExpressiveStringPF.php
+ * @ingroup SemanticExpressiveness
+ *
+ * @author Daniel Werner < danwe...@web.de >
+ */
+class SemExExpressiveStringPF extends ParserHook {
+               
+       public function __construct() {
+               // make this a parser function extension (no tag extension) 
only:
+               parent::__construct( false, true, ParserHook::FH_NO_HASH );
+       }
+               
+       /**
+        * No LSB in pre-5.3 PHP, to be refactored later
+        */     
+       public static function staticInit( Parser &$parser ) {          
+               $instance = new self;
+               $instance->init( $parser );
+               return true;
+       }
+       
+       /**
+        * Gets the name of the parser hook.
+        * @see ParserHook::getName
+        * 
+        * @return string
+        */
+       protected function getName() {
+               return '?to?!';
+       }
+       
+       /**
+        * Returns an array containing the parameter info.
+        * @see ParserHook::getParameterInfo
+        * 
+        * @return array
+        */
+       protected function getParameterInfo( $type ) {
+               $params = SemExExpressiveStringOutputOptions::getPFParams();
+               
+               # input text.
+               # since 0.1
+               $params['text'] = new Parameter( 'text' );
+               
+               $pieceTypesCriteria = new CriterionInArray(
+                               array_values( 
SemExExpressiveString::getRegisteredPieceTypeNames() )
+               );
+               
+               $params['detect'] = new ListParameter( 'detect' );
+               $params['detect']->addCriteria( $pieceTypesCriteria );
+               $params['detect']->setDefault( array( '' ), false );
+               
+               $params['ignore'] = new ListParameter( 'ignore' );
+               $params['ignore']->addCriteria( $pieceTypesCriteria );
+               $params['ignore']->setDefault( array(), false );
+               
+               return $params;
+       }
+       
+       /**
+        * Returns the list of default parameters.
+        * @see ParserHook::getDefaultParameters
+        * 
+        * @return array
+        */
+       protected function getDefaultParameters( $type ) {
+               return array(
+                       array( 'text', Validator::PARAM_UNNAMED ),
+               );
+       }
+       
+       /**
+        * Returns the parser function options.
+        * @see ParserHook::getFunctionOptions
+        * 
+        * @return array
+        */
+       protected function getFunctionOptions() {
+               return array(
+                       'noparse' => true,
+                       'isHTML' => false
+               );
+       }
+               
+       /**
+        * Renders and returns the output.
+        * @see ParserHook::renderTag
+        * 
+        * @param array $parameters
+        * @return string
+        */
+       public function render( array $parameters ) {
+               // get all types that should be handled by this
+               $enabledTypes = array();
+               
+               if( implode( '', $parameters['detect'] ) !== '' ) { // '' 
counts as if parameter not set
+                       foreach( $parameters['detect'] as $typeName ) {
+                               $type = 
SemExExpressiveString::getRegisteredPieceTypeByName( $typeName );
+                               if( $type !== null ) {
+                                       $enabledTypes[] = $type;
+                               }
+                       }
+               } elseif( empty( $parameters['ignore'] ) ) {
+                       $enabledTypes = null; // same as next but constructor 
will process this faster
+               } else {
+                       $enabledTypes = 
SemExExpressiveString::getRegisteredPieceTypeNames();
+               }
+               
+               if( $enabledTypes !== null ) {
+                       $enabledTypes = array_flip( $enabledTypes );
+                       foreach( $parameters['ignore'] as $typeName ) {
+                               unset( $enabledTypes[ 
SemExExpressiveString::getRegisteredPieceTypeByName( $typeName ) ] );
+                       }
+                       $enabledTypes = array_flip( $enabledTypes );
+               }
+               
+               // build expressive string from input with enabled types:
+               $exprString = new SemExExpressiveString( $parameters['text'], 
$this->parser, $enabledTypes );
+               
+               /** @ToDo: Make it possible to define options per piece type 
per parameter prefixes */
+               $options = 
SemExExpressiveStringOutputOptions::newFromValidatedParams( $parameters );
+               return $exprString->getOutput( $options );
+       }
+       
+}

Added: 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExPlainQueryPF.php
===================================================================
--- 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExPlainQueryPF.php
                          (rev 0)
+++ 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExPlainQueryPF.php
  2012-03-22 19:00:08 UTC (rev 114428)
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * Class for ?!' short query parser function
+ * 
+ * @since 0.1
+ * 
+ * @file SemExPlainQueryPF.php
+ * @ingroup SemanticExpressiveness
+ *
+ * @author Daniel Werner < danwe...@web.de >
+ */
+class SemExPlainQueryPF extends SemExQueryPF {
+       public static function getParameters() {
+               $params = parent::getParameters();
+               $params['format']->setDefault( 'raw' );
+               return $params;
+       }
+}


Property changes on: 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExPlainQueryPF.php
___________________________________________________________________
Added: svn:eol-style
   + native

Copied: 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExQueryPF.php 
(from rev 114427, 
trunk/extensions/SemanticExpressiveness/includes/SemExQueryPF.php)
===================================================================
--- 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExQueryPF.php   
                            (rev 0)
+++ 
trunk/extensions/SemanticExpressiveness/includes/parserhooks/SemExQueryPF.php   
    2012-03-22 19:00:08 UTC (rev 114428)
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * Class for '?' short query parser function
+ * 
+ * @since 0.1
+ * 
+ * @file SemExQueryPF.php
+ * @ingroup SemanticExpressiveness
+ *
+ * @author Daniel Werner < danwe...@web.de >
+ */
+class SemExQueryPF {
+       
+       public static function render( Parser &$parser ) {
+               global $smwgQEnabled, $smwgIQRunningNumber;
+               
+               if ( $smwgQEnabled ) {
+                       $smwgIQRunningNumber++;
+                       
+                       $params = func_get_args();
+                       array_shift( $params ); // remove $parser               
        
+                       $params = static::validateParams( $params );
+                       
+                       $query = SemExShortQuery::newFromValidatedParams( 
$params );
+                       $options = 
SemExShortQueryOutputOptions::newFromValidatedParams( $params );
+                       
+                       if( ! $query || ! $options ) {
+                               // @ToDo: real error message (anyway, in what 
case can this happen?)
+                               return 'FALSE';
+                       }
+                       
+                       $result = SemExShortQueryProcessor::getResultFromQuery( 
$parser, $query, $options );
+                       
+                       if( $result === '' ) {
+                               $result = $params['default'];
+                       } else {
+                               $result = // allow ' ' in form of '_' around 
the result
+                                               preg_replace( '/_$/', ' ', 
$params['intro'] ) .
+                                               $result .
+                                               preg_replace( '/^_/', ' ', 
$params['outro'] );
+                       }
+               }
+               else {
+                       $result = smwfEncodeMessages( array( wfMsgForContent( 
'smw_iq_disabled' ) ) );
+               }
+               
+                return $result;
+       }
+       
+       protected static function validateParams( array $rawParams, &$validator 
= null ) {
+               $validator = new Validator();
+               $validator->setFunctionParams(
+                               $rawParams,
+                               static::getParameters(),
+                               array( 'property', Validator::PARAM_UNNAMED ) 
// 'property' is parameter 1
+               );
+               $validator->validateParameters();
+               
+               return $validator->getParameterValues();
+       }
+       
+       /**
+        * Returns a description of all allowed function Parameters.
+        * 
+        * @return array
+        */
+       public static function getParameters() {
+               $params = array();
+               
+               $params['intro']   = new Parameter( 'intro' );
+               $params['intro']->setDefault( '' );
+               
+               $params['outro']   = new Parameter( 'outro' );
+               $params['outro']->setDefault( '' );
+               
+               $params['default'] = new Parameter( 'default' );
+               $params['default']->setDefault( '' );
+               
+               // add function parameters describing the querry and its 
options:
+               $params = array_merge(
+                       $params,
+                       SemExShortQuery::getPFParams(),
+                       SemExShortQueryOutputOptions::getPFParams()
+               );
+               
+               return $params;
+       }
+}


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to