_MailBoxesModel.php
297 lines
| 15.3 KiB
| text/x-php
|
PhpLexer
|
r0 | <?php | |
class MailBoxesModel extends ModelBase { | |||
public function getMailBoxes($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 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; | |||
} | |||
} | |||
?> |