diff --git a/application/config/navigation.php b/application/config/navigation.php index 827aaa154..d6f4b8452 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -1,6 +1,4 @@ '', 'description' => 'Vilesci', 'expand' => true, - 'sort' => 1, - 'requiredPermissions' => 'basis/vilesci:r' - ), - 'reihungstest' => array( - 'link' => site_url('organisation/Reihungstest'), - 'icon' => 'list-ol', - 'description' => 'Reihungstests', - 'expand' => true, 'sort' => 10, - 'requiredPermissions' => 'infocenter:r' + 'requiredPermissions' => 'basis/vilesci:r' ) ) ), @@ -47,14 +37,20 @@ $config['navigation_header'] = array( 'description' => 'CIS', 'sort' => 10 ), - 'infocenter' => array( - 'link' => site_url('system/infocenter/InfoCenter'), - 'icon' => 'info', - 'description' => 'Infocenter', + 'reihungstest' => array( + 'link' => site_url('organisation/Reihungstest'), + 'description' => 'Reihungstests', 'expand' => true, 'sort' => 20, 'requiredPermissions' => 'infocenter:r' ), + 'infocenter' => array( + 'link' => site_url('system/infocenter/InfoCenter'), + 'description' => 'Infocenter', + 'expand' => true, + 'sort' => 30, + 'requiredPermissions' => 'infocenter:r' + ), ) ), 'Personen' => array( @@ -71,6 +67,23 @@ $config['navigation_header'] = array( 'requiredPermissions' => 'admin:r' ) ) + ), + 'Administration' => array( + 'link' => '#', + 'icon' => 'gear', + 'description' => 'Administration', + 'expand' => false, + 'sort' => 50, + 'requiredPermissions' => 'admin:r', + 'children'=> array( + 'extensions' => array( + 'link' => site_url('system/extensions/Manager'), + 'description' => 'Extensions Manager', + 'expand' => true, + 'sort' => 10, + 'requiredPermissions' => 'admin:r' + ) + ) ) ) ); @@ -86,55 +99,6 @@ $config['navigation_menu']['Vilesci/index'] = array( 'description' => 'Dashboard', 'icon' => 'dashboard', 'sort' => 1 - ), - 'lehre' => array( - 'link' => '#', - 'icon' => 'graduation-cap', - 'description' => 'Lehre', - 'expand' => true, - 'sort' => 2, - 'children'=> array( - 'cis' => array( - 'link' => CIS_ROOT, - 'icon' => '', - 'description' => 'CIS', - 'expand' => true, - 'sort' => 1 - ), - 'infocenter' => array( - 'link' => site_url('system/infocenter/InfoCenter'), - 'icon' => 'info', - 'description' => 'Infocenter', - 'expand' => true, - 'sort' => 2, - 'requiredPermissions' => 'infocenter:r' - ), - ) - ), - 'administration' => array( - 'link' => '#', - 'icon' => 'gear', - 'description' => 'Administration', - 'expand' => false, - 'sort' => 3, - 'children'=> array( - 'vilesci' => array( - 'link' => base_url('vilesci'), - 'icon' => '', - 'description' => 'Vilesci', - 'expand' => true, - 'sort' => 1, - 'requiredPermissions' => 'basis/vilesci:r' - ), - 'extensions' => array( - 'link' => site_url('system/extensions/Manager'), - 'icon' => 'cubes', - 'description' => 'Extensions Manager', - 'expand' => true, - 'sort' => 2, - 'requiredPermissions' => 'admin:r' - ) - ) ) ); diff --git a/application/controllers/ViewMessage.php b/application/controllers/ViewMessage.php index a3fc1acba..35f5a5b4b 100644 --- a/application/controllers/ViewMessage.php +++ b/application/controllers/ViewMessage.php @@ -81,7 +81,7 @@ class ViewMessage extends FHC_Controller 'href' => $href ); - $this->load->view('system/messageHTML.php', $data); + $this->load->view('system/messages/messageHTML.php', $data); } } @@ -94,7 +94,7 @@ class ViewMessage extends FHC_Controller if (isEmptyString($token)) { - show_error('no token supplied'); + show_error('No token supplied'); } $msg = null; @@ -104,7 +104,7 @@ class ViewMessage extends FHC_Controller if (!hasData($msg)) { - show_error('no message found'); + show_error('No message found'); } $msg = $msg->retval[0]; @@ -114,7 +114,7 @@ class ViewMessage extends FHC_Controller if (!hasData($receiverData)) { - show_error('no sender found'); + show_error('No sender found'); } $data = array ( @@ -123,7 +123,7 @@ class ViewMessage extends FHC_Controller 'token' => $token ); - $this->load->view('system/messageWriteReply', $data); + $this->load->view('system/messages/messageWriteReply', $data); } /** @@ -134,8 +134,6 @@ class ViewMessage extends FHC_Controller $this->load->model('system/Message_model', 'MessageModel'); $this->load->library('MessageLib'); - $error = false; - $subject = $this->input->post('subject'); $body = $this->input->post('body'); $persons = $this->input->post('persons'); @@ -145,7 +143,6 @@ class ViewMessage extends FHC_Controller if (!isset($relationmessage_id) || $relationmessage_id == '' || !isset($token) || $token == '') { show_error('Error while sending reply'); - $error = true; } $relationmsg = $this->MessageTokenModel->getMessageByToken($token); @@ -154,7 +151,6 @@ class ViewMessage extends FHC_Controller if (!hasData($relationmsg) || $relationmessage_id !== $relationmsg->retval[0]->message_id) { show_error('Error while sending reply'); - $error = true; } // get sender (receiver of previous msg) @@ -166,20 +162,16 @@ class ViewMessage extends FHC_Controller // send message(s) if (hasData($data)) { + // Loads the person log library + $this->load->library('PersonLogLib'); + for ($i = 0; $i < count($data->retval); $i++) { $dataArray = (array)$data->retval[$i]; $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $body, PRIORITY_NORMAL, $relationmessage_id, null); - if ($msg->error) - { - show_error($msg->retval); - $error = true; - break; - } - // Loads the person log library - $this->load->library('PersonLogLib'); + if ($msg->error) show_error($msg->retval); // Write log entry for sender $logtype_kurzbz = 'Action'; @@ -193,7 +185,8 @@ class ViewMessage extends FHC_Controller $oe_kurzbz = null; $insertvon = 'online'; - $this->personloglib->log( + // Logs person data + $personLog = $this->personloglib->log( $sender_id, $logtype_kurzbz, $logdata, @@ -203,14 +196,11 @@ class ViewMessage extends FHC_Controller $insertvon ); - //unpark bewerber after he sends message - $this->personloglib->unPark($sender_id); + // Unpark bewerber after he sends message + $personLog = $this->personloglib->unPark($sender_id); } } - if (!$error) - { - $this->load->view('system/messageSent'); - } + $this->load->view('system/messages/messageReplySent'); } } diff --git a/application/controllers/system/FASMessages.php b/application/controllers/system/FASMessages.php new file mode 100644 index 000000000..6c01f73a8 --- /dev/null +++ b/application/controllers/system/FASMessages.php @@ -0,0 +1,155 @@ + 'basis/message:rw', + 'writeReply' => 'basis/message:rw' + ) + ); + + // Loads the message library + $this->load->library('MessageLib'); + + // Loads the widget library + $this->load->library('WidgetLib'); + + $this->loadPhrases( + array( + 'global', + 'ui' + ) + ); + } + + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + + /** + * Write a new message + */ + public function write($sender_id) + { + $prestudent_id = $this->input->post('prestudent_id'); // recipients prestudend_id(s) + + if (!is_numeric($sender_id)) + { + show_error('The current logged user person_id is not defined'); + } + + $msgVarsData = $this->_getMsgVarsData($prestudent_id); + + // Retrieves message vars for a person from view view vw_msg_vars_person + $variablesArray = $this->messagelib->getMessageVarsPerson(); + + // Organisation units used to get the templates + $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + + // Admin or commoner? + $isAdmin = $this->messagelib->getIsAdmin($sender_id); + + $data = array( + 'recipients' => $msgVarsData->retval, + 'variables' => $variablesArray, + 'oe_kurzbz' => $oe_kurzbz, // used to get the templates + 'isAdmin' => $isAdmin + ); + + $this->load->view('system/messages/messageWrite', $data); + } + + /** + * Write a reply + */ + public function writeReply($sender_id, $msg_id, $receiver_id) + { + $prestudent_id = $this->input->post('prestudent_id'); // recipients prestudend_id(s) + + if (!is_numeric($sender_id)) + { + show_error('The current logged user person_id is not defined'); + } + + if (!is_numeric($msg_id)) + { + show_error('The msg_id must be a number'); + } + + if (!is_numeric($receiver_id)) + { + show_error('The receiver_id must be a number'); + } + + $msg = $this->_getMessage($msg_id, $receiver_id); + + $msgVarsData = $this->_getMsgVarsData($prestudent_id); + + // Retrieves message vars for a person from view view vw_msg_vars_person + $variablesArray = $this->messagelib->getMessageVarsPerson(); + + // Organisation units used to get the templates + $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + + // Admin or commoner? + $isAdmin = $this->messagelib->getIsAdmin($sender_id); + + $data = array( + 'recipients' => $msgVarsData->retval, + 'message' => $msg, + 'variables' => $variablesArray, + 'oe_kurzbz' => $oe_kurzbz, // used to get the templates + 'isAdmin' => $isAdmin + ); + + $this->load->view('system/messages/messageWrite', $data); + } + + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * + */ + private function _getMessage($msg_id, $receiver_id) + { + $msg = $this->messagelib->getMessage($msg_id, $receiver_id); + if (isError($msg)) + { + show_error($msg->retval); + } + elseif (!hasData($msg)) + { + show_error('The selected message does not exist'); + } + else + { + $msg = $msg->retval[0]; + } + + return $msg; + } + + /** + * Retrieves message vars from view vw_msg_vars + */ + private function _getMsgVarsData($prestudent_id) + { + $this->load->model('system/Message_model', 'MessageModel'); + $msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); + + if (isError($msgVarsData)) + { + show_error($msgVarsData->retval); + } + + return $msgVarsData; + } +} diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index d197f8458..ed6d12044 100644 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -4,8 +4,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); class Messages extends Auth_Controller { - private $uid; // contains the UID of the logged user - /** * */ @@ -28,344 +26,189 @@ class Messages extends Auth_Controller // Loads the widget library $this->load->library('WidgetLib'); - $this->load->model('person/Person_model', 'PersonModel'); + $this->load->model('system/Message_model', 'MessageModel'); $this->loadPhrases( array( 'global', - 'person', - 'lehre', - 'ui', - 'infocenter' + 'ui' ) ); - - $this->_setAuthUID(); // sets property uid } + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + /** - * write + * Write a new message */ - public function write($sender_id = null, $msg_id = null, $receiver_id = null) + public function write() { - if ($sender_id === null) - { - $user_person = $this->PersonModel->getByUid($this->uid); - - if (isError($user_person)) - { - show_error($user_person->retval); - } - $sender_id = $user_person->retval[0]->person_id; - } - - $prestudent_id = $this->input->post('prestudent_id'); $person_id = $this->input->post('person_id'); - $personOnly = false; + $sender_id = null; - if (isset($person_id) && !isset($prestudent_id)) - $personOnly = true; - - $msg = null; - - // Get message data if possible - if (is_numeric($msg_id) && is_numeric($receiver_id)) + $authUser = $this->_getAuthUser(); + if (isError($authUser)) { - $msg = $this->messagelib->getMessage($msg_id, $receiver_id); - if ($msg->error) - { - show_error($msg->retval); - } - else - { - $msg = $msg->retval[0]; - } + show_error($authUser->retval); } - - $variablesArray = array(); - $msgVarsData = array(); - - // Get variables - $this->load->model('system/Message_model', 'MessageModel'); - if ($personOnly === true) - $this->getPersonMsgData($person_id, $variablesArray, $msgVarsData); else - $this->getPrestudentMsgData($prestudent_id, $variablesArray, $msgVarsData); - - // Organisation units used to get the templates - $oe_kurzbz = array(); // A person can have more organisation units - $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); - $benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id); - if (hasData($benutzerResult)) { - foreach ($benutzerResult->retval as $val) - { - $oe_kurzbz[] = $val->oe_kurzbz; - } + $sender_id = getData($authUser)[0]->person_id; } - // Admin or commoner? - $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); - $isAdmin = $this->BenutzerrolleModel->isAdminByPersonId($sender_id); - if (isError($isAdmin)) - { - show_error($isAdmin->retval); - } + $msgVarsData = $this->_getMsgVarsData($person_id); + + // Retrieves message vars for a person from view view vw_msg_vars_person + $variablesArray = $this->messagelib->getMessageVarsPerson(); + + // Organisation units used to get the templates + $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + + // Admin or commoner? + $isAdmin = $this->messagelib->getIsAdmin($sender_id); $data = array ( - 'sender_id' => $sender_id, - 'receivers' => isset($msgVarsData->retval) ? $msgVarsData->retval : $msgVarsData, - 'message' => $msg, + 'recipients' => $msgVarsData->retval, 'variables' => $variablesArray, 'oe_kurzbz' => $oe_kurzbz, // used to get the templates - 'isAdmin' => $isAdmin->retval, - 'personOnly' => $personOnly//indicates if sent only to persons + 'isAdmin' => $isAdmin ); - $v = $this->load->view('system/messageWrite', $data); + $this->load->view('system/messages/messageWrite', $data); } /** - * gets Message Variables and their data for Prestudent - * @param $prestudent_id - * @param $variablesArray to be filled with variable names - * @param $msgVarsData to be filled with variable data + * Send message */ - private function getPrestudentMsgData($prestudent_id, &$variablesArray, &$msgVarsData) + public function send() { - $msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); - if ($msgVarsData->error) - { - show_error($msgVarsData->retval); - } + $persons = $this->input->post('persons'); + $relationmessage_id = $this->input->post('relationmessage_id'); - if (!hasData($variables = $this->MessageModel->getMessageVars())) - { - unset($variables); - } - else - { - $variablesArray = array(); - // Skip person_id and prestudent_id - for ($i = 2; $i < count($variables->retval); $i++) - { - $variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; - } - } + $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($persons); - array_shift($variables->retval); // Remove person_id - array_shift($variables->retval); // Remove prestudent_id - } + $send = $this->_send($msgVarsData, $relationmessage_id); - /** - * gets Message Variables and their data for Person - * @param $person_id - * @param $variablesArray to be filled with variable names - * @param $msgVarsData to be filled with variable data - */ - private function getPersonMsgData($person_id, &$variablesArray, &$msgVarsData) - { - $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id); - if ($msgVarsData->error) - { - show_error($msgVarsData->retval); - } - - if (!hasData($variables = $this->MessageModel->getMessageVarsPerson())) - { - unset($variables); - } - else - { - $variablesArray = array(); - // Skip person_id - for ($i = 1; $i < count($variables->retval); $i++) - { - $variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; - } - array_shift($variables->retval); // Remove person_id - } - } - - /** - * send - */ - public function send($sender_id = null) - { - $result = $this->_execSend($sender_id); - - if (isSuccess($result)) - { - echo "Messages sent successfully"; - } - else - { - echo "Error when sending message"; - } + $this->load->view('system/messages/messageSent', array('success' => isSuccess($send))); } /** * Send message, response is in JSON format - * @param $sender_id */ - public function sendJson($sender_id = null) + public function sendJson() { - $result = $this->_execSend($sender_id); + $prestudents = $this->input->post('prestudents'); + $vorlage_kurzbz = $this->input->post('vorlage_kurzbz'); + $oe_kurzbz = $this->input->post('oe_kurzbz'); + $msgVars = $this->input->post('msgvars'); - $this->output - ->set_content_type('application/json') - ->set_output(json_encode($result)); + $msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents); + + $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); + + // Adds the organisation unit to each prestudent + if (isEmptyString($oe_kurzbz) && hasData($msgVarsData) && hasData($prestudentsData)) + { + for ($i = 0; $i < count($msgVarsData->retval); $i++) + { + for ($p = 0; $p < count($prestudentsData->retval); $p++) + { + if ($prestudentsData->retval[$p]->prestudent_id == $msgVarsData->retval[$i]->prestudent_id) + { + $msgVarsData->retval[$i]->oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz; + break; + } + } + } + } + + $send = $this->_send($msgVarsData, null, $oe_kurzbz, $vorlage_kurzbz, $msgVars); + if (isError($send)) + { + $this->outputJsonError($send->retval); + } + else + { + $this->outputJsonSuccess($send->retval); + } } + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + /** * Executes message sending * @param $sender_id * @return array wether execution was successfull - error or success */ - private function _execSend($sender_id) + private function _send($msgVarsData, $relationmessage_id = null, $oe_kurzbz = null, $vorlage_kurzbz = null, $msgVars = null) { - if ($sender_id === null) - { - $user_person = $this->PersonModel->getByUid($this->uid); - - if (!hasData($user_person)) - { - return error('no sender'); - } - $sender_id = $user_person->retval[0]->person_id; - } - $subject = $this->input->post('subject'); $body = $this->input->post('body'); - $prestudents = $this->input->post('prestudents'); - $persons = $this->input->post('persons'); - $relationmessage_id = $this->input->post('relationmessage_id'); - $vorlage_kurzbz = $this->input->post('vorlage_kurzbz'); - $oe_kurzbz = $this->input->post('oe_kurzbz'); - $msgvars = $this->input->post('msgvars'); - if (!isset($relationmessage_id) || $relationmessage_id == '') - { - $relationmessage_id = null; - } + $authUser = $this->_getAuthUser(); - // get message data of prestudents or persons - $prestudentsData = array(); - if ($prestudents !== null) - { - $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents); - // - $this->load->model('crm/Prestudent_model', 'PrestudentModel'); - $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); - } - else - $data = $this->MessageModel->getMsgVarsDataByPersonId($persons); + if (isError($authUser)) return $authUser; - // send message(s) - if (hasData($data)) + $sender_id = getData($authUser)[0]->person_id; + + // Send message(s) + if (hasData($msgVarsData)) { - for ($i = 0; $i < count($data->retval); $i++) + // Loads the person log library + $this->load->library('PersonLogLib'); + + for ($i = 0; $i < count($msgVarsData->retval); $i++) { $parsedText = ""; - $dataArray = (array)$data->retval[$i]; - foreach ($dataArray as $key => $val) - { - $newKey = str_replace(" ", "_", strtolower($key)); - $dataArray[$newKey] = $dataArray[$key]; - } + $msgVarsDataArray = $this->_replaceKeys((array)$msgVarsData->retval[$i]); // replaces array keys - // if oe not given, get from prestudent - if (isEmptyString($oe_kurzbz) && hasData($prestudentsData)) - { - for ($p = 0; $p < count($prestudentsData->retval); $p++) - { - if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id) - { - $oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz; - } - } - } - - // send without vorlage + // Send without vorlage if (isEmptyString($vorlage_kurzbz)) { - $parsedText = $this->messagelib->parseMessageText($body, $dataArray); - $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); + $parsedText = $this->messagelib->parseMessageText($body, $msgVarsDataArray); + $msg = $this->messagelib->sendMessage($sender_id, $msgVarsDataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); } - // send with vorlage + // Send with vorlage else { - if (isset($msgvars) && is_array($msgvars)) + if (is_array($msgVars)) { - //additional message variables - foreach ($msgvars as $key => $msgvar) + // Additional message variables + foreach ($msgVars as $key => $msgvar) { - $dataArray[$key] = $msgvar; + $msgVarsDataArray[$key] = $msgvar; } } - $msg = $this->messagelib->sendMessageVorlage($sender_id, $dataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $dataArray); + $msg = $this->messagelib->sendMessageVorlage($sender_id, $msgVarsDataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $msgVarsDataArray); } - if ($msg->error) - { - return error($msg->msg); - } + if (isError($msg)) return $msg; - // Loads the person log library - $this->load->library('PersonLogLib'); - - //write log entry - $this->personloglib->log( - $dataArray['person_id'], + // Write log entry + $personLog = $this->personloglib->log( + $msgVarsDataArray['person_id'], 'Action', array( 'name' => 'Message sent', - 'message' => 'Message sent from person '.$sender_id.' to '.$dataArray['person_id'].', messageid '.$msg->retval, + 'message' => 'Message sent from person '.$sender_id.' to '.$msgVarsDataArray['person_id'].', messageid '.$msg->retval, 'success' => 'true' ), 'kommunikation', 'core', null, - $this->uid + getAuthUID() ); - } - return success('success'); + + return success('Messages sent successfully'); } - } - - /** - * getPersonId - */ - private function getPersonId() - { - $person_id = null; - - if ($this->input->get('person_id') !== null) + else { - $person_id = $this->input->get('person_id'); + return $msgVarsData; } - elseif ($this->input->post('person_id') !== null) - { - $person_id = $this->input->get('person_id'); - } - - if (!is_numeric($person_id)) - { - show_error('Person_id is not numeric'); - } - - return $person_id; - } - - /** - * Retrieve the UID of the logged user and checks if it is valid - */ - private function _setAuthUID() - { - $this->uid = getAuthUID(); - - if (!$this->uid) show_error('User authentification failed'); } /** @@ -374,16 +217,27 @@ class Messages extends Auth_Controller public function getVorlage() { $vorlage_kurzbz = $this->input->get('vorlage_kurzbz'); + $result = null; - if (isset($vorlage_kurzbz)) + if (!isEmptyString($vorlage_kurzbz)) { $this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel'); $this->VorlagestudiengangModel->addOrder('version','DESC'); - $result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz)); - $this->output - ->set_content_type('application/json') - ->set_output(json_encode($result)); + $result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz)); + } + else + { + $result = error('The given vorlage_kurzbz is not valid'); + } + + if (isError($result) || !hasData($result)) + { + $this->outputJsonError($result->retval); + } + else + { + $this->outputJsonSuccess($result->retval); } } @@ -392,35 +246,29 @@ class Messages extends Auth_Controller */ public function parseMessageText() { - $prestudent_id = $this->input->get('prestudent_id'); $person_id = $this->input->get('person_id'); $text = $this->input->get('text'); - + $parsedText = ''; $data = null; - if (isset($person_id) && !isset($prestudent_id)) - $data = $this->MessageModel->getMsgVarsDataByPersonId($person_id); - elseif (isset($prestudent_id)) - $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); - - if (isset($data)) + if (is_numeric($person_id)) { - $parsedText = ""; - if (hasData($data)) - { - $dataArray = (array)$data->retval[0]; - foreach ($dataArray as $key => $val) - { - $newKey = str_replace(" ", "_", strtolower($key)); - $dataArray[$newKey] = $dataArray[$key]; - } + $data = $this->MessageModel->getMsgVarsDataByPersonId($person_id); + } + else + { + $data = error('The given person_id is not a valid number'); + } - $parsedText = $this->messagelib->parseMessageText($text, $dataArray); - } + if (isError($data) || !hasData($data)) + { + $this->outputJsonError($data->retval); + } + else + { + $parsedText = $this->messagelib->parseMessageText($text, $this->_replaceKeys((array)$data->retval[0])); - $this->output - ->set_content_type('application/json') - ->set_output(json_encode($parsedText)); + $this->outputJsonSuccess($parsedText); } } @@ -433,6 +281,7 @@ class Messages extends Auth_Controller { $msg_id = $this->input->get('msg_id'); $receiver_id = $this->input->get('receiver_id'); + $msg = $this->messagelib->getMessage($msg_id, $receiver_id); $this->output @@ -440,4 +289,51 @@ class Messages extends Auth_Controller ->set_output(json_encode(array($msg->retval[0]))); } + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * Retrieves message vars from view vw_msg_vars + */ + private function _getMsgVarsData($person_id) + { + $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id); + if (isError($msgVarsData)) + { + show_error($msgVarsData->retval); + } + + return $msgVarsData; + } + + /** + * + */ + private function _getAuthUser() + { + $sender_id = null; + + $this->load->model('person/Person_model', 'PersonModel'); + $authUser = $this->PersonModel->getByUid(getAuthUID()); + + if (!hasData($authUser)) $authUser = error('The current logged user person_id is not defined'); + + return $authUser; + } + + /** + * + */ + private function _replaceKeys($data) + { + $tmpData = array(); + + // Replaces data array keys to a lowercase without spaces string + foreach ($data as $key => $val) + { + $tmpData[str_replace(' ', '_', strtolower($key))] = $val; + } + + return $tmpData; + } } diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php index 67c5d24f9..070750b7c 100644 --- a/application/controllers/system/Phrases.php +++ b/application/controllers/system/Phrases.php @@ -16,7 +16,6 @@ class Phrases extends Auth_Controller 'view' => 'system/phrase:r', 'deltext' => 'system/phrase:rw', 'edit' => 'system/phrase:rw', - 'write' => 'system/phrase:rw', 'save' => 'system/phrase:rw', 'newText' => 'system/phrase:rw', 'editText' => 'system/phrase:rw', @@ -115,19 +114,6 @@ class Phrases extends Auth_Controller $this->load->view('system/phrases/phrasesEdit', $data); } - /** - * - */ - public function write() - { - $data = array( - 'subject' => 'TestSubject', - 'body' => 'TestDevelopmentBodyText' - ); - - $this->load->view('system/messageWrite', $data); - } - /** * */ diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 4c71da84a..ef282b73b 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -527,7 +527,7 @@ class InfoCenter extends Auth_Controller $logparams = array($prestudent_id, $logdata['studiengang_kurzbz'], ''); - if (isset($statusgrund_id)) + if (isset($statusgrund_id) && is_numeric($statusgrund_id)) { $this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig'); $statusgrund_kurzbz = $this->StatusgrundModel->load($statusgrund_id); @@ -631,7 +631,7 @@ class InfoCenter extends Auth_Controller public function reloadMessages($person_id) { $messages = $this->MessageModel->getMessagesOfPerson($person_id, 1); - $this->load->view('system/messageList.php', array('messages' => $messages->retval)); + $this->load->view('system/messages/messageList.php', array('messages' => $messages->retval)); } /** @@ -1166,8 +1166,6 @@ class InfoCenter extends Auth_Controller show_error($user_person->retval); } - $messagelink = site_url('/system/Messages/write/'.$user_person->retval[0]->person_id); - $data = array ( 'lockedby' => $lockedby, 'lockedbyother' => $lockedbyother, @@ -1177,8 +1175,7 @@ class InfoCenter extends Auth_Controller 'messages' => $messages->retval, 'logs' => $logs, 'notizen' => $notizen->retval, - 'notizenbewerbung' => $notizen_bewerbung->retval, - 'messagelink' => $messagelink + 'notizenbewerbung' => $notizen_bewerbung->retval ); return $data; diff --git a/application/helpers/hlp_message_helper.php b/application/helpers/hlp_message_helper.php index 1197a02ac..c8bbcaf87 100644 --- a/application/helpers/hlp_message_helper.php +++ b/application/helpers/hlp_message_helper.php @@ -82,6 +82,21 @@ function hasData($result) return false; } +/** + * Returns the property retval if $result contains data + */ +function getData($result) +{ + $data = null; + + if (hasData($result)) + { + $data = $result->retval; + } + + return $data; +} + /** * Checks if the result represents an error * Wrapper function of isSuccess, more readable code diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 45ccce876..c539a0bc7 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -9,36 +9,41 @@ class MessageLib { const MSG_INDX_PREFIX = 'message_'; + private $_ci; + /** * Constructor */ public function __construct() { // Get code igniter instance - $this->ci =& get_instance(); + $this->_ci =& get_instance(); // Loads message configuration - $this->ci->config->load('message'); + $this->_ci->config->load('message'); // CI Parser library - $this->ci->load->library('parser'); + $this->_ci->load->library('parser'); // Loads LogLib - $this->ci->load->library('LogLib'); + $this->_ci->load->library('LogLib'); // Loads VorlageLib - $this->ci->load->library('VorlageLib'); + $this->_ci->load->library('VorlageLib'); // Loads Mail library - $this->ci->load->library('MailLib'); + $this->_ci->load->library('MailLib'); // Loading models - $this->ci->load->model('system/Message_model', 'MessageModel'); - $this->ci->load->model('system/MsgStatus_model', 'MsgStatusModel'); - $this->ci->load->model('system/Recipient_model', 'RecipientModel'); - $this->ci->load->model('system/Attachment_model', 'AttachmentModel'); + $this->_ci->load->model('system/Message_model', 'MessageModel'); + $this->_ci->load->model('system/MsgStatus_model', 'MsgStatusModel'); + $this->_ci->load->model('system/Recipient_model', 'RecipientModel'); + $this->_ci->load->model('system/Attachment_model', 'AttachmentModel'); // Loads phrases - $this->ci->lang->load('message'); + $this->_ci->lang->load('message'); } + //------------------------------------------------------------------------------------------------------------------ + // Public methods + /** * getMessage() - returns the specified received message for a specified person */ @@ -49,9 +54,7 @@ class MessageLib if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_RECIPIENTS); - $msg = $this->ci->RecipientModel->getMessage($msg_id, $person_id); - - return $msg; + return $this->_ci->RecipientModel->getMessage($msg_id, $person_id); } /** @@ -62,9 +65,7 @@ class MessageLib if (isEmptyString($uid)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all); - - return $msg; + return $this->_ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all); } /** @@ -75,9 +76,7 @@ class MessageLib if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); - - return $msg; + return $this->_ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); } /** @@ -88,9 +87,7 @@ class MessageLib if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); - - return $msg; + return $this->_ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); } /** @@ -101,7 +98,7 @@ class MessageLib if (isEmptyString($token)) return $this->_error('', MSG_ERR_INVALID_TOKEN); - $result = $this->ci->RecipientModel->getMessageByToken($token); + $result = $this->_ci->RecipientModel->getMessageByToken($token); if (hasData($result)) { // Searches for a status that is different from unread @@ -124,7 +121,7 @@ class MessageLib 'status' => MSG_STATUS_READ ); - $resultIns = $this->ci->MsgStatusModel->insert($statusKey); + $resultIns = $this->_ci->MsgStatusModel->insert($statusKey); // If an error occured while writing on data base, then return it if (isError($resultIns)) { @@ -144,9 +141,7 @@ class MessageLib if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_RECIPIENTS); - $msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz); - - return $msg; + return $this->_ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz); } /** @@ -172,7 +167,7 @@ class MessageLib } // Searches if the status is already present - $result = $this->ci->MsgStatusModel->load(array($message_id, $person_id, $status)); + $result = $this->_ci->MsgStatusModel->load(array($message_id, $person_id, $status)); if (hasData($result)) { // status already present @@ -186,7 +181,7 @@ class MessageLib 'status' => $status ); - $result = $this->ci->MsgStatusModel->insert($statusKey); + $result = $this->_ci->MsgStatusModel->insert($statusKey); } return $result; @@ -199,7 +194,7 @@ class MessageLib { if (!is_numeric($sender_id)) { - $sender_id = $this->ci->config->item('system_person_id'); + $sender_id = $this->_ci->config->item('system_person_id'); } $receivers = $this->_getReceivers($receiver_id, $oe_kurzbz); @@ -230,7 +225,7 @@ class MessageLib if (isSuccess($result)) { // If the system is configured to send messages immediately - if ($this->ci->config->item('send_immediately') === true) + if ($this->_ci->config->item('send_immediately') === true) { // Send message by email! $resultSendEmail = $this->sendOne($result->retval, $subject, $body, $multiPartMime); @@ -274,7 +269,7 @@ class MessageLib { if (!is_numeric($sender_id)) { - $sender_id = $this->ci->config->item('system_person_id'); + $sender_id = $this->_ci->config->item('system_person_id'); } $receivers = $this->_getReceivers($receiver_id, $oe_kurzbz); @@ -290,7 +285,7 @@ class MessageLib else { // Load reveiver data to get its relative language - $this->ci->load->model('person/Person_model', 'PersonModel'); + $this->_ci->load->model('person/Person_model', 'PersonModel'); } // Looping on receivers @@ -299,14 +294,14 @@ class MessageLib $receiver_id = $receivers->retval[$i]->person_id; // Checks if the receiver exists - $result = $this->ci->PersonModel->load($receiver_id); + $result = $this->_ci->PersonModel->load($receiver_id); if (hasData($result)) { // Retrives the language of the logged user $sprache = getUserLanguage(); // Loads template data - $result = $this->ci->vorlagelib->loadVorlagetext($vorlage_kurzbz, $oe_kurzbz, $orgform_kurzbz, $sprache); + $result = $this->_ci->vorlagelib->loadVorlagetext($vorlage_kurzbz, $oe_kurzbz, $orgform_kurzbz, $sprache); if (isSuccess($result)) { // If the text and the subject of the template are not empty @@ -314,9 +309,9 @@ class MessageLib !isEmptyString($result->retval[0]->text) && !isEmptyString($result->retval[0]->subject)) { // Parses template text - $parsedText = $this->ci->vorlagelib->parseVorlagetext($result->retval[0]->text, $data); + $parsedText = $this->_ci->vorlagelib->parseVorlagetext($result->retval[0]->text, $data); // Parses subject - $subject = $this->ci->vorlagelib->parseVorlagetext($result->retval[0]->subject, $data); + $subject = $this->_ci->vorlagelib->parseVorlagetext($result->retval[0]->subject, $data); // Save message $result = $this->_saveMessage($sender_id, $receiver_id, $subject, $parsedText, $relationmessage_id, $oe_kurzbz); @@ -324,7 +319,7 @@ class MessageLib if (isSuccess($result)) { // If the system is configured to send messages immediately - if ($this->ci->config->item('send_immediately') === true) + if ($this->_ci->config->item('send_immediately') === true) { // Send message by email! $resultSendEmail = $this->sendOne($result->retval, $subject, $parsedText, $multiPartMime); @@ -389,21 +384,21 @@ class MessageLib $sent = true; // optimistic expectation // Gets standard configs - $cfg = $this->ci->maillib->getConfigs(); + $cfg = $this->_ci->maillib->getConfigs(); $cfg->email_number_to_sent = $numberToSent; $cfg->email_number_per_time_range = $numberPerTimeRange; $cfg->email_time_range = $email_time_range; $cfg->email_from_system = $email_from_system; // Overrides configs with the parameters - $this->ci->maillib->overrideConfigs($cfg); + $this->_ci->maillib->overrideConfigs($cfg); - // Gets a number ($this->ci->maillib->getMaxEmailToSent()) of unsent messages from DB + // Gets a number ($this->_ci->maillib->getMaxEmailToSent()) of unsent messages from DB // having EMAIL_KONTAKT_TYPE as relative contact type - $result = $this->ci->RecipientModel->getMessages( + $result = $this->_ci->RecipientModel->getMessages( EMAIL_KONTAKT_TYPE, null, - $this->ci->maillib->getConfigs()->email_number_to_sent + $this->_ci->maillib->getConfigs()->email_number_to_sent ); // Checks if errors were occurred if (isSuccess($result)) @@ -418,14 +413,14 @@ class MessageLib if ((!is_null($result->retval[$i]->receiver) && $result->retval[$i]->receiver != '') || (!is_null($result->retval[$i]->employeecontact) && $result->retval[$i]->employeecontact != '')) { - $href = $this->ci->config->item('message_server').$this->ci->config->item('message_html_view_url').$result->retval[$i]->token; + $href = $this->_ci->config->item('message_server').$this->_ci->config->item('message_html_view_url').$result->retval[$i]->token; - $vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailHTML'); + $vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailHTML'); if(hasData($vorlage)) { // Using a template for the html email body - $body = $this->ci->parser->parse_string( + $body = $this->_ci->parser->parse_string( $vorlage->retval[0]->text, array( 'href' => $href, @@ -438,7 +433,7 @@ class MessageLib else { // Using a template for the html email body - $body = $this->ci->parser->parse( + $body = $this->_ci->parser->parse( 'templates/mailHTML', array( 'href' => $href, @@ -450,14 +445,14 @@ class MessageLib } if (is_null($body) || $body == '') { - $this->ci->loglib->logError('Error while parsing the mail template'); + $this->_ci->loglib->logError('Error while parsing the mail template'); } - $vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailTXT'); + $vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailTXT'); if(hasData($vorlage)) { // Using a template for the plain text email body - $altBody = $this->ci->parser->parse_string( + $altBody = $this->_ci->parser->parse_string( $vorlage->retval[0]->text, array( 'href' => $href, @@ -470,7 +465,7 @@ class MessageLib else { // Using a template for the plain text email body - $altBody = $this->ci->parser->parse( + $altBody = $this->_ci->parser->parse( 'templates/mailTXT', array( 'href' => $href, @@ -482,7 +477,7 @@ class MessageLib } if (is_null($altBody) || $altBody == '') { - $this->ci->loglib->logError('Error while parsing the mail template'); + $this->_ci->loglib->logError('Error while parsing the mail template'); } // If the sender is not an employee, then system-sender is used if empty @@ -499,7 +494,7 @@ class MessageLib } // Sending email - $sent = $this->ci->maillib->send( + $sent = $this->_ci->maillib->send( $sender, $receiverContact, $result->retval[$i]->subject, @@ -512,7 +507,7 @@ class MessageLib // If errors were occurred while sending the email if (!$sent) { - $this->ci->loglib->logError('Error while sending an email'); + $this->_ci->loglib->logError('Error while sending an email'); // Writing errors in tbl_msg_recipient $sme = $this->setMessageError( $result->retval[$i]->message_id, @@ -522,7 +517,7 @@ class MessageLib ); if (!$sme) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } } else @@ -532,13 +527,13 @@ class MessageLib // If some errors occurred if (!$sent) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } } } else { - $this->ci->loglib->logError('This person does not have an email account'); + $this->_ci->loglib->logError('This person does not have an email account'); // Writing errors in tbl_msg_recipient $sme = $this->setMessageError( $result->retval[$i]->message_id, @@ -548,7 +543,7 @@ class MessageLib ); if (!$sme) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } $sent = true; // Non blocking error } @@ -556,13 +551,13 @@ class MessageLib } else { - $this->ci->loglib->logInfo('There are no email to be sent'); + $this->_ci->loglib->logInfo('There are no email to be sent'); $sent = false; } } else { - $this->ci->loglib->logError('Something went wrong while getting data from DB'); + $this->_ci->loglib->logError('Something went wrong while getting data from DB'); $sent = false; } @@ -577,7 +572,7 @@ class MessageLib $sent = true; // optimistic expectation // Get a specific message from DB having EMAIL_KONTAKT_TYPE as relative contact type - $result = $this->ci->RecipientModel->getMessages( + $result = $this->_ci->RecipientModel->getMessages( EMAIL_KONTAKT_TYPE, null, null, @@ -598,12 +593,12 @@ class MessageLib if ($multiPartMime === true) { // Using a template for the html email body - $href = $this->ci->config->item('message_server').$this->ci->config->item('message_html_view_url').$result->retval[0]->token; + $href = $this->_ci->config->item('message_server').$this->_ci->config->item('message_html_view_url').$result->retval[0]->token; - $vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailHTML'); + $vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailHTML'); if(hasData($vorlage)) { - $bodyMsg = $this->ci->parser->parse_string( + $bodyMsg = $this->_ci->parser->parse_string( $vorlage->retval[0]->text, array( 'href' => $href, @@ -615,7 +610,7 @@ class MessageLib } else { - $bodyMsg = $this->ci->parser->parse( + $bodyMsg = $this->_ci->parser->parse( 'templates/mailHTML', array( 'href' => $href, @@ -628,14 +623,14 @@ class MessageLib if (is_null($bodyMsg) || $bodyMsg == '') { // $body = $result->retval[0]->body; - $this->ci->loglib->logError('Error while parsing the html mail template'); + $this->_ci->loglib->logError('Error while parsing the html mail template'); } // Using a template for the plain text email body - $vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailTXT'); + $vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailTXT'); if(hasData($vorlage)) { - $altBody = $this->ci->parser->parse_string( + $altBody = $this->_ci->parser->parse_string( $vorlage->retval[0]->text, array( 'href' => $href, @@ -647,7 +642,7 @@ class MessageLib } else { - $altBody = $this->ci->parser->parse( + $altBody = $this->_ci->parser->parse( 'templates/mailTXT', array( 'href' => $href, @@ -659,7 +654,7 @@ class MessageLib } if (is_null($altBody) || $altBody == '') { - $this->ci->loglib->logError('Error while parsing the plain text mail template'); + $this->_ci->loglib->logError('Error while parsing the plain text mail template'); } } else @@ -681,7 +676,7 @@ class MessageLib } // Sending email - $sent = $this->ci->maillib->send( + $sent = $this->_ci->maillib->send( null, $receiverContact, is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it! @@ -694,7 +689,7 @@ class MessageLib // If errors were occurred while sending the email if (!$sent) { - $this->ci->loglib->logError('Error while sending an email'); + $this->_ci->loglib->logError('Error while sending an email'); // Writing errors in tbl_msg_recipient $sme = $this->setMessageError( $result->retval[0]->message_id, @@ -704,7 +699,7 @@ class MessageLib ); if (!$sme) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } } else @@ -714,13 +709,13 @@ class MessageLib // If the email has been sent and the DB updated if (!$sent) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } } } else { - $this->ci->loglib->logError('This person does not have an email account'); + $this->_ci->loglib->logError('This person does not have an email account'); // Writing errors in tbl_msg_recipient $sme = $this->setMessageError( $result->retval[0]->message_id, @@ -730,27 +725,100 @@ class MessageLib ); if (!$sme) { - $this->ci->loglib->logError('Error while updating DB'); + $this->_ci->loglib->logError('Error while updating DB'); } $sent = true; // Non blocking error } } else { - $this->ci->loglib->logInfo('There are no email to be sent'); + $this->_ci->loglib->logInfo('There are no email to be sent'); $sent = false; } } else { - $this->ci->loglib->logError('Something went wrong while getting data from DB'); + $this->_ci->loglib->logError('Something went wrong while getting data from DB'); $sent = false; } return $sent; } - // ------------------------------------------------------------------------ + /** + * parseMessageText + */ + public function parseMessageText($text, $data = array()) + { + return $this->_ci->parser->parse_string($text, $data, true); + } + + /** + * Gets data for Person from view vw_msg_vars_person + * @param $person_id + */ + public function getMessageVarsPerson() + { + $variablesArray = array(); + $variables = $this->_ci->MessageModel->getMessageVarsPerson(); + + if (isError($variables)) + { + show_error($variables->retval); + } + elseif (hasData($variables)) + { + // Skip person_id + for ($i = 1; $i < count($variables->retval); $i++) + { + $variablesArray['{'.str_replace(' ', '_', strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; + } + array_shift($variables->retval); // Remove person_id + } + + return $variablesArray; + } + + /** + * A person may belongs to more organisation units + */ + public function getOeKurzbz($sender_id) + { + $oe_kurzbz = array(); + + $this->_ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); + $benutzerResult = $this->_ci->BenutzerfunktionModel->getByPersonId($sender_id); + if (isError($benutzerResult)) + { + show_error($benutzerResult->retval); + } + elseif (hasData($benutzerResult)) + { + foreach ($benutzerResult->retval as $val) + { + $oe_kurzbz[] = $val->oe_kurzbz; + } + } + + return $oe_kurzbz; + } + + /** + * Admin or commoner? + */ + public function getIsAdmin($sender_id) + { + $this->_ci->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); + $isAdmin = $this->_ci->BenutzerrolleModel->isAdminByPersonId($sender_id); + if (isError($isAdmin)) + { + show_error($isAdmin->retval); + } + + return $isAdmin->retval; + } + + //------------------------------------------------------------------------------------------------------------------ // Private methods /** @@ -761,7 +829,7 @@ class MessageLib $updated = false; // Updates table tbl_msg_recipient - $resultUpdate = $this->ci->RecipientModel->update(array($receiver_id, $message_id), $parameters); + $resultUpdate = $this->_ci->RecipientModel->update(array($receiver_id, $message_id), $parameters); // Checks if errors were occurred if (isSuccess($resultUpdate) && is_array($resultUpdate->retval)) { @@ -802,13 +870,13 @@ class MessageLib private function _getReceiversByOekurzbz($oe_kurzbz) { // Load Benutzerfunktion_model - $this->ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); + $this->_ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); // Join with table public.tbl_benutzer on field uid - $this->ci->BenutzerfunktionModel->addJoin('public.tbl_benutzer', 'uid'); + $this->_ci->BenutzerfunktionModel->addJoin('public.tbl_benutzer', 'uid'); // Get all the valid receivers id using the oe_kurzbz - $receivers = $this->ci->BenutzerfunktionModel->loadWhere( - 'oe_kurzbz = '.$this->ci->db->escape($oe_kurzbz). - ' AND funktion_kurzbz = '.$this->ci->db->escape($this->ci->config->item('assistent_function')). + $receivers = $this->_ci->BenutzerfunktionModel->loadWhere( + 'oe_kurzbz = '.$this->_ci->db->escape($oe_kurzbz). + ' AND funktion_kurzbz = '.$this->_ci->db->escape($this->_ci->config->item('assistent_function')). ' AND (NOW() BETWEEN COALESCE(datum_von, NOW()) AND COALESCE(datum_bis, NOW()))' ); @@ -851,8 +919,8 @@ class MessageLib private function _checkReceiverId($receiver_id) { // Load Person_model - $this->ci->load->model('person/Person_model', 'PersonModel'); - $result = $this->ci->PersonModel->load($receiver_id); + $this->_ci->load->model('person/Person_model', 'PersonModel'); + $result = $this->_ci->PersonModel->load($receiver_id); if (hasData($result)) { return true; @@ -867,7 +935,7 @@ class MessageLib private function _saveMessage($sender_id, $receiver_id, $subject, $body, $relationmessage_id, $oe_kurzbz) { // Starts db transaction - $this->ci->db->trans_start(false); + $this->_ci->db->trans_start(false); // Save Message $msgData = array( @@ -878,7 +946,7 @@ class MessageLib 'relationmessage_id' => $relationmessage_id, 'oe_kurzbz' => $oe_kurzbz ); - $result = $this->ci->MessageModel->insert($msgData); + $result = $this->_ci->MessageModel->insert($msgData); if (isSuccess($result)) { // Link the message with the receiver @@ -888,7 +956,7 @@ class MessageLib 'message_id' => $msg_id, 'token' => generateToken() ); - $result = $this->ci->RecipientModel->insert($recipientData); + $result = $this->_ci->RecipientModel->insert($recipientData); if (isSuccess($result)) { // Save message status @@ -897,20 +965,20 @@ class MessageLib 'person_id' => $receiver_id, 'status' => MSG_STATUS_UNREAD ); - $result = $this->ci->MsgStatusModel->insert($statusData); + $result = $this->_ci->MsgStatusModel->insert($statusData); } } - $this->ci->db->trans_complete(); + $this->_ci->db->trans_complete(); - if ($this->ci->db->trans_status() === false || isError($result)) + if ($this->_ci->db->trans_status() === false || isError($result)) { - $this->ci->db->trans_rollback(); + $this->_ci->db->trans_rollback(); $result = $this->_error($result->msg, EXIT_ERROR); } else { - $this->ci->db->trans_commit(); + $this->_ci->db->trans_commit(); $result = $this->_success($msg_id); } @@ -932,12 +1000,4 @@ class MessageLib { return success($retval, $code, MessageLib::MSG_INDX_PREFIX); } - - /** - * - */ - public function parseMessageText($text, $data = array()) - { - return $this->ci->parser->parse_string($text, $data, true); - } } diff --git a/application/models/accounting/Kostenstelle_model.php b/application/models/accounting/Kostenstelle_model.php index f338b69d5..719d08835 100644 --- a/application/models/accounting/Kostenstelle_model.php +++ b/application/models/accounting/Kostenstelle_model.php @@ -13,12 +13,12 @@ class Kostenstelle_model extends DB_Model } /** - * Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields + * Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields * Gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified * @param $geschaeftsjahr * @return array|null Kostenstellen or empty array if no geschaeftsjahr found */ - public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null) + public function getKostenstellenForGeschaeftsjahr($geschaeftsjahr = null) { $this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel'); @@ -47,12 +47,12 @@ class Kostenstelle_model extends DB_Model } /** - * Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe, + * Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe, * hierarchally sorted, gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified * @param null $geschaeftsjahr * @return array|null */ - public function getActiveKostenstellenForGeschaeftsjahrWithOe($geschaeftsjahr = null) + public function getKostenstellenForGegitschaeftsjahrWithOe($geschaeftsjahr = null) { $this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel'); diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 89ab2623d..4a9b23ec9 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -204,8 +204,8 @@ class Prestudent_model extends DB_Model $this->addJoin('bis.tbl_nation zgvmanat', 'zgvmanation = zgvmanat.nation_code', 'LEFT'); $prestudent = $this->load($prestudent_id); - if($prestudent->error) - return error($prestudent->retval); + if (!hasData($prestudent)) + return error('prestudent could not be loaded'); //Prestudentstatus $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel'); @@ -225,6 +225,7 @@ class Prestudent_model extends DB_Model if (count($studienordnung->retval) > 0) { + $lastStatus->retval[0]->studiengang_kz = $studienordnung->retval[0]->studiengang_kz; $lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang; $lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung; $lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch; @@ -233,6 +234,7 @@ class Prestudent_model extends DB_Model //get Sprache $this->load->model('system/sprache_model', 'SpracheModel'); + $this->SpracheModel->addSelect('sprache, locale, bezeichnung'); $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); if ($language->error) diff --git a/application/views/home.php b/application/views/home.php index 598413c32..d00b98f81 100644 --- a/application/views/home.php +++ b/application/views/home.php @@ -7,6 +7,7 @@ $this->load->view('templates/FHC-Header', 'fontawesome' => true, 'sbadmintemplate' => true, 'ajaxlib' => true, + 'addons' => true, 'navigationwidget' => true ) ); @@ -23,102 +24,8 @@ $this->load->view('templates/FHC-Header',
- Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
-
Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
-
www.technikum-wien.at
-
+ Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
+
Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
+
www.technikum-wien.at
+
+ Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
+
Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
+
www.technikum-wien.at
+