initial: bootstrap from BukidBountyApp base
This commit is contained in:
304
app/Http/Controllers/Helpers/Legacy/Backup/DBEXT/FILESDB.php
Normal file
304
app/Http/Controllers/Helpers/Legacy/Backup/DBEXT/FILESDB.php
Normal file
@@ -0,0 +1,304 @@
|
||||
<?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);
|
||||
}
|
||||
Reference in New Issue
Block a user