| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <?php
- class document
- {
-
- static public function uploadFile(array $_temp){
- $tmp = file::record($_temp, DIR_DATAS_DOCS);
- if($tmp != FALSE){
- return $tmp;
- } else {
- return FALSE;
- }
- }
- static public function readFile(string $_id){
- return file::download($_id, DIR_DATAS_DOCS);
- }
- static public function deleteFile(string $_id){
- return file::delete($_id, DIR_DATAS_DOCS);
- }
- static public function getTypes(){
- db::query("SELECT "
- . "* "
- . "FROM " . DB_T_TYPE_DOCUMENT);
- return db::resultset();
- }
- public static function delete(int $_id)
- {
- $tmp = self::get($_id);
- db::query("DELETE FROM " . DB_T_DOCUMENTS . " WHERE id = :id");
- db::bind(':id', $_id);
- db::execute();
- return self::deleteFile($tmp["id_file"]);
- }
- public static function lastAdd()
- {
- db::query("SELECT MAX(id) AS id FROM " . DB_T_DOCUMENTS);
- return db::single()["id"];
- }
-
- public static function add()
- {
- /**
- *
- * @var string $idFile
- */
- $file = core::getFiles("document-import");
- $idFile = self::uploadFile($file);
- $tags = tags::textToId(core::getPost("tags"));
- if($idFile != NULL){
- db::query("INSERT INTO " . DB_T_DOCUMENTS . " (id_type, id_file, titre, date, deadline, description, tags) VALUES (:id_type, :id_file, :titre, :date, :deadline, :description, :tags)");
- db::bind(':id_type', core::getPost("id_type"));
- db::bind(':id_file', $idFile);
- db::bind(':titre', core::getPost("titre"));
- db::bind(':date', core::getPost("date"));
- db::bind(':deadline', core::getPost("deadline"));
- db::bind(':description', core::getPost("description"));
- db::bind(':tags', $tags);
-
- try {
- db::execute();
- alert::recSuccess("Document enregistré avec succès");
- return TRUE;
- } catch (Exception $ex) {
- file::delete($idFile, DIR_DATAS_DOCS);
- alert::recError("Erreur à l'enregistrement du document : " . core::getPost("titre"));
- return FALSE;
- }
- } else {
- file::delete($idFile, DIR_DATAS_DOCS);
- alert::recError("Erreur à l'enregistrement de la pièce jointe : " . $file["tmp_name"]);
- return FALSE;
- }
- }
- public static function update()
- {
- $tags = tags::textToId(core::getPost("tags"));
- if(core::ifPost("done") AND core::getPost("done") == TRUE){
- $sql = "id_user_done = :id_user_done, date_done = CURRENT_TIMESTAMP, ";
- } else {
- $sql = "";
- }
-
- db::query("UPDATE " . DB_T_DOCUMENTS . " SET "
- . "id_type = :id_type, "
- . "titre = :titre, "
- . "date = :date, "
- . "deadline = :deadline, "
- . "description = :description, "
- . $sql
- . "tags = :tags "
- . "WHERE id = :id");
-
- db::bind(':id_type', core::getPost("id_type"));
- db::bind(':titre', core::getPost("titre"));
- db::bind(':date', core::getPost("date"));
- db::bind(':deadline', core::getPost("deadline"));
- db::bind(':description', core::getPost("description"));
- db::bind(':tags', $tags);
- db::bind(':id', core::getPost("id"));
- if(core::ifPost("done") AND core::getPost("done") == TRUE){
- db::bind(':id_user_done', session::getId());
- }
-
- try {
- db::execute();
- alert::recSuccess("Document mis à jour avec succès");
- return TRUE;
- } catch (Exception $ex) {
- alert::recError("Erreur de mise à jour du document");
- return FALSE;
- }
- }
- static public function printFile(string $_id) {
- $filePatch = file::download($_id, DIR_DATAS_DOCS);
-
- if (file_exists($filePatch) && is_readable($filePatch)) {
- $file_info = new finfo(FILEINFO_MIME_TYPE);
- $mime_type = $file_info->file($filePatch);
- header('Content-Type: ' . $mime_type);
- header('Content-Length: ' . filesize($filePatch));
- readfile($filePatch);
- } else {
- echo "Le fichier n'a pas été trouvé ou n'est pas lisible.";
- }
- }
- static public function getList(){
-
- }
- static public function get(float $_id){
- db::query("SELECT "
- . "" . DB_T_DOCUMENTS . ".id, "
- . "" . DB_T_DOCUMENTS . ".id_type, "
- . "" . DB_T_DOCUMENTS . ".id_file, "
- . "" . DB_T_DOCUMENTS . ".titre, "
- . "" . DB_T_DOCUMENTS . ".date, "
- . "" . DB_T_DOCUMENTS . ".deadline, "
- . "" . DB_T_DOCUMENTS . ".description, "
- . "" . DB_T_DOCUMENTS . ".tags, "
- . "" . DB_T_DOCUMENTS . ".id_user_done, "
- . "" . DB_T_DOCUMENTS . ".date_done, "
- . "CONCAT(" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS doneUser, "
- . "" . DB_T_FILES . ".name, "
- . "CONCAT(ROUND((" . DB_T_FILES . ".size / 1024 / 1024), 2), ' Mo') AS size "
- . "FROM " . DB_T_DOCUMENTS . " "
- . "INNER JOIN " . DB_T_FILES . " ON " . DB_T_FILES . ".id = " . DB_T_DOCUMENTS . ".id_file "
- . "LEFT JOIN " . DB_T_USER . " ON " . DB_T_USER . ".id = " . DB_T_DOCUMENTS . ".id_user_done "
- . "WHERE " . DB_T_DOCUMENTS . ".id = :id");
- db::bind(':id', $_id);
- $row = db::single();
- $row["tags"] = tags::idToTtext($row["tags"]);
- return $row;
- }
- }
|