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