public function configure() { unset($this['id'], $this['vanity']); $this->setWidgets(array('op' => new sfWidgetFormInputHidden(), 'titulo' => new sfWidgetFormTextArea(array()), 'descripcion' => new sfWidgetFormTextArea(array(), array('rows' => 20, 'cols' => 30)), 'imagen' => new sfWidgetFormInputFileEditable(array('label' => sfContext::getInstance()->getI18N()->__('Imagen', array(), 'notices'), 'file_src' => $this->getObject() ? '' . S3Voota::getImagesUrl() . '/usuarios/cc_s_' . $this->getObject()->getImagen() : '', 'is_image' => false, 'edit_mode' => !$this->isNew(), 'template' => '<div>' . ($this->getObject()->getImagen() ? '<p><img src="%file%" alt="' . $this->getObject()->getTitulo() . '" /> %delete% <label for="profile_imagen_delete">' . sfContext::getInstance()->getI18N()->__('Eliminar imagen actual', array(), 'notices') . '</label></p>' : '') . '%input% <span class="hints">' . sfContext::getInstance()->getI18N()->__('(opcional)') . '</span></div>')), 'doc' => new sfWidgetFormInputFileEditable(array('label' => sfContext::getInstance()->getI18N()->__('Imagen', array(), 'notices'), 'file_src' => $this->getObject() ? '' . S3Voota::getImagesUrl() . '/usuarios/cc_s_' . $this->getObject()->getDoc() : '', 'is_image' => false, 'edit_mode' => !$this->isNew(), 'template' => '<div>' . ($this->getObject()->getImagen() ? '<p>' . $this->getObject()->getTitulo() . ' %delete% <label for="profile_imagen_delete">' . sfContext::getInstance()->getI18N()->__('Eliminar documento actual', array(), 'notices') . '</label></p>' : '') . '%input% <span class="hints">' . sfContext::getInstance()->getI18N()->__('(opcional)') . '</span></div>')))); $this->widgetSchema->setNameFormat('propuesta[%s]'); $this->widgetSchema->setLabels(array('titulo' => sfContext::getInstance()->getI18N()->__('Título', array(), 'notices'), 'descripcion' => sfContext::getInstance()->getI18N()->__('Descripción', array(), 'notices'))); $this->setValidators(array('titulo' => new sfValidatorString(array("min_length" => SfVoUtil::VANITY_MIN_LENGTH, 'required' => true), sfVoForm::getStringMessages()), 'descripcion' => new sfValidatorString(array('required' => true), sfVoForm::getStringMessages()), 'vanity' => new sfValidatorString(array('required' => true)), 'sf_guard_user_id' => new sfValidatorInteger(array('required' => true)), 'imagen' => new sfValidatorFile(array('required' => false, 'max_size' => '512000', 'mime_types' => 'web_images', 'path' => sfConfig::get('sf_upload_dir') . '/propuestas', 'validated_file_class' => 'sfResizedFile'), sfVoForm::getImageMessages("500K")), 'doc' => new sfValidatorFile(array('required' => false, 'max_size' => '2048000', 'path' => sfConfig::get('sf_upload_dir') . '/docs', 'validated_file_class' => 'sfResizedFile'), sfVoForm::getImageMessages("2M")))); $this->validatorSchema->setPostValidator(new sfValidatorAnd(array(new sfValidatorPropelUnique(array('model' => 'Propuesta', 'column' => array('vanity')), sfVoForm::getUniqueMessages()), new sfValidatorPropelUnique(array('model' => 'Propuesta', 'column' => array('titulo')), sfVoForm::getUniqueMessages())))); // Vacíos $idx = 0; while ($idx < 5) { $idx++; // create a new enlace form for a new enlace model object $enlaceForm = new PropuestaEnlaceForm(); // embed the enlace form in the main politico form $this->embedForm("enlace_n{$idx}", $enlaceForm); $this->widgetSchema["enlace_n{$idx}"]['orden'] = new sfWidgetFormInputHidden(); // set a custom label for the embedded form $this->widgetSchema["enlace_n{$idx}"]->setLabel('Nuevo enlace'); } }
public function configure() { $years = range(1920, date('Y')); $this->setWidgets(array('fecha_nacimiento' => new sfWidgetFormDate(array('format' => '%day%/%month%/%year%', 'years' => array_combine($years, $years))), 'vanity' => new sfWidgetFormInputText(array()), 'imagen' => new sfWidgetFormInputFileEditable(array('label' => sfContext::getInstance()->getI18N()->__('Imagen Principal', array(), 'notices'), 'file_src' => $this->getObject()->getProfile()->getImagen() ? '' . S3Voota::getImagesUrl() . '/usuarios/cc_s_' . $this->getObject()->getProfile()->getImagen() : '', 'is_image' => false, 'edit_mode' => !$this->isNew(), 'template' => '<div>' . ($this->getObject()->getProfile()->getImagen() ? '<p><img src="%file%" alt="' . $this->getObject()->getProfile()->getNombre() . ' ' . $this->getObject()->getProfile()->getApellidos() . '" /> %delete% <label for="profile_imagen_delete">' . sfContext::getInstance()->getI18N()->__('Eliminar imagen actual', array(), 'notices') . '</label></p>' : '') . '%input% <span class="hints">' . sfContext::getInstance()->getI18N()->__('(opcional)') . '</span></div>')), 'username' => new sfWidgetFormInputText(array()), 'mails_comentarios' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'mails_noticias' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'mails_contacto' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'mails_seguidor' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'fb_publish_votos' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'fb_publish_votos_otros' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'fb_publish_cambios_perfil' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'tw_publish_votos' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'tw_publish_votos_otros' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'tw_publish_cambios_perfil' => new sfWidgetVoFormInputCheckbox(array('value_attribute_value' => '1')), 'nombre' => new sfWidgetFormInputText(array()), 'apellidos' => new sfWidgetFormInputText(array()), 'anonymous' => new sfWidgetFormInputCheckbox(array(), array()), 'presentacion' => new sfWidgetFormTextarea(array()), 'passwordNew' => new sfWidgetFormInputText(array('type' => 'password')), 'passwordBis' => new sfWidgetFormInputText(array('type' => 'password')), 'passwordOld' => new sfWidgetFormInputText(array('type' => 'password')))); $this->widgetSchema->setNameFormat('profile[%s]'); $this->setValidators(array('fecha_nacimiento' => new sfValidatorDate(array('required' => false), sfVoForm::getDateMessages()), 'vanity' => new sfValidatorString(array("min_length" => SfVoUtil::VANITY_MIN_LENGTH, 'required' => true), sfVoForm::getStringMessages()), 'imagen' => new sfValidatorFile(array('required' => false, 'mime_types' => 'web_images', 'path' => sfConfig::get('sf_upload_dir') . '/usuarios', 'validated_file_class' => 'sfResizedFile'), sfVoForm::getImageMessages()), 'imagen_delete' => new sfValidatorString(array('required' => false)), 'username' => new sfValidatorEmail(array('required' => true), sfVoForm::getEmailMessages()), 'mails_comentarios' => new sfValidatorBoolean(), 'mails_noticias' => new sfValidatorBoolean(), 'mails_contacto' => new sfValidatorBoolean(), 'mails_seguidor' => new sfValidatorBoolean(), 'fb_publish_votos' => new sfValidatorBoolean(), 'fb_publish_votos_otros' => new sfValidatorBoolean(), 'fb_publish_cambios_perfil' => new sfValidatorBoolean(), 'tw_publish_votos' => new sfValidatorBoolean(), 'tw_publish_votos_otros' => new sfValidatorBoolean(), 'tw_publish_cambios_perfil' => new sfValidatorBoolean(), 'nombre' => new sfValidatorString(array('required' => true), sfVoForm::getStringMessages()), 'apellidos' => new sfValidatorString(array('required' => false)), 'anonymous' => new sfValidatorString(array('required' => false), sfVoForm::getStringMessages()), 'presentacion' => new sfValidatorStringCut(array("max_length" => 280, 'required' => false), sfVoForm::getStringMessages()), 'passwordNew' => new sfValidatorPassword(array('required' => false), sfVoForm::getStringMessages()), 'passwordBis' => new sfValidatorPassword(array('required' => false), sfVoForm::getStringMessages()), 'passwordOld' => new sfValidatorPasswordValid(array('required' => false), sfVoForm::getPasswordMessages()))); $uniqValidator = new sfValidatorAnd(array(new sfValidatorPropelUniqueUpdater(array('model' => 'sfGuardUser', 'column' => array('username')), sfVoForm::getUniqueMessages()), new sfValidatorPropelUniqueUpdater(array('model' => 'sfGuardUserProfile', 'column' => array('vanity')), sfVoForm::getUniqueMessages()))); $postValidator = new sfValidatorAnd(array(new sfValidatorAnd(array($uniqValidator, new sfValidatorSchemaCompare('passwordNew', sfValidatorSchemaCompare::EQUAL, 'passwordBis', array(), sfVoForm::getCompareMessages()))), new sfValidatorRequiredIfField('passwordOld', 'passwordNew', array(), sfVoForm::getRequiredMessages()))); $this->validatorSchema->setPostValidator($postValidator); if (!$this->isNew()) { // embed all enlace forms $idx = 0; foreach ($this->getObject()->getEnlaces() as $enlace) { $idx++; // create a new enlace form for the current enlace model object $enlaceForm = new UsuarioEnlaceForm($enlace); // embed the enlace form in the main politico form $this->embedForm("enlace_n{$idx}", $enlaceForm); // set a custom label for the embedded form $this->widgetSchema["enlace_n{$idx}"]->setLabel('Enlace ' . $enlace->getId()); // change the name widget to sfWidgetFormInputDelete $this->widgetSchema["enlace_n{$idx}"]['url'] = new sfWidgetFormInputText(array()); $this->widgetSchema["enlace_n{$idx}"]['orden'] = new sfWidgetFormInputHidden(); } // Vacíos while ($idx < 5) { $idx++; // create a new enlace form for a new enlace model object $enlaceForm = new UsuarioEnlaceForm(); // embed the enlace form in the main politico form $this->embedForm("enlace_n{$idx}", $enlaceForm); $this->widgetSchema["enlace_n{$idx}"]['orden'] = new sfWidgetFormInputHidden(); // set a custom label for the embedded form $this->widgetSchema["enlace_n{$idx}"]->setLabel('Nuevo enlace'); } } }