Better structure for parts controller
This commit is contained in:
parent
7f019dd740
commit
20c5c9d147
@ -10,6 +10,33 @@ defined('_JEXEC') or die;
|
|||||||
abstract class UserException extends Exception {}
|
abstract class UserException extends Exception {}
|
||||||
class InvalidUserDataException extends UserException {}
|
class InvalidUserDataException extends UserException {}
|
||||||
|
|
||||||
|
class ClubsHelperControllerUser
|
||||||
|
{
|
||||||
|
|
||||||
|
public function parse($fcnName, $user, $post)
|
||||||
|
{
|
||||||
|
switch($fcnName)
|
||||||
|
{
|
||||||
|
case 'name':
|
||||||
|
return $this->editName($user, $post);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function editName($user, $post)
|
||||||
|
{
|
||||||
|
$name = $post->getString('name');
|
||||||
|
if(strlen($name) < 5)
|
||||||
|
throw new InvalidUserDataException("Der Name muss mindestens 5 Zeichen lang sein.");
|
||||||
|
|
||||||
|
$user->setName($name);
|
||||||
|
$user->save();
|
||||||
|
return 'index.php?option=com_clubs&view=mypage&layout=parts&type=name';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ClubsControllerParts extends BaseController
|
class ClubsControllerParts extends BaseController
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -29,7 +56,6 @@ class ClubsControllerParts extends BaseController
|
|||||||
{
|
{
|
||||||
echo new JsonResponse($e);
|
echo new JsonResponse($e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,22 +64,22 @@ class ClubsControllerParts extends BaseController
|
|||||||
*/
|
*/
|
||||||
private function callMethod($user, $post)
|
private function callMethod($user, $post)
|
||||||
{
|
{
|
||||||
switch($post->getCmd('partname'))
|
$partname = $post->getCmd('partname');
|
||||||
{
|
|
||||||
case 'user.name':
|
|
||||||
return $this->editUserName($user, $post);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function editUserName($user, $post)
|
if(! preg_match('/.*\..*/', $partname))
|
||||||
{
|
throw new Exception();
|
||||||
$name = $post->getString('name');
|
|
||||||
if(strlen($name) < 5)
|
|
||||||
throw new InvalidUserDataException("Der Name muss mindestens 5 Zeichen lang sein.");
|
|
||||||
|
|
||||||
$user->setName($name);
|
list($objname, $fcnName) = explode('.', $partname, 2);
|
||||||
$user->save();
|
|
||||||
return 'index.php?option=com_clubs&view=mypage&layout=parts&type=name';
|
switch($objname)
|
||||||
|
{
|
||||||
|
case 'user':
|
||||||
|
$obj = new ClubsHelperControllerUser();
|
||||||
|
return $obj->parse($fcnName, $user, $post);
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user