mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-10-10 19:12:42 +00:00
add new attribute types 'document', 'folder', 'user', 'group'
This commit is contained in:
parent
619f90b4df
commit
9117f8f64a
|
@ -130,7 +130,8 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
||||||
* the value set and later turned into a multi value attribute.
|
* the value set and later turned into a multi value attribute.
|
||||||
*/
|
*/
|
||||||
$sep = substr($this->_value, 0, 1);
|
$sep = substr($this->_value, 0, 1);
|
||||||
$vsep = $this->_attrdef->getValueSetSeparator();
|
if(!($vsep = $this->_attrdef->getValueSetSeparator()))
|
||||||
|
$vsep = $sep;
|
||||||
if($sep == $vsep)
|
if($sep == $vsep)
|
||||||
return(explode($sep, substr($this->_value, 1)));
|
return(explode($sep, substr($this->_value, 1)));
|
||||||
else
|
else
|
||||||
|
@ -156,13 +157,18 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
||||||
$db = $this->_dms->getDB();
|
$db = $this->_dms->getDB();
|
||||||
|
|
||||||
if($this->_attrdef->getMultipleValues()) {
|
if($this->_attrdef->getMultipleValues()) {
|
||||||
|
$valuesetstr = $this->_attrdef->getValueSet();
|
||||||
/* Multiple values without a value set is not allowed */
|
/* Multiple values without a value set is not allowed */
|
||||||
if(!$valuesetstr = $this->_attrdef->getValueSet())
|
/* No need to have valueset anymore. If none is given, the values are
|
||||||
|
* expected to be separated by ','
|
||||||
|
if(!$valuesetstr)
|
||||||
return false;
|
return false;
|
||||||
|
*/
|
||||||
$valueset = $this->_attrdef->getValueSetAsArray();
|
$valueset = $this->_attrdef->getValueSetAsArray();
|
||||||
|
|
||||||
if(is_array($values)) {
|
if(is_array($values)) {
|
||||||
if($values) {
|
if($values) {
|
||||||
|
if($valueset) {
|
||||||
$error = false;
|
$error = false;
|
||||||
foreach($values as $v) {
|
foreach($values as $v) {
|
||||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||||
|
@ -171,16 +177,24 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
||||||
return false;
|
return false;
|
||||||
$valuesetstr = $this->_attrdef->getValueSet();
|
$valuesetstr = $this->_attrdef->getValueSet();
|
||||||
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
||||||
|
} else {
|
||||||
|
$value = ','.implode(',', $values);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$value = '';
|
$value = '';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if($values) {
|
if($values) {
|
||||||
|
if($valuesetstr) {
|
||||||
if($valuesetstr[0] != $values[0])
|
if($valuesetstr[0] != $values[0])
|
||||||
$values = explode($valuesetstr[0], $values);
|
$values = explode($valuesetstr[0], $values);
|
||||||
else
|
else
|
||||||
$values = explode($valuesetstr[0], substr($values, 1));
|
$values = explode($valuesetstr[0], substr($values, 1));
|
||||||
|
} else {
|
||||||
|
$values = explode(',', substr($values, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
if($valueset) {
|
||||||
$error = false;
|
$error = false;
|
||||||
foreach($values as $v) {
|
foreach($values as $v) {
|
||||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||||
|
@ -188,6 +202,9 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
||||||
if($error)
|
if($error)
|
||||||
return false;
|
return false;
|
||||||
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
||||||
|
} else {
|
||||||
|
$value = ','.implode(',', $values);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$value = $values;
|
$value = $values;
|
||||||
}
|
}
|
||||||
|
@ -395,6 +412,15 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
||||||
const type_email = '6';
|
const type_email = '6';
|
||||||
const type_date = '7';
|
const type_date = '7';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Addtional data types of an attribute representing objects in seeddms
|
||||||
|
*/
|
||||||
|
const type_folder = '101';
|
||||||
|
const type_document = '102';
|
||||||
|
//const type_documentcontent = '103';
|
||||||
|
const type_user = '104';
|
||||||
|
const type_group = '105';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The object type for which a attribute may be used
|
* The object type for which a attribute may be used
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -238,6 +238,9 @@ class SeedDMS_Core_Object { /* {{{ */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if($attrdef->getMultipleValues() && is_array($value)) {
|
if($attrdef->getMultipleValues() && is_array($value)) {
|
||||||
|
if(in_array($attrdef->getType(), array(SeedDMS_Core_AttributeDefinition::type_user, SeedDMS_Core_AttributeDefinition::type_group)))
|
||||||
|
$sep = ',';
|
||||||
|
else
|
||||||
$sep = substr($attrdef->getValueSet(), 0, 1);
|
$sep = substr($attrdef->getValueSet(), 0, 1);
|
||||||
$value = $sep.implode($sep, $value);
|
$value = $sep.implode($sep, $value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
- clear the save content list and latest content in SeedDMS_Core_Document after
|
- clear the save content list and latest content in SeedDMS_Core_Document after
|
||||||
a version has been deleted.
|
a version has been deleted.
|
||||||
- new method SeedDMS_Core_Document::isLatestVersion()
|
- new method SeedDMS_Core_Document::isLatestVersion()
|
||||||
|
- add new attribute types 'document', 'folder', 'user', 'group'
|
||||||
</notes>
|
</notes>
|
||||||
<contents>
|
<contents>
|
||||||
<dir baseinstalldir="SeedDMS" name="/">
|
<dir baseinstalldir="SeedDMS" name="/">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user