/** * @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 string $receiverIdStr * @param mail_MessageRecipients $recipients */ private function handleReceveirIds($receiverIdStr, &$recipients) { $emailAddressArray = array(); // Let's check if $receiverIdStr contains a list of email addresses... $errors = new validation_Errors(); $validate = new validation_EmailsValidator(); $validate->validate(new validation_Property(null, $receiverIdStr), $errors); // Errors have been found: $receiverIdStr does not seem to contain // email addresses, maybe it contains contacts ID. if (!$errors->isEmpty()) { // try to get the component and get its emails $receiverIdArray = explode(',', $receiverIdStr); foreach ($receiverIdArray as $receiverId) { $receiverId = f_util_Convert::fixDataType($receiverId); if (is_integer($receiverId)) { try { // Merge the previously found email addresses with // the one of the contact with ID $receiverId. $emailAddressArray = array_merge($emailAddressArray, DocumentHelper::getDocumentInstance($receiverId)->getEmailAddresses()); } catch (Exception $e) { Framework::exception($e); } } } } else { $emailAddressArray = explode(',', $receiverIdStr); $emailAddressArray = array_map("trim", $emailAddressArray); } $recipients->setTo($emailAddressArray); }
/** * @param form_persistentdocument_field $field * @param DOMElement $fieldElm * @param mixed $rawValue * @return string */ public function buildXmlElementResponse($field, $fieldElm, $rawValue) { if (empty($rawValue)) { return ''; } $retValue = ''; if (is_array($rawValue)) { foreach ($rawValue as $v) { $retValue .= f_util_Convert::toString($v) . ' '; } $retValue = trim($retValue); } else { $retValue = f_util_Convert::toString($rawValue); } return $retValue; }