Files
BarangaySystem/app/Http/Controllers/Helpers/Legacy/Backup/DBEXT/FILESDB.php
2026-06-06 18:43:00 +08:00

304 lines
7.6 KiB
PHP

<?php
//File Content
class DB_FILE_CONTENT
{
public $DB = false;
public $tablename = 'file_content';
use BASICDB;
public function __construct($DB = false)
{
if (!$DB) {
$DB = DB();
}
if (!$DB) {
return false;
}
if ($DB) {
$this->DB = $DB;
}
if (!$this->tablename) {
return false;
}
}
function NewFileContent($file, $filename = '', $toDB = true)
{
if (!file_exists($file)) {
return false;
}
if (!$filename) {
$filename = basename($file);
}
$table = 'file_content';
$filecontent = file_get_contents($file);
$filehash = hash_file('sha256', $file);
$size = filesize($file);
$ifexists = DBFunctions($this->tablename, $this->DB)->CheckifUIDorHashKeyExist($filehash, $fieldstoselectarray = ['uid', 'hashkey'])['uid'] ?? false;
if ($ifexists) {
return $ifexists;
}
global $DB;
if (!$DB) {
$DB = DB();
}
$data = ['titlename' => $filename, 'hashkey' => $filehash, 'size_in_bytes' => $size];
if ($toDB === true) {
$data['content'] = $filecontent;
} elseif (!$toDB) {
$toDB = 'files/';
} else {
if (!is_dir($toDB)) {
return false;
}
}
if (!endsWithSlash($toDB)) {
$toDB .= "/";
}
if ($toDB !== true) {
file_put_contents($toDB . $filehash, $filecontent);
if (!file_exists($toDB . $filehash) or filesize($toDB . $filehash) !== $size) {
return false;
}
$data['filelocation'] = $toDB;
$data['content'] = '';
}
$newuid = insertintodb($DB, $table, $data);
return $newuid;
}
function DeleteFileContent($uidorhashkey)
{
$where = [];
if (!$uidorhashkey) {
return false;
}
if (is_numeric($uidorhashkey)) {
$where['uid'] = $uidorhashkey;
} else {
$where['hashkey'] = $uidorhashkey;
}
return deletefromdb('file_content', $where);
}
function getFileContentDetails($uidorhashkey, $fieldstoselect = '')
{
return getDetailsbyUIDorHashkey('file_content', $uidorhashkey, $fieldstoselect);
}
function getFileContentUIDbyHashkey($hashkey)
{
if (!$hashkey or is_numeric($hashkey)) {
return false;
}
return $this->getFileContentDetails($hashkey, ['uid', 'hashkey'])['uid'] ?? false;
}
function getFileContentHashkeybyUID($UID)
{
if (!$UID or !is_numeric($UID)) {
return false;
}
return $this->getFileContentDetails($UID, ['uid', 'hashkey'])['hashkey'] ?? false;
}
}
function DB_FILE_CONTENT($DB = false)
{
return new DB_FILE_CONTENT($DB);
}
class FILE_CONTENT_QUICKMULTIPLESEARCH
{
use DBClassSearch;
public $data;
public $tablename = 'file_content';
private $parentidresults = [];
public $DB;
public function __construct($data = [], $likefields = [], $fieldstoselectarray = '', $orderby = '', $noindex = 0, $whereappend = ' and ', $dateonlyarray = '', $newdata = false, $DB = false)
{
return $this->initialize($data, $likefields, $fieldstoselectarray, $orderby, $noindex, $whereappend, $dateonlyarray, $newdata, $DB);
}
function FindName($uid)
{
return $this->Find($fieldname = 'uid', $contenttosearch = $uid, $exact = true)[0]['name'];
}
}
function FILE_CONTENT_QUICKMULTIPLESEARCH($DB = false)
{
return new FILE_CONTENT_QUICKMULTIPLESEARCH($DB);
}
class DB_FILE_LIST
{
public $DB = false;
public $tablename = 'file_list';
use BASICDB;
public function __construct($DB = false)
{
if (!$DB) {
$DB = DB();
}
if (!$DB) {
return false;
}
if ($DB) {
$this->DB = $DB;
}
if (!$this->tablename) {
return false;
}
}
function insertFileListintoDB($contentuid, $filename, $description = '', $tags = '', $categories = '', $added = '', $addedby = '', $hidden = 0)
{
if (!$contentuid or !$filename) {
return false;
}
if (!$addedby) {
global $CurrentUserUID;
$addedby = $CurrentUserUID;
if (!$addedby) {
$addedby = CurrentUserUID();
}
}
if (!$added) {
$added = serverdatetimesql();
}
$modified = serverdatetimesql();
if (!$description) {
$description = '';
}
if (!$tags) {
$tags = '';
}
if (!$categories) {
$categories = '';
}
$hash = generatenewhash($this->tablename);
$categories = tryjsonencode($categories);
$datenow = serverdatetimesql();
$tags = tryjsonencode($tags);
$data = [
'hashkey' => $hash,
'contentuid' => $contentuid,
'useruid_access_list' => tryjsonencode(''),
'filename' => $filename,
'description' => $description,
'tags' => $tags,
'categories' => $categories,
'created' => $added,
'modified' => $modified,
'hidden' => $hidden,
'addedby' => $addedby
];
global $DB;
if (!$DB) {
$DB = DB();
}
$key = insertintodb($DB, 'file_list', $data);
return $key;
}
function getFileListDetails($uidorhashkey, $fieldstoselect = '')
{
return getDetailsbyUIDorHashkey($this->tablename, $uidorhashkey, $fieldstoselect);
}
function getFileListUIDbyHashkey($hashkey)
{
if (!$hashkey or is_numeric($hashkey)) {
return false;
}
return $this->getFileListDetails($hashkey, ['uid', 'hashkey'])['uid'] ?? false;
}
function getFileListHashkeybyUID($UID)
{
if (!$UID or !is_numeric($UID)) {
return false;
}
return $this->getFileListDetails($UID, ['uid', 'hashkey'])['hashkey'] ?? false;
}
function InsertFileListandFileContentFromFile($filelocation, $filename, $toDBtrueifFalseSateLocationtoSave = false, $description = '', $tags = '', $categories = '', $hidden = 0)
{
if (!$filelocation and !$filename) {
return false;
}
$contentuid = DB_FILE_CONTENT()->NewFileContent($filelocation, $filename, $toDBtrueifFalseSateLocationtoSave);
$filelistuid = $this->insertFileListintoDB($contentuid, $filename, $description, $tags, $categories, $added = '', $addedby = '', $hidden);
return $filelistuid;
}
}
function DB_FILE_LIST($DB = false)
{
return new DB_FILE_LIST($DB);
}
class FILE_LIST_QUICKMULTIPLESEARCH
{
use DBClassSearch;
public $data;
public $tablename = 'file_list';
private $parentidresults = [];
public $DB;
public function __construct($data = [], $likefields = [], $fieldstoselectarray = '', $orderby = '', $noindex = 0, $whereappend = ' and ', $dateonlyarray = '', $newdata = false, $DB = false)
{
return $this->initialize($data, $likefields, $fieldstoselectarray, $orderby, $noindex, $whereappend, $dateonlyarray, $newdata, $DB);
}
function FindName($uid)
{
return $this->Find($fieldname = 'uid', $contenttosearch = $uid, $exact = true)[0]['name'];
}
}
function FILE_LIST_QUICKMULTIPLESEARCH($DB = false)
{
return new FILE_CONTENT_QUICKMULTIPLESEARCH($DB);
}