/**
  * @return form_FieldService
  */
 public static function getInstance()
 {
     if (self::$instance === null) {
         self::$instance = self::getServiceClassInstance(get_class());
     }
     return self::$instance;
 }
 /**
  * @param form_persistentdocument_date $field
  * @param DOMElement $fieldElm
  * @param mixed $rawValue
  * @return string
  */
 public function buildXmlElementResponse($field, $fieldElm, $rawValue)
 {
     $txtValue = parent::buildXmlElementResponse($field, $fieldElm, $rawValue);
     if (!empty($txtValue)) {
         $txtValue = date_Calendar::getInstanceFromFormat($txtValue, f_Locale::translate('&framework.date.date.default-date-format;'))->toString();
     }
     return $txtValue;
 }
 /**
  * @param f_peristentdocument_PersistentDocument $conditionOn
  * @return integer[]
  */
 private function getExcludeIds($conditionOn)
 {
     $excludeIds = array();
     if ($conditionOn instanceof form_persistentdocument_field) {
         $excludeIds = array($conditionOn->getId());
     } else {
         if ($conditionOn instanceof form_persistentdocument_group) {
             $query = form_FieldService::getInstance()->createQuery();
             $query->add(Restrictions::descendentOf($conditionOn->getId()));
             $query->setProjection(Projections::property('id'));
             $excludeIds = $query->findColumn('id');
         }
     }
     return $excludeIds;
 }
 /**
  * @param form_persistentdocument_hidden $field
  * @param DOMElement $fieldElm
  * @param mixed $rawValue
  * @return string
  */
 public function buildXmlElementResponse($field, $fieldElm, $rawValue)
 {
     switch ($field->getIsRecommand()) {
         case 'site':
             return website_WebsiteModuleService::getInstance()->getCurrentWebsite()->getUrl();
             break;
         case 'page':
             try {
                 return LinkHelper::getUrl(DocumentHelper::getDocumentInstance($rawValue));
             } catch (Exception $e) {
                 Framework::exception($e);
             }
             return website_WebsiteModuleService::getInstance()->getCurrentWebsite()->getUrl();
     }
     return parent::buildXmlElementResponse($field, $fieldElm, $rawValue);
 }
 /**
  * @see form_FieldService::buildXmlElementResponse()
  *
  * @param form_persistentdocument_List $field
  * @param DOMElement $fieldElm
  * @param mixed $rawValue
  * @return string
  */
 public function buildXmlElementResponse($field, $fieldElm, $rawValue)
 {
     $listObject = $field->getDataSource();
     if (!$field->getMultiple() || !is_array($rawValue)) {
         $realValue = f_util_Convert::toString($rawValue);
         if (!empty($realValue)) {
             $item = $listObject->getItemByValue($realValue);
             if ($item != null) {
                 $mailValue = $item->getLabel();
             } else {
                 $mailValue = $realValue;
             }
             if (!empty($mailValue)) {
                 $fieldElm->setAttribute('mailValue', $mailValue);
             }
         }
         return $realValue;
     } else {
         if (is_array($rawValue)) {
             $realValue = array();
             $mailValue = array();
             foreach ($rawValue as $val) {
                 $txtval = f_util_Convert::toString($val);
                 if (!empty($txtval)) {
                     $realValue[] = $txtval;
                     $item = $listObject->getItemByValue($txtval);
                     if ($item != null) {
                         $mailValue[] = $item->getLabel();
                     } else {
                         $mailValue[] = $txtval;
                     }
                 }
             }
             if (count($realValue) > 0) {
                 $fieldElm->setAttribute('mailValue', implode(" / ", $mailValue));
                 return implode(' / ', $realValue);
             }
             return '';
         }
     }
     return parent::buildXmlElementResponse($fieldElm, $fieldElm, $rawValue);
 }
 /**
  * @param form_persistentdocument_baseform $form
  * @param integer[] $excludeIds
  */
 public function getValidActivationFields($form, $excludeIds = array())
 {
     $query = form_FieldService::getInstance()->createQuery();
     $query->add(Restrictions::descendentOf($form->getId()));
     if (f_util_ArrayUtils::isNotEmpty($excludeIds)) {
         $query->add(Restrictions::notin('id', $excludeIds));
     }
     $validFields = array();
     foreach ($query->find() as $field) {
         if ($field instanceof form_persistentdocument_boolean || $field instanceof form_persistentdocument_list) {
             $validFields[] = $field;
         }
     }
     return $validFields;
 }
 /**
  * @param form_persistentdocument_field $document
  * @deprecated use form_FieldService::fixRequiredConstraint()
  */
 public function fixRequiredConstraint($document)
 {
     form_FieldService::getInstance()->fixRequiredConstraint($document);
 }
 /**
  * @param form_persistentdocument_recipientGroupList $field
  * @param string $value
  * @return string
  */
 private static function fromRecipientGroupListFieldDocument($field, $value)
 {
     form_ListRecipientgrouplistService::getInstance()->setParentForm(form_FieldService::getInstance()->getFormOf($field));
     return self::fromListFieldDocument($field, $value);
 }
 /**
  * @param form_persistentdocument_text $field
  * @param DOMElement $fieldElm
  * @param mixed $rawValue
  * @return string
  */
 public function buildXmlElementResponse($field, $fieldElm, $rawValue)
 {
     $txtValue = parent::buildXmlElementResponse($field, $fieldElm, $rawValue);
     if ($field->getMultiline()) {
         $fieldElm->setAttribute('mailValue', nl2br($txtValue));
     }
     return $txtValue;
 }
 /**
  * @return form_persistentdocument_field
  */
 protected function initPersistentDocument()
 {
     return form_FieldService::getInstance()->getNewDocumentInstance();
 }