public function toDoList() { // ToDo-list if (isset($this->user)) { $newmsgs = 0; $msgs = new pm(); $msgs->recipient_id = $this->user->id; $msgs->recipient_delete = 0; $msgs->is_read = 0; if ($msgs->find()) { while ($msgs->fetch()) { ++$newmsgs; } } $wait_res_count = 0; $waiting_res = $this->user->getWaitingRes(); if (is_array($waiting_res)) { foreach ($waiting_res as $res) { ++$wait_res_count; } } $waiting_user = new poolsUser(); $wait_user_count = array(); $waiting_user->wait = 1; $wait_user = false; if ($waiting_user->find()) { while ($waiting_user->fetch()) { $user_admin = new poolsAdmin(); $user_admin->pool_id = $waiting_user->pool_id; $user_admin->user_id = $this->user->id; if ($user_admin->find()) { $wait_user = true; ++$wait_user_count["{$waiting_user->pool_id}"]["count"]; $wait_user_count["{$waiting_user->pool_id}"]["pool"] = new pools(); $wait_user_count["{$waiting_user->pool_id}"]["pool"]->get($waiting_user->pool_id); } } } if ($wait_user || $wait_res_count > 0 || $newmsgs > 0) { $todo = array(); if ($wait_res_count > 0) { $todo['res'] = $wait_res_count; } if ($newmsgs > 0) { $todo['msgs'] = $newmsgs; } if ($wait_user) { $todo['user'] = $wait_user_count; } $this->todo = $todo; } else { $this->todo = false; } } }
private function process() { $mail = services::getService('mail'); $config = services::getService('config'); $lang = services::getService('lang'); $params = services::getService('pageParams'); $categories = services::getService('cats'); // function is set if ($params->getParam('function')) { $this->function = $params->getParam('function'); } else { $this->function = 'inbox'; } // view if ($this->function == 'view') { $view = new pm(); $view->id = $params->getParam('msg_id'); $view->find(true); if ($view->recipient_id == $this->user->id || $view->sender_id == $this->user->id) { if ($view->recipient_id == $this->user->id) { $view->fetchSender(); $delete = clone $view; $delete->delete(); $view->is_read = 1; $view->insert(); } if ($view->sender_id == $this->user->id) { $view->fetchRecipient(); } $this->view = clone $view; } } // inbox if ($this->function == 'inbox') { // delete if ($params->getParam('delete')) { $msg = new pm(); $msg->id = $params->getParam('delete'); $msg->find(); $msg->fetch(); if ($msg->recipient_id == $this->user->id) { $delete = clone $msg; $delete->delete(); $msg->recipient_delete = 1; $msg->insert(); $this->addMsg('msg_msg_deleted'); } } // mark read if ($params->getParam('markread')) { $msg = new pm(); $msg->id = $params->getParam('markread'); $msg->find(); $msg->fetch(); if ($msg->recipient_id == $this->user->id) { $delete = clone $msg; $delete->delete(); $msg->is_read = 1; $msg->insert(); } } // get list $msgs = new pm(); $msgs->recipient_id = $this->user->id; $msgs->recipient_delete = 0; $msgs->orderBy('is_read ASC, date DESC'); $msgs->find(); while ($msgs->fetch()) { $msgs->fetchSender(); $this->inbox[] = clone $msgs; } } // sent if ($this->function == 'sent') { $msgs = new pm(); $msgs->sender_id = $this->user->id; $msgs->orderBy('date DESC'); $msgs->find(); while ($msgs->fetch()) { $msgs->fetchRecipient(); $this->sent[] = clone $msgs; } } if ($this->function == 'new') { if ($params->getParam('recipient')) { $this->msgform = new formPM('msgform', $params->getParam('recipient')); $recipient = new user(); $recipient->id = $params->getParam('recipient'); $recipient->find(true); $this->recipient = clone $recipient; if ($params->getParam('answer')) { $answer = new pm(); $answer->id = $params->getParam('answer'); $answer->find(true); $this->msgform->setDefaults(array('title' => 'Re: ' . $answer->title)); } if ($this->msgform->validate()) { $msg = new pm(); $msg->recipient_id = $this->msgform->exportValue('recipient'); $msg->sender_id = $this->user->id; $msg->title = $this->msgform->exportValue('title'); $msg->body = $this->msgform->exportValue('body'); $msg->is_in_draft = 0; $msg->is_read = 0; $msg->recipient_delete = 0; $msg->sender_delete = 0; $msg->date = time(); $msg->insert(); $addr = new adressbook(); $addr->recipient_id = $this->msgform->exportValue('recipient'); $addr->sender_id = $this->user->id; if (!$addr->find()) { $addr->insert(); } // send email $recipient = new user(); $recipient->id = $this->msgform->exportValue('recipient'); $recipient->find(true); $mail->send('new_pm', $recipient, $this->user); $this->switchPage('pm&function=inbox&msg=msg_msg_sent'); } } else { if ($params->getParam('delete')) { $delete = new adressbook(); $delete->sender_id = $this->user->id; $delete->recipient_id = $params->getParam('delete'); $delete->delete(); $this->addMsg('msg_contact_deleted'); } $addr = new adressbook(); $addr->sender_id = $this->user->id; $addr->find(); while ($addr->fetch()) { $addr->fetchRecipient(); $this->adressbook[] = clone $addr; } } } $this->commonProcess(); }