public function executeFormComment(sfWebRequest $request)
 {
     $this->form = new CommentForm();
     $this->form->setDefault('record_model', $this->object->getTable()->getComponentName());
     $this->form->setDefault('record_id', $this->object->get('id'));
     if ($request->isMethod('post')) {
         //preparing temporary array with sent values
         $formValues = $request->getParameter($this->form->getName());
         if (vjComment::isCaptchaEnabled() && !vjComment::isUserBoundAndAuthenticated()) {
             $captcha = array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field'));
             //Adding captcha
             $formValues = array_merge($formValues, array('captcha' => $captcha));
         }
         if (vjComment::isUserBoundAndAuthenticated()) {
             //adding user id
             $formValues = array_merge($formValues, array('user_id' => $this->getUser()->getGuardUser()->getId()));
         }
         $this->form->bind($formValues);
         if ($this->form->isValid()) {
             $this->form->save();
             $url = $request->getUri() . "#" . $this->getUser()->getAttribute("nextComment");
             $this->getUser()->offsetUnset("nextComment");
             sfContext::getInstance()->getController()->redirect($url, 0, 302);
         }
     }
 }
예제 #2
0
 public function setup()
 {
     parent::setup();
     unset($this['id'], $this['is_active'], $this['is_delete'], $this['created_at'], $this['updated_at'], $this['edition_reason']);
     $this->widgetSchema['reply_author'] = new sfWidgetFormInputText(array(), array('readonly' => "readonly"));
     $this->widgetSchema->setLabel('reply_author', __('Reply to', array(), 'vjComment'));
     $this->widgetSchema->setHelp('author_email', __('Your email will never be published', array(), 'vjComment'));
     $this->widgetSchema['user_id'] = new sfWidgetFormInputHidden();
     if (vjComment::isUserBoundAndAuthenticated()) {
         unset($this['author_email'], $this['author_website'], $this['author_name']);
     } else {
         unset($this['user_id']);
     }
     if (vjComment::isCaptchaEnabled() && !vjComment::isUserBoundAndAuthenticated()) {
         $this->addCaptcha();
     }
 }
예제 #3
0
  public function setup()
  {
    parent::setup();
    
    $user = $this->getOption('user');
    $fields = array(
      'record_model',
      'record_id',
      'author_name',
      'author_email',
      'author_website',
      'body',
      'reply'
    );
    if(vjComment::isGuardBindEnabled())
    {
      $fields[] = 'user_id';
    }
    $this->useFields($fields);
    
    $this->widgetSchema['reply_author'] = new sfWidgetFormInputText(array(), array('readonly' => "readonly"));
    $this->widgetSchema->setLabel('reply_author', __('Reply to', array(), 'vjComment'));
    $this->widgetSchema->setHelp('author_email', __('Your email will never be published', array(), 'vjComment'));
    $this->widgetSchema['user_id'] = new sfWidgetFormInputHidden();

    if( vjComment::isUserBoundAndAuthenticated($user) )
    {
        unset( $this['author_email'], $this['author_website'], $this['author_name'] );
    }
    else
    {
        unset( $this['user_id'] );
    }
    if (vjComment::isCaptchaEnabled() && !vjComment::isUserBoundAndAuthenticated($user) )
    {
      $this->addCaptcha();
    }
    $this->widgetSchema->setNameFormat($this->getOption('name').'[%s]');
  }