/** * Новое сообщение в заказе ТУ * * @global type $orderModel * @param type $order_id * @param type $message * @param type $sess * @return \xajaxResponse */ function tservicesOrdersNewMessage($order_id, $message, $sess) { global $orderModel; $uid = get_uid(false); $objResponse =& new xajaxResponse(); $orderModel->attributes(array('is_adm' => hasPermissions('tservices'))); $orderData = $orderModel->getCard($order_id, $uid); //Если не существует или статус не подходящий if (!$orderData) { return $objResponse; } $author_id = $uid; $reciever_id = is_emp() ? $orderData['frl_id'] : $orderData['emp_id']; //@todo: Зачем делаем reformat? это только функция ворматирования! //@todo: где валидация на кол-во симолов? //@todo: "reformat(htmlspecialchars(strip_tags(" это для кучи? //если есть теги то нужно показвать их а не вырезать $text = reformat(htmlspecialchars(strip_tags($message)), 30); $modelMsg = TServiceMsgModel::model(); $mes_id = $modelMsg->add($order_id, $uid, $reciever_id, $text); if (!$mes_id) { return $objResponse; } TServiceOrderModel::touchOrder($order_id, is_emp()); $modelMsg->addAttached($sess, $mes_id); $message = $modelMsg->getCard($mes_id); if (!$message) { return $objResponse; } $attachedfiles = new attachedfiles(); $sess = $attachedfiles->getSession(); $objResponse->script("TServices_Order_Messages.updateAttachSession('{$sess}');"); $sHtml = Template::render(ABS_PATH . '/tu/tpl.order-msg.php', array('messages' => array($message), 'order' => $orderData)); $mail = new pmail(); if ($uid != $orderData['frl_id']) { $mail->NewTserviceMessage($uid, $orderData['frl_id'], $orderData, stripslashes($text)); } if ($uid != $orderData['emp_id']) { $mail->NewTserviceMessage($uid, $orderData['emp_id'], $orderData, stripslashes($text)); } $objResponse->script("\$('messages').getElements('div.b-layout').removeClass('b-layout_margbot_10')" . ".removeClass('b-fon')" . ".removeClass('b-fon_bg_e4faeb')" . ".removeClass('b-fon_pad_10')" . ".addClass('b-layout_margbot_20');"); $objResponse->prepend('messages', 'innerHTML', $sHtml); return $objResponse; }