diff options
Diffstat (limited to 'classes/file.class.php')
-rw-r--r-- | classes/file.class.php | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/classes/file.class.php b/classes/file.class.php index ee1ccce..f6019ec 100644 --- a/classes/file.class.php +++ b/classes/file.class.php @@ -25,124 +25,124 @@ * An interface to the file table in the database */ class file { - /** - * @var PDO $pdo The PDO class for database communication - * @var int $id The id of the file - * @var string $filename The relative path to the file - */ - protected $pdo, $id, $filename; + /** + * @var PDO $pdo The PDO class for database communication + * @var int $id The id of the file + * @var string $filename The relative path to the file + */ + protected $pdo, $id, $filename; - /** - * Create a new instance - * - * @param PDO $pdo The PDO class, to access the database - * @param int $id The id of the file to fetch - * - * @throws PDOException If something went wrong with the database - * @throws Exception If the file could not be found - */ - public function __construct($pdo, $id) { - $this->pdo = $pdo; + /** + * Create a new instance + * + * @param PDO $pdo The PDO class, to access the database + * @param int $id The id of the file to fetch + * + * @throws PDOException If something went wrong with the database + * @throws Exception If the file could not be found + */ + public function __construct($pdo, $id) { + $this->pdo = $pdo; - $stmt = $this->pdo->prepare("SELECT * FROM `".constants::db_prefix."file` WHERE `id`=?"); - $stmt->execute(array($id)); - if ($stmt->rowCount() == 0) { - throw new Exception("The file with id '$id' could not be found."); - } - $file = $stmt->fetch(PDO::FETCH_ASSOC); + $stmt = $this->pdo->prepare("SELECT * FROM `".constants::db_prefix."file` WHERE `id`=?"); + $stmt->execute(array($id)); + if ($stmt->rowCount() == 0) { + throw new Exception("The file with id '$id' could not be found."); + } + $file = $stmt->fetch(PDO::FETCH_ASSOC); - $this->id = $file['id']; - $this->filename = $file['filename']; - } + $this->id = $file['id']; + $this->filename = $file['filename']; + } - //------------------------------------------------------------------------------ - // Getters and setters - //------------------------------------------------------------------------------ + //------------------------------------------------------------------------------ + // Getters and setters + //------------------------------------------------------------------------------ - /** - * Get the ID of the file - * - * @return int The ID - */ - public function getId() { - return $this->id; - } + /** + * Get the ID of the file + * + * @return int The ID + */ + public function getId() { + return $this->id; + } - /** - * Get the relative filename of the file - * - * @see file::getFilenamePath To get the full internal path to the file - * @see file::getFilenameURI To get the full external path to the file - * - * @return string The filename - */ - public function getFilename() { - return $this->filename; - } + /** + * Get the relative filename of the file + * + * @see file::getFilenamePath To get the full internal path to the file + * @see file::getFilenameURI To get the full external path to the file + * + * @return string The filename + */ + public function getFilename() { + return $this->filename; + } - /** - * Get the full internal path to the file - * - * @see file::getFilename To get the relative filename - * @see file::getFilenameURI To get the full external path to the file - * - * @return string The path - */ - public function getFilenamePath() { - return constants::files_folder . $this->filename; - } + /** + * Get the full internal path to the file + * + * @see file::getFilename To get the relative filename + * @see file::getFilenameURI To get the full external path to the file + * + * @return string The path + */ + public function getFilenamePath() { + return constants::files_folder . $this->filename; + } - /** - * Get the full external path to the file - * - * @see file::getFilename To get the relative filename - * @see file::getFilenamePath To get the full internal path to the file - * - * @return string The URI - */ - public function getFilenameURI() { - return constants::files_folder_external . $this->filename; - } + /** + * Get the full external path to the file + * + * @see file::getFilename To get the relative filename + * @see file::getFilenamePath To get the full internal path to the file + * + * @return string The URI + */ + public function getFilenameURI() { + return constants::files_folder_external . $this->filename; + } - //------------------------------------------------------------------------------ - // Other functions - //------------------------------------------------------------------------------ + //------------------------------------------------------------------------------ + // Other functions + //------------------------------------------------------------------------------ - /** - * Move this file to the trash and delete all records for it - * - * Physically, this moves the file to a trash folder - * Then, the file will be removed from the file table in the database - * Any appendices linking to this file with fileId will have fileId NULL - * Any offers linking to this file with invoice_fileId will have invoice_fileId NULL - * - * @throws PDOException If there's something wrong with the database - * - * @return bool True on success, false on failure - */ - public function delete() { - // Try to move the file to trash - $newname = pathinfo($this->filename, PATHINFO_FILENAME) . '--' . date('Y-m-d.H.i.s.') . pathinfo($this->filename, PATHINFO_EXTENSION); - $newdir = pathinfo($this->getFilenamePath(), PATHINFO_DIRNAME) . '/' . constants::files_folder_trash . '/'; - if (!file_exists($newdir)) { - if (!mkdir($newdir)) { - return false; - } - } - if (!(@rename($this->getFilenamePath(), $newdir . $newname))) { - return false; - } + /** + * Move this file to the trash and delete all records for it + * + * Physically, this moves the file to a trash folder + * Then, the file will be removed from the file table in the database + * Any appendices linking to this file with fileId will have fileId NULL + * Any offers linking to this file with invoice_fileId will have invoice_fileId NULL + * + * @throws PDOException If there's something wrong with the database + * + * @return bool True on success, false on failure + */ + public function delete() { + // Try to move the file to trash + $newname = pathinfo($this->filename, PATHINFO_FILENAME) . '--' . date('Y-m-d.H.i.s.') . pathinfo($this->filename, PATHINFO_EXTENSION); + $newdir = pathinfo($this->getFilenamePath(), PATHINFO_DIRNAME) . '/' . constants::files_folder_trash . '/'; + if (!file_exists($newdir)) { + if (!mkdir($newdir)) { + return false; + } + } + if (!(@rename($this->getFilenamePath(), $newdir . $newname))) { + return false; + } - // Remove offers linked by invoice_fileId - $this->pdo->query("UPDATE `".constants::db_prefix."offer` SET `invoice_fileId`=NULL WHERE `invoice_fileId`={$this->id}"); + // Remove offers linked by invoice_fileId + $this->pdo->query("UPDATE `".constants::db_prefix."offer` SET `invoice_fileId`=NULL WHERE `invoice_fileId`={$this->id}"); - // Remove the record of the file - $stmt = $this->pdo->prepare("DELETE FROM `".constants::db_prefix."file` WHERE `id`=?"); - $stmt->execute(array($this->id)); - if ($stmt->rowCount() == 1) { - return true; - } else { - return false; - } - } + // Remove the record of the file + $stmt = $this->pdo->prepare("DELETE FROM `".constants::db_prefix."file` WHERE `id`=?"); + $stmt->execute(array($this->id)); + if ($stmt->rowCount() == 1) { + return true; + } else { + return false; + } + } }
\ No newline at end of file |