/** * send message * * Available options: * * * type : The message type (default: 'message') * * identifier: The identifier of foreign table (default: 0) * * is_read : A default value of is_read flag (default: false) * * fromMember: The message sender (default: my member object) * * @param mixed $toMembers a Member instance or array of Member instance * @param string $subject a subject of the message * @param string $body a body of the message * @param array $options options * @return SendMessageData */ public static function sendMessage($toMembers, $subject, $body, $options = array()) { $options = array_merge(array('type' => 'message', 'identifier' => 0, 'is_read' => false), $options); if ($toMembers instanceof Member) { $toMembers = array($toMembers); } elseif (!is_array($toMembers)) { throw new InvalidArgumentException(); } $sendMessageData = new SendMessageData(); if (!isset($options['fromMember'])) { $options['fromMember'] = sfContext::getInstance()->getUser()->getMember(); } $sendMessageData->setMember($options['fromMember']); $sendMessageData->setSubject($subject); $sendMessageData->setBody($body); $sendMessageData->setForeignId($options['identifier']); $sendMessageData->setMessageType(Doctrine::getTable('MessageType')->getMessageTypeIdByName($options['type'])); $sendMessageData->setIsSend(1); foreach ($toMembers as $member) { $send = new MessageSendList(); $send->setSendMessageData($sendMessageData); $send->setMember($member); $send->setIsRead($options['is_read']); $send->save(); } return $sendMessageData; }