This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
inside/inside/Document.php
T
2009-10-13 15:43:04 +02:00

144 lines
4.5 KiB
PHP

<?php
class Document {
var $id;
var $type;
var $name;
var $size;
var $date;
var $documentcategory_id;
var $tags;
var $documentcategory_title;
var $documentData;
var $conn;
function Document($id = NULL, $documentData = NULL){
$this->__construct($id, $documentData);
}
public function __construct($id = NULL, $documentData = NULL){
$this->conn = db_connect();
if ($id != NULL){
$this->id = $id;
if ($data = $this->_retrieveData()){
$this->type = $data->type;
$this->name = $data->name;
$this->size = $data->size;
$this->date = $data->date;
$this->tags = $data->tags;
$this->documentcategory_id = $data->documentcategory_id;
$this->documentcategory_title = $data->documentcategory_title;
}
}
}
public function store($files){
if ($files != NULL){
$SrcPathFile = $_FILES["file"]["tmp_name"];
$SrcFileType = $_FILES["file"]["type"];
$DstFileName = $_FILES["file"]["name"];
clearstatcache();
// File Processing
if (file_exists($SrcPathFile)) {
// Insert into file table
$fileid = getNextId("din_document");
$sql = sprintf("INSERT INTO din_document
(id, type, name, size, date, documentcategory_id, tags)
VALUES (%s, %s, %s, %s, NOW(), %s, %s)",
$this->conn->quoteSmart($fileid),
$this->conn->quoteSmart($SrcFileType),
$this->conn->quoteSmart($DstFileName),
$this->conn->quoteSmart(filesize($SrcPathFile)),
$this->conn->quoteSmart(scriptParam("documentcategoryid")),
$this->conn->quoteSmart(strtolower(scriptParam("tags"))));
$result =& $this->conn->query($sql);
if (DB::isError($result) == true){
error("Document: " . $result->toString());
}else {
// Insert into the filedata table
$fp = fopen($SrcPathFile, "rb");
while (!feof($fp)) {
// Make the data mysql insert safe
$binarydata = fread($fp, 65535);
$sql = sprintf("INSERT INTO din_documentdata (document_id, data) VALUES (%s, %s)",
$this->conn->quoteSmart($fileid),
$this->conn->quoteSmart($binarydata)
);
$result =& $this->conn->query($sql);
if (DB::isError($result) == true){
error("Document: " . $result->toString());
}
}
fclose($fp);
notify("Document uploaded!");
}
}
}else {
error("Document: no file supplied");
}
}
public function _retrieveData(){
$sql = "SELECT d.*, dc.title AS documentcategory_title
FROM din_document d, din_documentcategory dc
WHERE d.id = $this->id";
$result =& $this->conn->query($sql);
if (DB::isError($result) != true){
if ($row = $result->fetchRow(DB_FETCHMODE_OBJECT)){
return $row;
}else {
error("Document: document not found.");
}
}else {
error("Document: " . $result->toString());
}
}
public function update($data){
$conn = db_connect();
if (isset($data['documentid'])){
$sql = sprintf("UPDATE din_document SET
name = %s,
documentcategory_id = %s,
date = NOW(), " .
"tags = %s
WHERE
id = %s",
$conn->quoteSmart($data['name'] . $data['tag']),
$conn->quoteSmart($data['documentcategory_id']),
$conn->quoteSmart(strtolower($data['tags'])),
$conn->quoteSmart($data['documentid'])
);
$result =& $conn->query($sql);
if (DB::isError($result) == true){
error("Document: " . $result->toString());
}else {
notify("Document updated.");
}
}
}
public function delete($id){
$conn = db_connect();
$sql = "DELETE FROM din_document
WHERE id = $id
LIMIT 1";
$result =& $conn->query($sql);
if (DB::isError($result) == true){
error("Document: " . $result->toString());
}else {
notify("Document deleted.");
}
}
}
?>