db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND m.state = 1 ORDER BY m.ordering, m.alias '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxesUser($iduser,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) { //preparamos la cadena de consulta $str_query = 'SELECT m.*, t.*, count(mens.idmessage) as num_messages FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb LEFT JOIN sis_message as mens ON m.idmailbox = mens.idmailbox WHERE m.iduser = '.$iduser.' AND m.state = 1 AND t.idtypemb = 4 GROUP BY m.idmailbox ORDER BY m.ordering, m.alias'; $query = $this->db->prepare($str_query); if($paginador) { //realizamos la consulta de todos los items $consulta = $this->db->prepare($str_query); $consulta->execute(); $num_filas = $consulta->rowCount(); if($num_filas == $datos['inicio']) { $datos['inicio'] = $num_filas - $datos['tamanio']; ($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio']; } $inicio = $datos['inicio']; //getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo. $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']); list($paginas,$navegador) = $this->getPager($parametros); //realizamos una consulta paginada $consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return array($consulta,$paginas,$navegador,$inicio); //return array($datos,$paginas,$navegador); }else { $consulta = $this->db->prepare($str_query.' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return $consulta; } } public function getMailBoxesSystem($iduser) { //preparamos la cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND t.idtypemb <= 3 AND m.state = 1 ORDER BY m.ordering, m.alias '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getIDMailBoxesSystem($iduser) { $str_query = ' SELECT idmailbox, idtypemb FROM sis_mailbox' .' WHERE iduser = '.$iduser .' AND state = 1 ORDER BY ordering'; $query = $this->db->prepare($str_query); $query->execute(); return $query; } public function getMailBoxesListMove($iduser,$idmailbox) { //preparamos la cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND t.idtypemb >= 3 AND m.state = 1 AND m.idmailbox != '.$idmailbox.' ORDER BY m.ordering, m.alias '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBox($idmailbox) { //preparamos lala cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.idmailbox = '.$idmailbox.' AND m.state = 1 LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxForName($alias) { //preparamos lala cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.state = 1 LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxForNameInUser($alias,$iduser) { //preparamos lala cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.iduser = '.$iduser.' AND m.state = 1 LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxDuplicateForName($alias,$idmailbox) { //preparamos lala cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.idmailbox != '.$idmailbox.' AND m.state = 1 LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxDuplicateForNameInUser($alias,$idmailbox,$iduser) { //preparamos lala cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.iduser = '.$iduser.' AND m.idmailbox != '.$idmailbox.' AND m.state = 1 LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMailBoxType($iduser, $idtypemb) { //preparamos la cadena de consulta $query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND m.state = 1 AND m.idtypemb = '.$idtypemb.' LIMIT 0,1 '); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function getMessages($idmailbox,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) { //$str_query = ' SELECT m.*, msg.* FROM sis_mailbox AS m LEFT JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox WHERE m.idmailbox = '.$idmailbox.' ORDER BY msg.date_message DESC '; $str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE m.idmailbox = '.$idmailbox.' AND (msg.state = 1 OR msg.state = 2) ORDER BY msg.date_message DESC '; if($paginador) { //realizamos la consulta de todos los items $consulta = $this->db->prepare($str_query); $consulta->execute(); $num_filas = $consulta->rowCount(); if($num_filas == $datos['inicio']) { $datos['inicio'] = $num_filas - $datos['tamanio']; ($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio']; } $inicio = $datos['inicio']; //getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo. $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']); list($paginas,$navegador) = $this->getPager($parametros); //realizamos una consulta paginada $consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return array($consulta,$paginas,$navegador,$inicio); //return array($datos,$paginas,$navegador); }else { $consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return $consulta; } } public function getMessagesNoRead($idmailbox,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) { //$str_query = ' SELECT m.*, msg.* FROM sis_mailbox AS m LEFT JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox WHERE m.idmailbox = '.$idmailbox.' ORDER BY msg.date_message DESC '; $str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE m.idmailbox = '.$idmailbox.' AND msg.state = 1 ORDER BY msg.date_message DESC '; if($paginador) { //realizamos la consulta de todos los items $consulta = $this->db->prepare($str_query); $consulta->execute(); $num_filas = $consulta->rowCount(); if($num_filas == $datos['inicio']) { $datos['inicio'] = $num_filas - $datos['tamanio']; ($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio']; } $inicio = $datos['inicio']; //getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo. $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']); list($paginas,$navegador) = $this->getPager($parametros); //realizamos una consulta paginada $consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return array($consulta,$paginas,$navegador,$inicio); //return array($datos,$paginas,$navegador); }else { $consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' '); $consulta->execute(); //devolvemos la coleccion para que la vista la presente. return $consulta; } } public function getMessage($idmessage) { $str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE msg.idmessage = '.$idmessage.' ORDER BY msg.date_message DESC '; //SELECT * FROM sis_message LIMIT 0 , 30 //SELECT i . * , m . * FROM sis_inbox AS i LEFT JOIN sis_message AS m ON i.idinbox = m.idinbox WHERE i.iduser =1 LIMIT 0 , 30 $query = $this->db->prepare( $str_query ); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function insertMenssage($datos) { //realizamos la consulta de usuario por id $str_query ="INSERT INTO sis_message (idmessage, idmailbox, user_from, userto, common, subject, description, date_message, state) VALUES ('', '".$datos['idmailbox']."', '".$datos['user_from']."', '".$datos['userto']."', '".$datos['common']."', '".$datos['subject']."', '".$datos['description']."', '".$datos['date_message']."', '".$datos['state']."') "; $query = $this->db->prepare($str_query); $query->execute(); //$id = $this->lastInsertId(); //echo($id); //devolvemos la coleccion para que la vista la presente. return $query; } public function insertMailBox($datos) { //realizamos la consulta de usuario por id $str_query =" INSERT INTO sis_mailbox (idmailbox, iduser, idtypemb, ordering, alias, mb_create, mb_update, state) VALUES ('', '".$datos['iduser']."', '".$datos['idtypemb']."', '".$datos['ordering']."', '".$datos['alias']."', '".$datos['mb_create']."', '".$datos['mb_update']."', '".$datos['state']."') "; $query = $this->db->prepare($str_query); $query->execute(); //$id = $this->lastInsertId(); //echo($id); //devolvemos la coleccion para que la vista la presente. return $query; } public function updateMailBox($datos) { //realizamos la consulta de usuario por id $str_query = " UPDATE sis_mailbox SET iduser = '".$datos['iduser']."', idtypemb = '".$datos['idtypemb']."', ordering = '".$datos['ordering']."', alias = '".$datos['alias']."' , mb_update = '".$datos['mb_update']."' , state = '".$datos['state']."' WHERE idmailbox = '".$datos['idmailbox']."' "; $query = $this->db->prepare($str_query); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function removeMailbox($idmailbox) { //Se establece el valor de 'status' en '3'. Esto es eliminado $str_update = 'UPDATE sis_mailbox SET state = "2" WHERE idmailbox = '.$idmailbox.' '; $update = $this->db->prepare($str_update); $update->execute(); //devolvemos el resultado de la actualización. (true or false) return $update; } public function moveMessage($idmessage,$idmailbox) { //realizamos la consulta de usuario por id $str_query = 'UPDATE sis_message SET idmailbox = "'.$idmailbox.'" WHERE idmessage = '.$idmessage.' '; $query = $this->db->prepare($str_query); $query->execute(); //devolvemos la coleccion para que la vista la presente. return $query; } public function removeMessage($idmessage) { //Se establece el valor de 'status' en '3'. Esto es eliminado $str_query = 'UPDATE sis_message SET state = "3" WHERE idmessage = '.$idmessage.' '; $query = $this->db->prepare($str_query); $query->execute(); //devolvemos el resultado de la actualización. (true or false) return $query; } public function setReadMessage($idmessage) { //Se establece el valor de 'status' en '2'. Esto es leído $str_query = 'UPDATE sis_message SET state = "2" WHERE idmessage = '.$idmessage.' '; $query = $this->db->prepare($str_query); $query->execute(); //devolvemos el resultado de la actualización. (true or false) return $query; } public function setNoreadMessage($idmessage) { //Se establece el valor de 'status' en '1'. Esto es no leído $str_query = 'UPDATE sis_message SET state = "1" WHERE idmessage = '.$idmessage.' '; $query = $this->db->prepare($str_query); $query->execute(); //devolvemos el resultado de la actualización. (true or false) return $query; } } ?>