public static function send(PetitionSigning $signing, $subject_prefix = null)
 {
     if ($signing->getValidationKind() != PetitionSigning::VALIDATION_KIND_EMAIL) {
         return;
     }
     $widget = $signing->getWidget();
     $petition = $widget->getPetition();
     $petition_text = $widget->getPetitionText();
     $subject = $petition_text->getEmailValidationSubject();
     $body = $petition_text->getEmailValidationBody();
     $validation = UtilLink::signValidation($signing->getId(), $signing->getValidationData());
     $url_ref_ = $signing->getField(Petition::FIELD_REF);
     // $this->getValue('ref');
     $url_readmore_ = $petition->getReadMoreUrl();
     $url_ref = UtilPolicat::firstString(array($url_ref_, $url_readmore_));
     $url_readmore = UtilPolicat::firstString(array($url_readmore_, $url_ref_));
     $from = $petition->getFrom();
     $to = $signing->getEmail();
     $additional_subst = array('URL-REFERER' => $url_ref, 'URL-READMORE' => $url_readmore, 'VALIDATION' => $validation, '#REFERER-URL#' => $url_ref, '#READMORE-URL#' => $url_readmore, '#VALIDATION-URL#' => $validation);
     if ($subject_prefix) {
         $i18n = sfContext::getInstance()->getI18N();
         $i18n->setCulture($signing->getWidget()->getPetitionText()->getLanguageId());
         $translated = $i18n->__($subject_prefix);
         $subject = $translated . ' ' . $subject;
     }
     UtilMail::sendWithSubst(null, $from, $to, $subject, $body, $petition_text, $widget, $additional_subst, $signing->getSubst());
 }
 protected function doSave($con = null)
 {
     $wasNew = $this->getObject()->isNew();
     parent::doSave($con);
     if ($wasNew) {
         $widget = $this->getObject();
         $petition = $widget->getPetition();
         $petition_text = $widget->getPetitionText();
         $subject = 'Validate your widget';
         $body = "Validate: VALIDATION\nEdit: EDITCODE";
         $store = StoreTable::getInstance()->findByKeyAndLanguageWithFallback(StoreTable::EMBED_WIDGET_MAIL, $petition_text->getLanguageId());
         if ($store) {
             $subject = $store->getField('subject');
             $body = $store->getField('body');
         }
         $validation = UtilLink::widgetValidation($this->getObject()->getId(), $this->getObject()->getValidationData());
         $edit_code = UtilLink::widgetEdit($this->getObject()->getId(), $this->getObject()->getEditCode());
         $from = $petition->getFrom();
         $to = $this->getObject()->getEmail();
         $additional_subst = array('VALIDATION' => $validation, 'EDITCODE' => $edit_code, '#VALIDATION-URL#' => $validation, '#EDIT-URL#' => $edit_code);
         UtilMail::sendWithSubst(null, $from, $to, $subject, $body, $petition_text, $widget, $additional_subst);
     }
 }