Extracted an abstract class to make other objects easier to handle
This commit is contained in:
parent
55b44d9b6f
commit
9dbe6112dd
@ -10,7 +10,42 @@ defined('_JEXEC') or die;
|
|||||||
abstract class UserException extends Exception {}
|
abstract class UserException extends Exception {}
|
||||||
class InvalidUserDataException extends UserException {}
|
class InvalidUserDataException extends UserException {}
|
||||||
|
|
||||||
class ClubsHelperControllerUser
|
abstract class AbstractClubsHelperController
|
||||||
|
{
|
||||||
|
|
||||||
|
private $fcnNames;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->fcnNames = array();
|
||||||
|
$this->registerAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract protected function registerAll();
|
||||||
|
|
||||||
|
protected function registerFcn($fcnName, $methodName)
|
||||||
|
{
|
||||||
|
$this->fcnNames[$fcnName] = $methodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle($fcnName, $data, $post)
|
||||||
|
{
|
||||||
|
if(empty($this->fcnNames[$fcnName]))
|
||||||
|
throw new Exception();
|
||||||
|
|
||||||
|
$method = $this->fcnNames[$fcnName];
|
||||||
|
$this->$method($data, $post);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function checkLen($value, $len, $msg)
|
||||||
|
{
|
||||||
|
if(strlen($value) < 5)
|
||||||
|
throw new InvalidUserDataException($msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ClubsHelperControllerUser extends AbstractClubsHelperController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param string $fcnName
|
* @param string $fcnName
|
||||||
@ -52,13 +87,19 @@ class ClubsHelperControllerUser
|
|||||||
return "index.php?option=com_clubs&view=part&type=user.$fcnName";
|
return "index.php?option=com_clubs&view=part&type=user.$fcnName";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function checkLen($value, $len, $msg)
|
|
||||||
|
protected function registerAll()
|
||||||
{
|
{
|
||||||
if(strlen($value) < 5)
|
$this->registerFcn('name', 'editName');
|
||||||
throw new InvalidUserDataException($msg);
|
$this->registerFcn('username', 'editUsername');
|
||||||
|
$this->registerFcn('address', 'editAddress');
|
||||||
|
$this->registerFcn('city', 'editCity');
|
||||||
|
$this->registerFcn('mail', 'editMail');
|
||||||
|
$this->registerFcn('phone', 'editPhone');
|
||||||
|
$this->registerFcn('mobile', 'editMobile');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editName($user, $post)
|
protected function editName($user, $post)
|
||||||
{
|
{
|
||||||
$name = trim($post->getString('value'));
|
$name = trim($post->getString('value'));
|
||||||
$this->checkLen($name, 5, "Der Name muss mindestens 5 Zeichen lang sein.");
|
$this->checkLen($name, 5, "Der Name muss mindestens 5 Zeichen lang sein.");
|
||||||
@ -67,11 +108,12 @@ class ClubsHelperControllerUser
|
|||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editUsername($user, $post)
|
protected function editUsername($user, $post)
|
||||||
{
|
{
|
||||||
$username = $post->getString('value');
|
$username = $post->getString('value');
|
||||||
$validator = new ClubsHelperValidator();
|
$validator = new ClubsHelperValidator();
|
||||||
$res = $validator->validateUsername($user, $username);
|
$res = $validator->validateUsername($user, $username);
|
||||||
|
$this->checkLen($username, 5, 'Der Benutzername muss mindestens 5 Zeichen lang sein.');
|
||||||
|
|
||||||
switch($res)
|
switch($res)
|
||||||
{
|
{
|
||||||
@ -91,7 +133,7 @@ class ClubsHelperControllerUser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editAddress($user, $post)
|
protected function editAddress($user, $post)
|
||||||
{
|
{
|
||||||
$address = trim($post->getString('value'));
|
$address = trim($post->getString('value'));
|
||||||
$this->checkLen($address, 10, 'Die Adresse muss mindestens 10 Zeichen lang sein.');
|
$this->checkLen($address, 10, 'Die Adresse muss mindestens 10 Zeichen lang sein.');
|
||||||
@ -105,7 +147,7 @@ class ClubsHelperControllerUser
|
|||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editCity($user, $post)
|
protected function editCity($user, $post)
|
||||||
{
|
{
|
||||||
$city = trim($post->getString('value'));
|
$city = trim($post->getString('value'));
|
||||||
$this->checkLen($city, 4, 'Die Stadt muss aus mindestens 4 Zeichen bestehen.');
|
$this->checkLen($city, 4, 'Die Stadt muss aus mindestens 4 Zeichen bestehen.');
|
||||||
@ -114,7 +156,7 @@ class ClubsHelperControllerUser
|
|||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editMail($user, $post)
|
protected function editMail($user, $post)
|
||||||
{
|
{
|
||||||
$mail = trim($post->getString('value'));
|
$mail = trim($post->getString('value'));
|
||||||
$this->checkLen($mail, 8, "Die Mail-Adresse muss aus mindestens 8 Zeichen bestehen.");
|
$this->checkLen($mail, 8, "Die Mail-Adresse muss aus mindestens 8 Zeichen bestehen.");
|
||||||
@ -125,7 +167,7 @@ class ClubsHelperControllerUser
|
|||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editPhone($user, $post)
|
protected function editPhone($user, $post)
|
||||||
{
|
{
|
||||||
$phone = trim($post->getString('value'));
|
$phone = trim($post->getString('value'));
|
||||||
|
|
||||||
@ -149,7 +191,7 @@ class ClubsHelperControllerUser
|
|||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function editMobile($user, $post)
|
protected function editMobile($user, $post)
|
||||||
{
|
{
|
||||||
$mobile = trim($post->getString('value'));
|
$mobile = trim($post->getString('value'));
|
||||||
|
|
||||||
@ -172,6 +214,7 @@ class ClubsHelperControllerUser
|
|||||||
$user->setMobile($mobilePlain);
|
$user->setMobile($mobilePlain);
|
||||||
$user->save();
|
$user->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ClubsControllerParts extends BaseController
|
class ClubsControllerParts extends BaseController
|
||||||
@ -212,11 +255,13 @@ class ClubsControllerParts extends BaseController
|
|||||||
{
|
{
|
||||||
case 'user':
|
case 'user':
|
||||||
$obj = new ClubsHelperControllerUser();
|
$obj = new ClubsHelperControllerUser();
|
||||||
return $obj->parse($fcnName, $user, $post);
|
$obj->handle($fcnName, $user, $post);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
|
return "index.php?option=com_clubs&view=part&type=$partname";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user