public static function validateSendMail(erLhAbstractModelEmailTemplate &$sendMail, &$chat, $params = array()) { $Errors = array(); $validationFields = array(); $validationFields['Message'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'); $validationFields['Subject'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'); $validationFields['FromName'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'); $validationFields['FromEmail'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'validate_email'); $validationFields['ReplyEmail'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'validate_email'); $validationFields['RecipientEmail'] = new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'validate_email'); $form = new ezcInputForm(INPUT_POST, $validationFields); $Errors = array(); if (isset($params['archive_mode']) && $params['archive_mode'] == true) { $messages = array_reverse(erLhcoreClassChat::getList(array('limit' => 100, 'sort' => 'id DESC', 'filter' => array('chat_id' => $chat->id)), 'erLhcoreClassModelChatArchiveMsg', erLhcoreClassModelChatArchiveRange::$archiveMsgTable)); } else { $messages = array_reverse(erLhcoreClassModelmsg::getList(array('limit' => 100, 'sort' => 'id DESC', 'filter' => array('chat_id' => $chat->id)))); } // Fetch chat messages $tpl = new erLhcoreClassTemplate('lhchat/messagelist/plain.tpl.php'); $tpl->set('chat', $chat); $tpl->set('messages', $messages); $sendMail->content = str_replace(array('{user_chat_nick}', '{messages_content}'), array($chat->nick, $tpl->fetch()), $sendMail->content); if ($form->hasValidData('Message')) { $sendMail->content = str_replace('{additional_message}', $form->Message, $sendMail->content); } $sendMail->content = erLhcoreClassBBCode::parseForMail($sendMail->content); if ($form->hasValidData('FromEmail')) { $sendMail->from_email = $form->FromEmail; } if ($form->hasValidData('ReplyEmail')) { $sendMail->reply_to = $form->ReplyEmail; } if ($form->hasValidData('FromName')) { $sendMail->from_name = $form->FromName; } if ($form->hasValidData('Subject')) { $sendMail->subject = $form->Subject; } if ($form->hasValidData('RecipientEmail')) { $sendMail->recipient = $form->RecipientEmail; } else { $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('chat/sendmail', 'Please enter recipient e-mail!'); } if (empty($sendMail->from_email)) { $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('chat/sendmail', 'From e-mail is missing!'); } if (empty($sendMail->reply_to)) { $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('chat/sendmail', 'Reply e-mail is missing!'); } if (empty($sendMail->subject)) { $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('chat/sendmail', 'Subject is missing!'); } return $Errors; }
public function passiveMessage($params) { if ($this->settings['enabled'] == true) { $onlineOptions = erLhcoreClassModelChatConfig::fetch('xmppservice_options')->data; if (isset($onlineOptions['xmpp_enabled']) && $onlineOptions['xmpp_enabled'] == true) { // Send message if XMPP account was active in the past 300 seconds $xmppOperator = erLhcoreClassModelXMPPAccount::findOne(array('filtergt' => array('lactivity' => time() - 300), 'filter' => array('user_id' => $params['chat']->user_id, 'type' => erLhcoreClassModelXMPPAccount::USER_TYPE_OPERATOR))); if ($xmppOperator !== false) { $params['xmpp_account_operator'] = $xmppOperator; $params['msg'] = erLhcoreClassBBCode::parseForMail($params['msg']->msg); $this->sendMessageToOperatorAsUserByChat($params); } } } }