making files table generic + adding file type (ext)

This commit is contained in:
lutranf
2014-11-28 17:26:36 +01:00
parent f9b4505626
commit b6ebf33a02
5 changed files with 24 additions and 18 deletions

View File

@@ -247,7 +247,7 @@ class Databap extends PhpObject
self::STEP_TABLE => array(MySqlManager::getId(self::PROC_TABLE), 'description'),
self::IMG_TABLE => array(MySqlManager::getId(self::PROC_TABLE), MySqlManager::getId(self::STEP_TABLE), 'description', 'file_name'),
self::DOC_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'title', 'description', 'refer_id'),
self::FILE_TABLE => array(MySqlManager::getId(self::DOC_TABLE), 'description', 'file_name'),
self::FILE_TABLE => array('id_item', 'type', 'description', 'hash', 'extension'),
self::SEARCH_TABLE => array('id_item', 'refer_id', 'type', 'keywords'),
self::ART_TABLE => array('title', 'link', 'date', 'first_name', 'last_name', 'email'),
self::TABL_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'title', 'description', 'system', 'keywords', 'refer_id')
@@ -258,6 +258,7 @@ class Databap extends PhpObject
'last_name' => "varchar(20) NOT NULL",
'nickname' => "varchar(50) NOT NULL",
'email' => "varchar(100) NOT NULL",
'hash' => "varchar(32) NOT NULL",
'pass' => "varchar(255) NOT NULL",
'auth_cookie' => "varchar(255) NOT NULL",
'active' => "tinyint(1) DEFAULT ".self::MEMBER_ACTIVE,
@@ -283,7 +284,8 @@ class Databap extends PhpObject
MySqlManager::getText(self::COMP_TABLE) => "varchar(30) NOT NULL",
'logo' => "varchar(20) NOT NULL",
'date' => "date NOT NULL",
'system' => "varchar(3)"
'system' => "varchar(3)",
'extension' => "varchar(10)"
);
$asOptions['constraints'] = array
(
@@ -913,22 +915,23 @@ class Databap extends PhpObject
$iDbDocId = $this->oMySql->insertRow(self::DOC_TABLE, $asData);
//Load doc files into database
$asDocData[MySqlManager::getId(self::DOC_TABLE)] = $iDbDocId;
$asDocData['id_item'] = $iDbDocId;
$asDocData['type'] = self::DOC_TYPE;
foreach($asDocs as $asDocInfo)
{
//insert into database
$sFileName = $asDocInfo['name'];
$asFileInfo = pathinfo($sFileName);
$asDocData['description'] = $asDocInfo['desc'];
$asDocData['file_name'] = $sFileName;
$asDocData['hash'] = $asFileInfo['filename'];;
$asDocData['extension'] = $asFileInfo['extension'];
$iDbImageId = $this->oMySql->insertRow(self::FILE_TABLE, $asDocData);
//Move file
$sTempFilePath = self::DOC_TMP_FOLDER.$sFileName;
$sFilePath = self::DOC_FOLDER.$sFileName;
if(!rename($sTempFilePath, $sFilePath))
{
$this->addError('Unmoveable file : '.$sTempFilePath);
}
if(!rename($sTempFilePath, $sFilePath)) $this->addError('Unmoveable file : '.$sTempFilePath);
}
//Add this doc to the group
@@ -958,11 +961,12 @@ class Databap extends PhpObject
$asDoc['company'] = $asUser['company'];
//Extract doc files
$asFiles = $this->oMySql->selectRows(array('from'=>self::FILE_TABLE, 'constraint'=>array('id_doc'=>$iDocId)));
$sFileIdCol = MySqlManager::getId(self::FILE_TABLE);
$asFiles = $this->oMySql->selectRows(array('from'=>self::FILE_TABLE, 'constraint'=>array('id_item'=>$iDocId, 'type'=>self::DOC_TYPE)));
foreach($asFiles as $asFile)
{
$asDoc['files'][$asFile[MySqlManager::getId(self::FILE_TABLE)]] = array('description'=>self::getDescriptionFormat($asFile['description']),
'ext'=>pathinfo($asFile['file_name'], PATHINFO_EXTENSION));
$asDoc['files'][$asFile[$sFileIdCol]] = array( 'description' => self::getDescriptionFormat($asFile['description']),
'ext' => $asFile['extension']);
}
return self::jsonExport($asDoc);
@@ -1057,10 +1061,9 @@ class Databap extends PhpObject
{
//File info
$asFileInfo = $this->oMySql->selectRow(self::FILE_TABLE, $iFileId);
$sFileName = $asFileInfo['file_name'];
$sFileExt = mb_strtolower(pathinfo($sFileName, PATHINFO_EXTENSION));
$sFileExt = $asFileInfo['extension'];
$sFileDesc = str_replace("&", '\&', str_replace(" ", '\ ', addslashes($asFileInfo['description']))).'.'.$sFileExt;
$sFilePath = self::DOC_FOLDER.$sFileName;
$sFilePath = self::DOC_FOLDER.$asFileInfo['hash'].'.'.$asFileInfo['extension'];
$sFileFullPath = dirname($_SERVER['SCRIPT_FILENAME'])."/".$sFilePath;
$sResult = '';

View File

@@ -57,9 +57,8 @@ class SearchEngine extends PhpObject
$asWords = array($asItemData['first_name'], $asItemData['last_name'], $asItemData['title']);
break;
case Databap::DOC_TYPE:
$sItemIdCol = MySqlManager::getId(Databap::DOC_TABLE);
$asItemData = $this->oMySql->selectRow(Databap::DOC_TABLE, $iItemId);
$asItemFilesData = $this->oMySql->selectRows(array('select'=>'description', 'from'=>Databap::FILE_TABLE, 'constraint'=>array($sItemIdCol=>$iItemId)));
$asItemFilesData = $this->oMySql->selectRows(array('select'=>'description', 'from'=>Databap::FILE_TABLE, 'constraint'=>array('id_item'=>$iItemId, 'type'=>Databap::DOC_TYPE)));
$asWords = array('desc'=>$asItemData['description'], 'title'=>$asItemData['title']) + $asItemFilesData;
break;
case Databap::TABLE_TYPE:

File diff suppressed because one or more lines are too long

View File

@@ -1227,6 +1227,10 @@
padding:20px 10px 10px 0px;
}
#doc #doc_links a.button {
margin-top:5px;
}
/* Table */
#table #system {