Вы можете удалить поля, установив в методе configure () формы:
unset($form['ip'])
И добавить поле подтверждения пароля с помощью:
$this->widgetSchema['password'] = new sfWidgetFormInputPassword();
$this->widgetSchema['password2'] = new sfWidgetFormInputPassword();
// Don't print passwords when complaining about inadequate length
$this->setValidator( 'password', new sfValidatorString(array(
'required' => true,
'trim' => true,
'min_length' => 6,
'max_length' => 128
));
$this->validatorSchema['password2'] = clone $this->validatorSchema['password'];
$this->mergePostValidator(new sfValidatorSchemaCompare(
'password', sfValidatorSchemaCompare::EQUAL, 'password2',
array())
));
Вы можете добавить IPв вашем actions.class.php:
if ($request->isMethod('post')) {
$this->form->bind($request->getParameter('yourformprefix'));
if ($this->form->isValid()) {
$user = $this->form->getObject();
$user->setIp($_SERVER['REMOTE_ADDR']);
$user->save();
}
}
Небольшое примечание: я настоятельно рекомендую использовать существующие плагины (doAuth / sfDoctrineGuardPlugin), если вы планируете выполнять такую работу.