diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2014-01-17 10:20:00 +0100 | 
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2014-01-17 10:20:00 +0100 | 
| commit | ae38cfaa701458aaebbc0991512d8788db07f9cb (patch) | |
| tree | 7dd83af86f677af35a55787e7f04925fedad1543 | |
| parent | 5e2ffe0d5cc4b7280b0bf51202cdbde4fca1e03b (diff) | |
| download | forums-ae38cfaa701458aaebbc0991512d8788db07f9cb.tar forums-ae38cfaa701458aaebbc0991512d8788db07f9cb.tar.gz forums-ae38cfaa701458aaebbc0991512d8788db07f9cb.tar.bz2 forums-ae38cfaa701458aaebbc0991512d8788db07f9cb.tar.xz forums-ae38cfaa701458aaebbc0991512d8788db07f9cb.zip | |
[ticket/11201] Move type specific error messages to type class
PHPBB3-11201
| -rw-r--r-- | phpBB/includes/acp/acp_profile.php | 10 | ||||
| -rw-r--r-- | phpBB/phpbb/profilefields/type/type_base.php | 8 | ||||
| -rw-r--r-- | phpBB/phpbb/profilefields/type/type_bool.php | 13 | ||||
| -rw-r--r-- | phpBB/phpbb/profilefields/type/type_dropdown.php | 13 | ||||
| -rw-r--r-- | phpBB/phpbb/profilefields/type/type_interface.php | 9 | 
5 files changed, 44 insertions, 9 deletions
| diff --git a/phpBB/includes/acp/acp_profile.php b/phpBB/includes/acp/acp_profile.php index e682996ba8..39d1c70990 100644 --- a/phpBB/includes/acp/acp_profile.php +++ b/phpBB/includes/acp/acp_profile.php @@ -623,15 +623,7 @@ class acp_profile  						$error[] = $user->lang['EMPTY_USER_FIELD_NAME'];  					} -					if ($field_type == FIELD_DROPDOWN && !sizeof($cp->vars['lang_options'])) -					{ -						$error[] = $user->lang['NO_FIELD_ENTRIES']; -					} - -					if ($field_type == FIELD_BOOL && (empty($cp->vars['lang_options'][0]) || empty($cp->vars['lang_options'][1]))) -					{ -						$error[] = $user->lang['NO_FIELD_ENTRIES']; -					} +					$error = $profile_field->validate_options_on_submit($error, $cp->vars);  					// Check for already existing field ident  					if ($action != 'edit') diff --git a/phpBB/phpbb/profilefields/type/type_base.php b/phpBB/phpbb/profilefields/type/type_base.php index 00e8d74327..976411baee 100644 --- a/phpBB/phpbb/profilefields/type/type_base.php +++ b/phpBB/phpbb/profilefields/type/type_base.php @@ -49,4 +49,12 @@ abstract class type_base implements type_interface  	{  		return $this->request->variable('lang_options', '', true);  	} + +	/** +	* {@inheritDoc} +	*/ +	public function validate_options_on_submit($error, $field_data) +	{ +		return $error; +	}  } diff --git a/phpBB/phpbb/profilefields/type/type_bool.php b/phpBB/phpbb/profilefields/type/type_bool.php index 4cfd147ea2..24319c2bfe 100644 --- a/phpBB/phpbb/profilefields/type/type_bool.php +++ b/phpBB/phpbb/profilefields/type/type_bool.php @@ -239,4 +239,17 @@ class type_bool extends type_base  		return $this->request->variable('lang_options', array(''), true);  	} + +	/** +	* {@inheritDoc} +	*/ +	public function validate_options_on_submit($error, $field_data) +	{ +		if (empty($field_data['lang_options'][0]) || empty($field_data['lang_options'][1])) +		{ +			$error[] = $this->user->lang['NO_FIELD_ENTRIES']; +		} + +		return $error; +	}  } diff --git a/phpBB/phpbb/profilefields/type/type_dropdown.php b/phpBB/phpbb/profilefields/type/type_dropdown.php index 2119443a7a..a113b1d5ef 100644 --- a/phpBB/phpbb/profilefields/type/type_dropdown.php +++ b/phpBB/phpbb/profilefields/type/type_dropdown.php @@ -211,4 +211,17 @@ class type_dropdown extends type_base  		return $this->request->variable('lang_options', '', true);  	} + +	/** +	* {@inheritDoc} +	*/ +	public function validate_options_on_submit($error, $field_data) +	{ +		if (!sizeof($field_data['lang_options'])) +		{ +			$error[] = $this->user->lang['NO_FIELD_ENTRIES']; +		} + +		return $error; +	}  } diff --git a/phpBB/phpbb/profilefields/type/type_interface.php b/phpBB/phpbb/profilefields/type/type_interface.php index f8d5c46239..ad67536543 100644 --- a/phpBB/phpbb/profilefields/type/type_interface.php +++ b/phpBB/phpbb/profilefields/type/type_interface.php @@ -122,4 +122,13 @@ interface type_interface  	* @return mixed		Returns the provided language options  	*/  	public function prepare_options_form(&$exclude_options, &$visibility_options); + +	/** +	* Allows exclusion of options in single steps of the creation process +	* +	* @param array	$error					Array with error messages +	* @param array	$field_data		Array with data for this field +	* @return array		Array with error messages +	*/ +	public function validate_options_on_submit($error, $field_data);  } | 
