Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
fiktivkod/application/modules/default/controllers/ProfileController.php
2010-10-03 01:38:49 +02:00

134 lines
No EOL
3.5 KiB
PHP

<?php
class ProfileController extends Fiktiv_Controller_Action
{
public function preDispatch() {
if (!Zend_Auth::getInstance()->hasIdentity())
$this->_redirect('/');
}
public function indexAction()
{
$form = $this->view->form = new Zend_Form();
$form->addElement('text', 'email', array(
'label' => 'u:email',
'validators' => array(new Zend_Validate_EmailAddress())
));
$form->addElement('text', 'firstName', array(
'label' => 'u:firstname',
'validators' => array(new Zend_Validate_Alpha())
));
$form->addElement('text', 'lastName', array(
'label' => 'u:lastname',
'validators' => array(new Zend_Validate_Alpha())
));
$options = array(
User::AVATAR_NONE => 'Ingen avatar',
User::AVATAR_FIKTIV => 'Egen avatar',
User::AVATAR_GRVTAR => 'Gravatar'
);
$form->addElement('select', 'avatar', array(
'label' => 'u:avatar type',
'validators' => array(new Zend_Validate_InArray($options)),
'multiOptions' => $options
));
$form->addElement('file', 'avatarImage', array(
'label' => 'Upload avatar'
));
$form->addElement('password', 'password', array(
'label' => 'u:password',
'validators' => array(new Zend_Validate_Alnum())
));
$form->addElement('password', 'passwordConfirm', array(
'label' => 'u:confirm password',
'validators' => array(new Zend_Validate_Alnum())
));
$form->addElement('Submit', 'save', array(
'label' => 'u:save'
));
$form->addDisplayGroup(
array(
'email',
'firstName',
'lastName'
),
'partOne',
array(
'legend' => 'u:user information'
)
);
$form->addDisplayGroup(
array(
'avatar',
'avatarImage',
),
'partTwo',
array(
'legend' => 'u:avatar'
)
);
$form->addDisplayGroup(
array(
'password',
'passwordConfirm'
),
'partThree',
array(
'legend' => 'u:change password'
)
);
$form->addDisplayGroup(
array(
'save'
),
'partThree'
);
$user = Zend_Auth::getInstance()->getIdentity();
if ($this->_request->isPost()) {
$data = $this->_request->getPost();
if ($data['password'] !== $data['passwordConfirm'] || empty($data['password'])) {
if (!empty($data['password']))
$this->view->messages = 'passwords dont match';
} else {
if ($user->setPassword($data['password']))
$this->view->messages = 'Lösenordet är ändrat!';
unset($data['password']);
}
unset($data['passwordConfirm']);
unset($data['save']);
$user->setAttribs($data);
$user->save();
}
$form->populate($user->toArray());
}
}