making files table generic + adding file type (ext)

This commit is contained in:
lutranf committed 2014-11-28 17:26:36 +01:00
1 parent f9b4505626
commit b6ebf33a02
4 files changed
+23 -17

No files matched your search

+17 -14
View File
@@ -247,7 +247,7 @@ class Databap extends PhpObject
self::STEP_TABLE => array(MySqlManager::getId(self::PROC_TABLE), 'description'), 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::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::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::SEARCH_TABLE => array('id_item', 'refer_id', 'type', 'keywords'),
self::ART_TABLE => array('title', 'link', 'date', 'first_name', 'last_name', 'email'), 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') 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", 'last_name' => "varchar(20) NOT NULL",
'nickname' => "varchar(50) NOT NULL", 'nickname' => "varchar(50) NOT NULL",
'email' => "varchar(100) NOT NULL", 'email' => "varchar(100) NOT NULL",
'hash' => "varchar(32) NOT NULL",
'pass' => "varchar(255) NOT NULL", 'pass' => "varchar(255) NOT NULL",
'auth_cookie' => "varchar(255) NOT NULL", 'auth_cookie' => "varchar(255) NOT NULL",
'active' => "tinyint(1) DEFAULT ".self::MEMBER_ACTIVE, 'active' => "tinyint(1) DEFAULT ".self::MEMBER_ACTIVE,
@@ -283,7 +284,8 @@ class Databap extends PhpObject
MySqlManager::getText(self::COMP_TABLE) => "varchar(30) NOT NULL", MySqlManager::getText(self::COMP_TABLE) => "varchar(30) NOT NULL",
'logo' => "varchar(20) NOT NULL", 'logo' => "varchar(20) NOT NULL",
'date' => "date NOT NULL", 'date' => "date NOT NULL",
'system' => "varchar(3)" 'system' => "varchar(3)",
'extension' => "varchar(10)"
); );
$asOptions['constraints'] = array $asOptions['constraints'] = array
( (
@@ -913,22 +915,23 @@ class Databap extends PhpObject
$iDbDocId = $this->oMySql->insertRow(self::DOC_TABLE, $asData); $iDbDocId = $this->oMySql->insertRow(self::DOC_TABLE, $asData);
//Load doc files into database //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) foreach($asDocs as $asDocInfo)
{ {
//insert into database //insert into database
$sFileName = $asDocInfo['name']; $sFileName = $asDocInfo['name'];
$asFileInfo = pathinfo($sFileName);
$asDocData['description'] = $asDocInfo['desc']; $asDocData['description'] = $asDocInfo['desc'];
$asDocData['file_name'] = $sFileName; $asDocData['hash'] = $asFileInfo['filename'];;
$asDocData['extension'] = $asFileInfo['extension'];
$iDbImageId = $this->oMySql->insertRow(self::FILE_TABLE, $asDocData); $iDbImageId = $this->oMySql->insertRow(self::FILE_TABLE, $asDocData);
//Move file //Move file
$sTempFilePath = self::DOC_TMP_FOLDER.$sFileName; $sTempFilePath = self::DOC_TMP_FOLDER.$sFileName;
$sFilePath = self::DOC_FOLDER.$sFileName; $sFilePath = self::DOC_FOLDER.$sFileName;
if(!rename($sTempFilePath, $sFilePath)) if(!rename($sTempFilePath, $sFilePath)) $this->addError('Unmoveable file : '.$sTempFilePath);
{
$this->addError('Unmoveable file : '.$sTempFilePath);
}
} }
//Add this doc to the group //Add this doc to the group
@@ -958,11 +961,12 @@ class Databap extends PhpObject
$asDoc['company'] = $asUser['company']; $asDoc['company'] = $asUser['company'];
//Extract doc files //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) foreach($asFiles as $asFile)
{ {
$asDoc['files'][$asFile[MySqlManager::getId(self::FILE_TABLE)]] = array('description'=>self::getDescriptionFormat($asFile['description']), $asDoc['files'][$asFile[$sFileIdCol]] = array( 'description' => self::getDescriptionFormat($asFile['description']),
'ext'=>pathinfo($asFile['file_name'], PATHINFO_EXTENSION)); 'ext' => $asFile['extension']);
} }
return self::jsonExport($asDoc); return self::jsonExport($asDoc);
@@ -1057,10 +1061,9 @@ class Databap extends PhpObject
{ {
//File info //File info
$asFileInfo = $this->oMySql->selectRow(self::FILE_TABLE, $iFileId); $asFileInfo = $this->oMySql->selectRow(self::FILE_TABLE, $iFileId);
$sFileName = $asFileInfo['file_name']; $sFileExt = $asFileInfo['extension'];
$sFileExt = mb_strtolower(pathinfo($sFileName, PATHINFO_EXTENSION));
$sFileDesc = str_replace("&", '\&', str_replace(" ", '\ ', addslashes($asFileInfo['description']))).'.'.$sFileExt; $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; $sFileFullPath = dirname($_SERVER['SCRIPT_FILENAME'])."/".$sFilePath;
$sResult = ''; $sResult = '';
+1 -2
View File
@@ -57,9 +57,8 @@ class SearchEngine extends PhpObject
$asWords = array($asItemData['first_name'], $asItemData['last_name'], $asItemData['title']); $asWords = array($asItemData['first_name'], $asItemData['last_name'], $asItemData['title']);
break; break;
case Databap::DOC_TYPE: case Databap::DOC_TYPE:
$sItemIdCol = MySqlManager::getId(Databap::DOC_TABLE);
$asItemData = $this->oMySql->selectRow(Databap::DOC_TABLE, $iItemId); $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; $asWords = array('desc'=>$asItemData['description'], 'title'=>$asItemData['title']) + $asItemFilesData;
break; break;
case Databap::TABLE_TYPE: case Databap::TABLE_TYPE:
+1 -1
View File
@@ -1,4 +1,4 @@
@CHARSET "UTF-8";/*! @CHARSET "UTF-8";/*!
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url("style/fontawesome-webfont.eot?v=4.2.0");src:url("style/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("style/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("style/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("style/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:0.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eeeeee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#ffffff}.fa-inline{margin-right:5px}.fa-10{font-size:1.1111111111111111em;line-height:0.9166666666666666em;vertical-align:-5%}.fa-20{font-size:1.2222222222222222em;line-height:0.8333333333333333em;vertical-align:-10%}.fa-30{font-size:1.3333333333333333em;line-height:0.75em;vertical-align:-15%}.fa-40{font-size:1.4444444444444444em;line-height:0.6666666666666666em;vertical-align:-20%}.fa-60,a.button .fa{font-size:1.6666666666666666em;line-height:0.5em;vertical-align:-30%}.fa-c-c:before,.fa-c-code:before{content:"\f121"}.fa-c-procedure:before,.fa-c-proc:before,.fa-c-p:before{content:"\f0cb"}.fa-c-table:before,.fa-c-t:before{content:"\f0ce"}.fa-c-documentation:before,.fa-c-doc:before,.fa-c-d:before{content:"\f15b"}.fa-c-article:before,.fa-c-art:before,.fa-c-a:before{content:"\f14c"}.fa-c-note:before{content:"\f0fa"}.fa-c-list:before{content:"\f02d"}.fa-c-profile:before{content:"\f007"}.fa-c-chat:before{content:"\f086"}.fa-c-news:before{content:"\f0e7"}.fa-c-version:before{content:"\f005"}.fa-c-details:before{content:"\f112"}.fa-c-bug:before{content:"\f188"}.fa-c-date:before{content:"\f073"}.fa-c-git:before{content:"\f1d3"}.fa-c-afk:before{content:"\f017"}.fa-c-comment{color:#04357B}.fa-c-comment:before{content:"\f075"}.fa-c-options:before{content:"\f085"}.fa-c-param:before{content:"\f1de"}.fa-c-wip:before{content:"\f013"}.fa-c-rss:before{content:"\f09e"}.fa-c-logmeout:before,.fa-c-logout:before{content:"\f08b"}.fa-c-fold{color:#04357B}.fa-c-fold:before{content:"\f191"}.fa-c-success:before,.fa-c-ok:before,.available .fa:before{content:"\f00c"}.fa-c-warning{color:#EFAB00}.fa-c-warning:before{content:"\f071"}.fa-c-error{color:red}.fa-c-error:before{content:"\f071"}.fa-c-ko{color:red}.fa-c-ko:before,.unavailable .fa:before{content:"\f00d"}.fa-c-search:before{content:"\f002"}.fa-c-welcome:before{content:"\f015"}.fa-c-loading:Line truncated */@font-face{font-family:'FontAwesome';src:url("style/fontawesome-webfont.eot?v=4.2.0");src:url("style/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("style/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("style/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("style/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:0.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eeeeee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#ffffff}.fa-inline{margin-right:5px}.fa-10{font-size:1.1111111111111111em;line-height:0.9166666666666666em;vertical-align:-5%}.fa-20{font-size:1.2222222222222222em;line-height:0.8333333333333333em;vertical-align:-10%}.fa-30{font-size:1.3333333333333333em;line-height:0.75em;vertical-align:-15%}.fa-40{font-size:1.4444444444444444em;line-height:0.6666666666666666em;vertical-align:-20%}.fa-60,a.button .fa{font-size:1.6666666666666666em;line-height:0.5em;vertical-align:-30%}.fa-c-c:before,.fa-c-code:before{content:"\f121"}.fa-c-procedure:before,.fa-c-proc:before,.fa-c-p:before{content:"\f0cb"}.fa-c-table:before,.fa-c-t:before{content:"\f0ce"}.fa-c-documentation:before,.fa-c-doc:before,.fa-c-d:before{content:"\f15b"}.fa-c-article:before,.fa-c-art:before,.fa-c-a:before{content:"\f14c"}.fa-c-note:before{content:"\f0fa"}.fa-c-list:before{content:"\f02d"}.fa-c-profile:before{content:"\f007"}.fa-c-chat:before{content:"\f086"}.fa-c-news:before{content:"\f0e7"}.fa-c-version:before{content:"\f005"}.fa-c-details:before{content:"\f112"}.fa-c-bug:before{content:"\f188"}.fa-c-date:before{content:"\f073"}.fa-c-git:before{content:"\f1d3"}.fa-c-afk:before{content:"\f017"}.fa-c-comment{color:#04357B}.fa-c-comment:before{content:"\f075"}.fa-c-options:before{content:"\f085"}.fa-c-param:before{content:"\f1de"}.fa-c-wip:before{content:"\f013"}.fa-c-rss:before{content:"\f09e"}.fa-c-logmeout:before,.fa-c-logout:before{content:"\f08b"}.fa-c-fold{color:#04357B}.fa-c-fold:before{content:"\f191"}.fa-c-success:before,.fa-c-ok:before,.available .fa:before{content:"\f00c"}.fa-c-warning{color:#EFAB00}.fa-c-warning:before{content:"\f071"}.fa-c-error{color:red}.fa-c-error:before{content:"\f071"}.fa-c-ko{color:red}.fa-c-ko:before,.unavailable .fa:before{content:"\f00d"}.fa-c-search:before{content:"\f002"}.fa-c-welcome:before{content:"\f015"}.fa-c-loading:Line truncated
+4
View File
@@ -1227,6 +1227,10 @@
padding:20px 10px 10px 0px; padding:20px 10px 10px 0px;
} }
#doc #doc_links a.button {
margin-top:5px;
}
/* Table */ /* Table */
#table #system { #table #system {