コード例 #1
0
 /**
  * @return bool
  */
 public function execute()
 {
     //loop all messages by user
     foreach (class_module_user_user::getObjectList() as $objOneUser) {
         //skip inactive users
         if ($objOneUser->getIntActive() == 0) {
             continue;
         }
         if (class_module_messaging_message::getNumberOfMessagesForUser($objOneUser->getSystemid(), true) == 0) {
             continue;
         }
         $arrUnreadMessages = array();
         foreach (class_module_messaging_message::getObjectList($objOneUser->getSystemid()) as $objOneMessage) {
             if ($objOneMessage->getBitRead() == 0 && !$objOneMessage->getObjMessageProvider() instanceof class_messageprovider_summary) {
                 $arrUnreadMessages[] = $objOneMessage;
             }
             if ($objOneMessage->getBitRead() == 0 && $objOneMessage->getObjMessageProvider() instanceof class_messageprovider_summary) {
                 $objOneMessage->deleteObjectFromDatabase();
             }
         }
         if (count($arrUnreadMessages) > 0) {
             $this->createMessageForUser($objOneUser, $arrUnreadMessages);
         }
     }
     //trigger again
     return false;
 }
コード例 #2
0
 public function testUnreadCount()
 {
     $strText = generateSystemid() . " autotest";
     $objMessageHandler = new class_module_messaging_messagehandler();
     $objMessageHandler->sendMessage($strText, new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_")), new class_messageprovider_exceptions());
     $bitFound = false;
     $objGroup = new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_"));
     $arrUsers = $objGroup->getObjSourceGroup()->getUserIdsForGroup();
     $arrMessages = class_module_messaging_message::getObjectList($arrUsers[0]);
     $intUnread = class_module_messaging_message::getNumberOfMessagesForUser($arrUsers[0], true);
     $this->assertTrue($intUnread > 0);
     $this->flushDBCache();
     foreach ($arrMessages as $objOneMessage) {
         if ($objOneMessage->getStrBody() == $strText && $objOneMessage->getStrMessageProvider() == "class_messageprovider_exceptions") {
             $bitFound = true;
             $objOneMessage->setBitRead(true);
             $objOneMessage->updateObjectToDb();
             $this->assertEquals($intUnread - 1, class_module_messaging_message::getNumberOfMessagesForUser($arrUsers[0], true));
             $objOneMessage->deleteObjectFromDatabase();
         }
     }
     $this->assertTrue($bitFound);
     $this->flushDBCache();
 }
コード例 #3
0
 /**
  * Creates a list of the recent messages for the current user.
  * The structure is returned in an json-format.
  *
  * @permissions view
  * @xml
  * @autoTestable
  *
  * @return string
  */
 protected function actionGetRecentMessages()
 {
     class_carrier::getInstance()->getObjSession()->setBitBlockDbUpdate(true);
     class_session::getInstance()->sessionClose();
     class_module_system_changelog::$bitChangelogEnabled = false;
     class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON);
     $intMaxAmount = $this->getParam("limit") != "" ? $this->getParam("limit") : 5;
     $arrMessages = class_module_messaging_message::getObjectList($this->objSession->getUserID(), 0, $intMaxAmount - 1);
     $arrReturn = array();
     foreach ($arrMessages as $objOneMessage) {
         $arrReturn[] = array("systemid" => $objOneMessage->getSystemid(), "title" => $objOneMessage->getStrDisplayName(), "unread" => $objOneMessage->getBitRead(), "details" => class_link::getLinkAdminHref($objOneMessage->getArrModule("modul"), "edit", "&systemid=" . $objOneMessage->getSystemid(), false));
     }
     $arrReturn = array("messages" => $arrReturn, "messageCount" => class_module_messaging_message::getNumberOfMessagesForUser($this->objSession->getUserID(), true));
     return json_encode($arrReturn);
 }