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

Revision: 72275
Author:   jeroendedauw
Date:     2010-09-03 10:54:46 +0000 (Fri, 03 Sep 2010)

Log Message:
-----------
Changes for 0.4 - improvements to ParserHook class

Modified Paths:
--------------
    trunk/extensions/Validator/includes/ParserHook.php
    trunk/extensions/Validator/includes/Validator.php

Modified: trunk/extensions/Validator/includes/ParserHook.php
===================================================================
--- trunk/extensions/Validator/includes/ParserHook.php  2010-09-03 09:16:10 UTC 
(rev 72274)
+++ trunk/extensions/Validator/includes/ParserHook.php  2010-09-03 10:54:46 UTC 
(rev 72275)
@@ -74,10 +74,13 @@
         * @param array $args
         * @param Parser $parser
         * @param PPFrame $frame
+        * 
+        * @return string
         */
        public function renderTag( $input, array $args, Parser $parser, PPFrame 
$frame ) {
                $defaultParam = array_shift( $this->getDefaultParameters() );
                
+               // If there is a first default parameter, set the tag contents 
as it's value.
                if ( !is_null( $defaultParam ) ) {
                        $args[$defaultParam] = $input;
                }
@@ -92,6 +95,8 @@
         * 
         * @param Parser $parser
         * ... further arguments ...
+        * 
+        * @return array
         */
        public function renderFunction() {
                $args = func_get_args();
@@ -113,47 +118,35 @@
         * @return string
         */
        public function validateAndRender( array $arguments, $parsed ) {
-               $manager = new ValidationManager();
+               global $egValidatorErrorLevel;
+
+               $validator = new Validator();           
                
                if ( $parsed ) {
-                       $doRender = $manager->manageParsedParameters(
-                               $arguments,
-                               $this->getParameterInfo()
-                       );                      
+                       $validator->setParameters( $arguments, 
$this->getParameterInfo() );
                }
                else {
-                       $doRender = $manager->manageParameters(
-                               $arguments,
-                               $this->getParameterInfo(),
-                               $this->getDefaultParameters()
-                       );
+                       $validator->parseAndSetParams( $arguments, 
$this->getParameterInfo(), $this->getDefaultParameters() );
                }
                
-               if ( $doRender ) {
-                       $output = $this->render( $manager->getParameters( false 
) );
+               $validator->validateAndFormatParameters();
+               
+               if ( $validator->hasErrors() && $egValidatorErrorLevel < 
Validator_ERRORS_STRICT ) {
+                       $validator->correctInvalidParams();
                }
+               
+               if ( $validator->hasFatalError() ) {
+                       // TODO
+                       $output = 'Demo: fatal error';
+               }
                else {
-                       $output = $this->handleErrors( $manager );
+                       $output = $this->render( $validator->getValidParams( 
false ) );
                }
                
                return $output;
        }
        
        /**
-        * Handles any errors that occured. Messages that should be added the 
the regular
-        * output are returned.
-        * 
-        * @since 0.4
-        * 
-        * @param ValidatorManager $manager
-        * 
-        * @return string
-        */
-       protected function handleErrors( ValidatorManager $manager ) {
-               
-       }
-       
-       /**
         * Returns an array containing the parameter info.
         * Override in deriving classes to add parameter info.
         * 

Modified: trunk/extensions/Validator/includes/Validator.php
===================================================================
--- trunk/extensions/Validator/includes/Validator.php   2010-09-03 09:16:10 UTC 
(rev 72274)
+++ trunk/extensions/Validator/includes/Validator.php   2010-09-03 10:54:46 UTC 
(rev 72275)
@@ -56,7 +56,7 @@
        /**
         * @var array Holder for the validation functions.
         */
-       private static $mValidationFunctions = array(
+       protected static $mValidationFunctions = array(
                'in_array' => array( 'ValidationFunctions', 'in_array' ),
                'in_range' => array( 'ValidationFunctions', 'in_range' ),
                'is_numeric' => array( 'ValidationFunctions', 'is_numeric' ),
@@ -118,13 +118,6 @@
        protected $mValidParams = array();
        protected $mInvalidParams = array();
        protected $mUnknownParams = array();
-
-       /**
-        * Holds all errors and their meta data. 
-        * 
-        * @var associative array
-        */
-       protected $mErrors = array();
        
        /**
         * List of ValidatorError.
@@ -156,6 +149,13 @@
                // TODO
        } 
        
+       /**
+        * Registers an error.
+        * 
+        * @param string $message
+        * @param mixed $tags string or array
+        * @param integer $severity
+        */
        protected function registerError( $message, $tags = array(), $severity 
= ValidatorError::SEVERITY_NORMAL ) {
                $error = new ValidatorError(
                        $message,



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

Reply via email to