mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
NEW Add field to store text content of files
This commit is contained in:
parent
14fc219fc9
commit
576df86eac
|
|
@ -2211,7 +2211,7 @@ function addFileIntoDatabaseIndex($dir, $file, $fullpathorig = '', $mode = 'uplo
|
|||
$keywords = $matches[1];
|
||||
}
|
||||
if (preg_match('/<pre>(.*)<\/pre>/si', $txt, $matches)) {
|
||||
$textforfulltextindex = dol_string_nospecial($matches[1]);
|
||||
$textforfulltextindex = dol_string_nounprintableascii($matches[1], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2234,14 +2234,15 @@ function addFileIntoDatabaseIndex($dir, $file, $fullpathorig = '', $mode = 'uplo
|
|||
// $keywords = $matches[1];
|
||||
//}
|
||||
//if (preg_match('/<pre>(.*)<\/pre>/si', $txt, $matches)) {
|
||||
// $textforfulltextindex = dol_string_nospecial($matches[1]);
|
||||
// $textforfulltextindex = dol_string_nounprintableascii($matches[1], 0);
|
||||
//}
|
||||
$textforfulltextindex = $txt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ecmfile->description = $textforfulltextindex;
|
||||
$ecmfile->description = 'File content generated by '.$cmd;
|
||||
$ecmfile->content = $textforfulltextindex;
|
||||
$ecmfile->keywords = $keywords;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,6 +96,11 @@ class EcmFiles extends CommonObject
|
|||
*/
|
||||
public $keywords;
|
||||
|
||||
/**
|
||||
* @var string content
|
||||
*/
|
||||
public $content;
|
||||
|
||||
/**
|
||||
* @var string cover
|
||||
*/
|
||||
|
|
@ -159,20 +164,21 @@ class EcmFiles extends CommonObject
|
|||
public $fields = array(
|
||||
'rowid' => array('type' => 'integer', 'label' => 'TechnicalID', 'enabled' => 1, 'position' => 1, 'notnull' => 1, 'visible' => 0, 'noteditable' => 1, 'index' => 1, 'css' => 'left', 'comment' => "Id"),
|
||||
'ref' => array('type' => 'varchar(128)', 'label' => 'Ref', 'enabled' => 1, 'position' => 20, 'notnull' => 1, 'visible' => -1, 'index' => 1, 'searchall' => 1, 'showoncombobox' => 1, 'validate' => 1, 'comment' => "contains hash from filename+filepath"),
|
||||
'label' => array('type' => 'varchar(128)', 'label' => 'Label', 'enabled' => 1, 'position' => 30, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1, 'comment' => "contains hash of file content"),
|
||||
'share' => array('type' => 'varchar(128)', 'label' => 'Share', 'enabled' => 1, 'position' => 40, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1, 'comment' => "contains hash for file sharing"),
|
||||
'label' => array('type' => 'varchar(128)', 'label' => 'Label', 'enabled' => 1, 'position' => 30, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1, 'comment' => "contains hash of file content"),
|
||||
'share' => array('type' => 'varchar(128)', 'label' => 'Share', 'enabled' => 1, 'position' => 40, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1, 'comment' => "contains hash for file sharing"),
|
||||
'entity' => array('type' => 'integer', 'label' => 'Entity', 'default' => '1', 'enabled' => 1, 'visible' => -2, 'notnull' => -1, 'position' => 50, 'index' => 1),
|
||||
'filepath' => array('type' => 'varchar(255)', 'label' => 'FilePath', 'enabled' => 1, 'position' => 60, 'notnull' => 0, 'visible' => 0, 'searchall' => 0, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "relative to dolibarr document dir. Example module/def"),
|
||||
'filename' => array('type' => 'varchar(255)', 'label' => 'FileName', 'enabled' => 1, 'position' => 70, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "file name only without any directory"),
|
||||
'src_object_type' => array('type' => 'varchar(64)', 'label' => 'SourceType', 'enabled' => 1, 'position' => 80, 'notnull' => 0, 'visible' => 0, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "Source object type ('proposal', 'invoice', ...)"),
|
||||
'filepath' => array('type' => 'varchar(255)', 'label' => 'FilePath', 'enabled' => 1, 'position' => 60, 'notnull' => 0, 'visible' => 0, 'searchall' => 0, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "relative to dolibarr document dir. Example module/def"),
|
||||
'filename' => array('type' => 'varchar(255)', 'label' => 'FileName', 'enabled' => 1, 'position' => 70, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "file name only without any directory"),
|
||||
'src_object_type' => array('type' => 'varchar(64)', 'label' => 'SourceType', 'enabled' => 1, 'position' => 80, 'notnull' => 0, 'visible' => 0, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "Source object type ('proposal', 'invoice', ...)"),
|
||||
'src_object_id' => array('type' => 'integer', 'label' => 'SourceID', 'default' => '1', 'enabled' => 1, 'visible' => 0, 'notnull' => 1, 'position' => 90, 'index' => 1, 'comment' => "Source object id"),
|
||||
'fullpath_orig' => array('type' => 'varchar(750)', 'label' => 'FullPathOrig', 'enabled' => 1, 'position' => 100, 'notnull' => 0, 'visible' => 0, 'searchall' => 0, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "full path of original filename, when file is uploaded from a local computer"),
|
||||
'fullpath_orig' => array('type' => 'varchar(750)', 'label' => 'FullPathOrig', 'enabled' => 1, 'position' => 100, 'notnull' => 0, 'visible' => 0, 'searchall' => 0, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "full path of original filename, when file is uploaded from a local computer"),
|
||||
'description' => array('type' => 'text', 'label' => 'Description', 'enabled' => 1, 'visible' => 0, 'position' => 110),
|
||||
'keywords' => array('type' => 'varchar(750)', 'label' => 'Keywords', 'enabled' => 1, 'position' => 120, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "list of keywords, separated with comma. Must be limited to most important keywords."),
|
||||
'keywords' => array('type' => 'varchar(750)', 'label' => 'Keywords', 'enabled' => 1, 'position' => 120, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "list of keywords, separated with comma. Must be limited to most important keywords."),
|
||||
'content' => array('type' => 'html', 'label' => 'Content', 'enabled' => 'getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")', 'position' => 120, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'csslist' => 'tdoverflowmax200', 'help' => "Text content of file", 'showoncombobox' => 2, 'validate' => 1,'comment' => "Text content if option to store txt content was set."),
|
||||
'cover' => array('type' => 'text', 'label' => 'Cover', 'enabled' => 1, 'visible' => 0, 'position' => 130, 'comment' => "is this file a file to use for a cover"),
|
||||
'position' => array('type' => 'integer', 'label' => 'Position', 'default' => '1', 'enabled' => 1, 'visible' => -2, 'notnull' => 1, 'position' => 140, 'index' => 1, 'comment' => "position of file among others"),
|
||||
'gen_or_uploaded' => array('type' => 'varchar(12)', 'label' => 'GenOrUpload', 'enabled' => 1, 'position' => 150, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1,'comment' => "'generated' or 'uploaded'"),
|
||||
'extraparams' => array('type' => 'varchar(255)', 'label' => 'ExtraParams', 'enabled' => 1, 'position' => 160, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'help' => "Help text", 'showoncombobox' => 2, 'validate' => 1, 'comment' => "for stocking other parameters with json format"),
|
||||
'gen_or_uploaded' => array('type' => 'varchar(12)', 'label' => 'GenOrUpload', 'enabled' => 1, 'position' => 150, 'notnull' => 0, 'visible' => -1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1,'comment' => "'generated' or 'uploaded'"),
|
||||
'extraparams' => array('type' => 'varchar(255)', 'label' => 'ExtraParams', 'enabled' => 1, 'position' => 160, 'notnull' => 0, 'visible' => 1, 'searchall' => 1, 'css' => 'minwidth300', 'cssview' => 'wordbreak', 'showoncombobox' => 2, 'validate' => 1, 'comment' => "for stocking other parameters with json format"),
|
||||
'date_c' => array('type' => 'datetime', 'label' => 'DateCreation', 'enabled' => 1, 'visible' => -1, 'position' => 170),
|
||||
'tms' => array('type' => 'timestamp', 'label' => 'DateModification', 'enabled' => 1, 'visible' => -1, 'notnull' => 1, 'position' => 175),
|
||||
'fk_user_c' => array('type' => 'integer:User:user/class/user.class.php', 'label' => 'UserAuthor', 'enabled' => 1, 'position' => 510, 'notnull' => 1, 'visible' => -2, 'foreignkey' => 'user.rowid',),
|
||||
|
|
@ -311,6 +317,9 @@ class EcmFiles extends CommonObject
|
|||
$sql .= 'fullpath_orig,';
|
||||
$sql .= 'description,';
|
||||
$sql .= 'keywords,';
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$sql .= 'content,';
|
||||
}
|
||||
$sql .= 'cover,';
|
||||
$sql .= 'position,';
|
||||
$sql .= 'gen_or_uploaded,';
|
||||
|
|
@ -332,6 +341,9 @@ class EcmFiles extends CommonObject
|
|||
$sql .= ' '.(!isset($this->fullpath_orig) ? 'NULL' : "'".$this->db->escape($this->fullpath_orig)."'").',';
|
||||
$sql .= ' '.(!isset($this->description) ? 'NULL' : "'".$this->db->escape($this->description)."'").',';
|
||||
$sql .= ' '.(!isset($this->keywords) ? 'NULL' : "'".$this->db->escape($this->keywords)."'").',';
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$sql .= ' '.(!isset($this->content) ? 'NULL' : "'".$this->db->escape($this->content)."'").',';
|
||||
}
|
||||
$sql .= ' '.(!isset($this->cover) ? 'NULL' : "'".$this->db->escape($this->cover)."'").',';
|
||||
$sql .= ' '.((int) $maxposition).',';
|
||||
$sql .= ' '.(!isset($this->gen_or_uploaded) ? 'NULL' : "'".$this->db->escape($this->gen_or_uploaded)."'").',';
|
||||
|
|
@ -414,6 +426,9 @@ class EcmFiles extends CommonObject
|
|||
$sql .= " t.fullpath_orig,";
|
||||
$sql .= " t.description,";
|
||||
$sql .= " t.keywords,";
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$sql .= " t.content,";
|
||||
}
|
||||
$sql .= " t.cover,";
|
||||
$sql .= " t.position,";
|
||||
$sql .= " t.gen_or_uploaded,";
|
||||
|
|
@ -492,6 +507,9 @@ class EcmFiles extends CommonObject
|
|||
$this->fullpath_orig = $obj->fullpath_orig;
|
||||
$this->description = $obj->description;
|
||||
$this->keywords = $obj->keywords;
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$this->content = $obj->content;
|
||||
}
|
||||
$this->cover = $obj->cover;
|
||||
$this->position = $obj->position;
|
||||
$this->gen_or_uploaded = $obj->gen_or_uploaded;
|
||||
|
|
@ -553,6 +571,9 @@ class EcmFiles extends CommonObject
|
|||
$sql .= " t.fullpath_orig,";
|
||||
$sql .= " t.description,";
|
||||
$sql .= " t.keywords,";
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$sql .= " t.content,";
|
||||
}
|
||||
$sql .= " t.cover,";
|
||||
$sql .= " t.position,";
|
||||
$sql .= " t.gen_or_uploaded,";
|
||||
|
|
@ -625,6 +646,9 @@ class EcmFiles extends CommonObject
|
|||
$line->fullpath_orig = $obj->fullpath_orig;
|
||||
$line->description = $obj->description;
|
||||
$line->keywords = $obj->keywords;
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$line->content = $obj->content;
|
||||
}
|
||||
$line->cover = $obj->cover;
|
||||
$line->position = $obj->position;
|
||||
$line->gen_or_uploaded = $obj->gen_or_uploaded;
|
||||
|
|
@ -727,6 +751,9 @@ class EcmFiles extends CommonObject
|
|||
$sql .= ' fullpath_orig = '.(isset($this->fullpath_orig) ? "'".$this->db->escape($this->fullpath_orig)."'" : "null").',';
|
||||
$sql .= ' description = '.(isset($this->description) ? "'".$this->db->escape($this->description)."'" : "null").',';
|
||||
$sql .= ' keywords = '.(isset($this->keywords) ? "'".$this->db->escape($this->keywords)."'" : "null").',';
|
||||
if (getDolGlobalString("MAIN_USE_FULL_TEXT_INDEXATION")) {
|
||||
$sql .= ' content = '.(isset($this->content) ? "'".$this->db->escape($this->content)."'" : "null").',';
|
||||
}
|
||||
$sql .= ' cover = '.(isset($this->cover) ? "'".$this->db->escape($this->cover)."'" : "null").',';
|
||||
$sql .= ' position = '.(isset($this->position) ? $this->db->escape($this->position) : "0").',';
|
||||
$sql .= ' gen_or_uploaded = '.(isset($this->gen_or_uploaded) ? "'".$this->db->escape($this->gen_or_uploaded)."'" : "null").',';
|
||||
|
|
@ -1061,8 +1088,9 @@ class EcmFiles extends CommonObject
|
|||
$this->filename = 'myspecimenfilefile.pdf';
|
||||
$this->filepath = '/aaa/bbb';
|
||||
$this->fullpath_orig = 'c:/file on my disk.pdf';
|
||||
$this->description = 'This is a long description of file';
|
||||
$this->description = 'This is a description of the file';
|
||||
$this->keywords = 'key1,key2';
|
||||
$this->content = 'This is the text content of the file';
|
||||
$this->cover = '1';
|
||||
$this->position = 5;
|
||||
$this->gen_or_uploaded = 'uploaded';
|
||||
|
|
@ -1117,6 +1145,12 @@ class EcmFilesLine extends CommonObjectLine
|
|||
* @var string
|
||||
*/
|
||||
public $keywords;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public $content;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -51,6 +51,10 @@ ALTER TABLE llx_hrm_evaluation MODIFY COLUMN modelpdf varchar(255) DEFAULT NULL;
|
|||
|
||||
-- V21 migration
|
||||
|
||||
ALTER TABLE llx_ecm_files MODIFY COLUMN description varchar(255);
|
||||
ALTER TABLE llx_ecm_files MODIFY COLUMN cover varchar(32);
|
||||
ALTER TABLE llx_ecm_files ADD COLUMN content text;
|
||||
|
||||
ALTER TABLE llx_product DROP FOREIGN KEY fk_product_default_warehouse;
|
||||
|
||||
DROP TABLE llx_contratdet_log;
|
||||
|
|
|
|||
|
|
@ -30,9 +30,10 @@ CREATE TABLE llx_ecm_files
|
|||
src_object_id integer, -- Source object id
|
||||
agenda_id integer, -- Id of the event created at same time than the upload of the file
|
||||
fullpath_orig varchar(750), -- full path of original filename, when file is uploaded from a local computer
|
||||
description text,
|
||||
description varchar(255),
|
||||
keywords varchar(750), -- list of keywords, separated with comma. Must be limited to most important keywords.
|
||||
cover text, -- is this file a file to use for a cover
|
||||
content text,
|
||||
cover varchar(32), -- is this file a file to use for a cover
|
||||
position integer, -- position of file among others
|
||||
gen_or_uploaded varchar(12), -- 'generated' or 'uploaded'
|
||||
extraparams varchar(255), -- for stocking other parameters with json format
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user