SeedDMS_Corepear.php.netDocument management systemSeedDMS is a web based document management system (DMS). This is
the core of it, providing the basic functionality to create/update and delete
folders and documents. It also contains a user and group managmentUwe Steinmannsteinmuwe@steinmann.cxyes2020-09-295.1.215.1.21stablestableGPL License
- SeedDMS_Folder_DMS::getAccessList() and getDefaultAccess() do not return fals anymore if the parent does not exists. They just stop inheritance.
4.3.01.5.43.0.03.0.0stablestable2010-04-27GPL License
Initial release
3.2.03.2.0stablestable2011-07-23GPL License
New release
2012-02-083.3.03.3.0betastableGPL License
- added methods to find and repair errors in document and folder records
- removed sendmail parameter from some methods in LetoDMS_Core_Document
- do not use some of the temporay tables anymore
- SetFetchMode(ADODB_FETCH_ASSOC) in LetoDMS_Core_DatabaseAccess::connect()
2012-03-213.3.13.3.1betastableGPL License
- new release
2012-03-223.3.23.3.2betastableGPL License
- fixed bug in LetoDMS_Core_Document::getDir()
2012-03-283.3.33.3.3betastableGPL License
- fixed bug in LetoDMS_Core_Document::getPath()
2012-04-113.3.43.3.4betastableGPL License
- fixed bug in LetoDMS_Core_DocumentFile::getPath()
2012-04-303.3.53.3.5betastableGPL License
- minor corrections
2012-07-163.3.63.3.6betastableGPL License
- no changes, just keep same version as letodms application
2012-08-253.3.73.3.7betastableGPL License
- no changes, just keep same version as letodms application
2012-09-163.3.83.3.8betastableGPL License
- more sql injection protection in LetoDMS_Core_User
2012-09-193.3.93.3.9betastableGPL License
- version update to be in sync with letodms application
2012-12-133.4.03.4.0betastableGPL License
- added PDO database driver, several sql changes for better compatiblity
- fixed bug when adding a new document category
- make sure the database remains consistent even in case of errors
2013-01-244.0.0pre14.0.0betastableGPL License
- added database transactions
- new workflow
- replaced old var declaration
2013-02-064.0.0pre24.0.0betastableGPL License
- lots of bug fixes
- replaced more of old var declaration
- more code documentation
2013-02-084.0.0pre34.0.0betastableGPL License
- minor bug fixes
2013-02-114.0.0pre44.0.0betastableGPL License
- calculate checksum for document versions
- some bug fixes
- some more documentation
- added new methods SeedDMS_Core_Document::getReadUserList() and
SeedDMS_Core_Folder::getReadUserList() which replaces getApproversList()
- fixed sql statement in getReadUserList() for sqlite3
2013-02-144.0.0pre54.0.0betastableGPL License
- changed name from letodms to seeddms
- fixed SeedDMS_Database::TableList()
2013-02-204.0.0RC14.0.0betastableGPL License
- minor bugfixes
2013-02-264.0.04.0.0betastableGPL License
- minor bugfixes
2013-03-284.1.04.1.0betastableGPL License
- minor bugfixes
2013-04-054.1.14.1.1betastableGPL License
- stay in sync with seeddms application
2013-04-054.1.24.1.0stablestableGPL License
- set propper folderList of sub folders after moving a folder
2013-04-084.1.34.1.0stablestableGPL License
- stay in sync with seeddms application
2013-04-224.2.04.2.0stablestableGPL License
- fixed bug in SeedDMS_Core_DocumentContent::addIndApp()
2013-04-304.2.14.2.1stablestableGPL License
- fixed bug in SeedDMS_Core_DocumentContent::addIndApp()
2013-05-174.2.24.2.1stablestableGPL License
- admins can be added as reviewer/approver again
2013-09-054.3.04.3.0stablestableGPL License
- various small corrections
- comment of version is no longer taken from document if version comment is empty
- passing an array of users to SeedDMЅ_Core_DMS::search() instead of a single user ist now allowed
- turn on foreign key constraints for sqlite3
- SeedDMЅ_Core_Folder::getPath() can handle a subfolder treated as a root folder
2013-11-274.3.24.3.2stablestableGPL License
- new method SeedDMS_Core_Folder::isSubFolder()
- check for subFolder in SeedDMS_Core_Folder::setParent()
- new methods SeedDMS_Core_DMS::checkFolders() and SeedDMS_Core_DMS::checkDocuments()
2014-02-014.3.34.3.3stablestableGPL License
- SeedDMS_Folder::getDocuments() and SeedDMS_Folder::getSubFolders() do not
do any sorting if $orderby is not set.
- database hostname can have port seperated by ':'
- make all functions in SeedDMS_Core_File static (fixes problem with php 5.5.x)
2014-02-014.3.44.3.4stablestableGPL License
- fix handling of multivalue attributes
2014-03-044.3.54.3.5stablestableGPL License
no changes
2014-03-184.3.64.3.6stablestableGPL License
- add optional parameters $publiconly=false and $user=null to SeedDMS_Core_Document::getDocumentLinks()
- add new method SeedDMS_Core_Document::getReverseDocumentLinks()
2014-03-214.3.74.3.7stablestableGPL License
no changes
2014-04-094.3.84.3.8stablestableGPL License
- new method SeedDMS_Core_DMS::getStatisticalData()
2014-07-304.3.94.3.9stablestableGPL License
- SeedDMS_Core_KeywordCategory::getKeywordLists() sorts keywords aphabetically
- SeedDMS_Core_DMS::addUser() doesn't throw an error if sql_mode is set to STRICT_TRANS_TABLES and pwdexpiration is not set to a valid date.
2014-10-224.3.104.3.10stablestableGPL License
new release
2014-11-134.3.114.3.11stablestableGPL License
- fixed saving multivalue attributes
- add method SeedDMS_Core_Attribute::getValueAsArray()
2014-11-174.3.124.3.12stablestableGPL License
- fix searching folders with multivalue attributes
2014-11-274.3.134.3.13stablestableGPL License
- fix searching for attributes
- add some more documentation
- SeedDMS_Core_DMS::getDocumentCategories() returns categories sorted by name (Bug #181)
- new methode SeedDMS_Core_Document::replaceContent() which replaces the content of a version.
4.3.144.3.14stablestableGPL License
- add missing start transaction in SeedDMD_Core_Folder::remove()
- SeedDMD_Core_Folder::isSubFolder() doesn't compare object instances anymore (Bug #194)
2015-02-124.3.154.3.15stablestableGPL License
users returned by SeedDMS_Core_DMS::getAllUsers() have language and theme set again
2015-03-204.3.164.3.16stablestableGPL License
no changes
2015-03-274.3.174.3.17stablestableGPL License
clean workflow log when a document version was deleted
2015-06-094.3.184.3.18stablestableGPL License
- add optional paramter $msg to SeedDMS_Core_DocumentContent::verifyStatus()
- add method SeedDMS_Core_DMS::getDuplicateDocumentContent()
2015-06-264.3.194.3.19stablestableGPL License
- add optional paramter $noclean to clearAccessList(), setDefaultAccess(), setInheritAccess()
- clearAccessList() will clean up the notifier list
- new method cleanNotifyList()
2015-06-264.3.204.3.20stablestableGPL License
- add method SeedDMS_Core_DMS::checkDate()
- add method SeedDMS_Core_Document::setDate()
- add method SeedDMS_Core_Folder::setDate()
- date can be passed to SeedDMS_Core_DocumentContent::setStatus()
- add method SeedDMS_Core_DocumentContent::rewriteStatusLog()
- add method SeedDMS_Core_DocumentContent::rewriteReviewLog()
- add method SeedDMS_Core_DocumentContent::rewriteApprovalLog()
- access rights for guest are also taken into account if set in an acl. Previously guest could gain read rights even if the access was probibited
by a group or user right
2015-09-284.3.214.3.21stablestableGPL License
- add method SeedDMS_Core_Database::getCurrentTimestamp()
- add method SeedDMS_Core_Database::getCurrentDatetime()
- user getCurrentTimestamp() and getCurrentDatetime() whenever possible
2015-11-094.3.224.3.22stablestableGPL License
- fix sql statement to reset password
- pass some more information for timeline
2016-01-214.3.234.3.23stablestableGPL License
- new method SeedDMS_Core_DMS::createDump()
- minor improvements int SeedDMS_Core_Document::getReadAccessList()
2016-01-224.3.244.3.24stablestableGPL License
- make sure boolean attribute is saved as 0/1
- add SeedDMS_Core_User::[g|s]etMandatoryWorkflows()
- add SeedDMS_Core_User::getNotifications()
- add SeedDMS_Core_Group::getNotifications()
- SeedDMS_Core_DMS::getNotificationsByGroup() and
SeedDMS_Core_DMS::getNotificationsByUser() are deprecated
- SeedDMS_Core_DocumentCategory::getDocumentsByCategory() now returns the documents
- add SeedDMS_Core_Group::getWorkflowStatus()
- SeedDMS_Core_User::getDocumentsLocked() sets locking user propperly
2016-01-225.0.05.0.0stablestableGPL License
- classes can be overloaded
- clean workflow log when a document version was deleted
2016-01-214.3.244.3.24stablestableGPL License
- make sure boolean attribute is saved as 0/1
- add SeedDMS_Core_User::[g|s]etMandatoryWorkflows()
- add SeedDMS_Core_User::getNotifications()
- add SeedDMS_Core_Group::getNotifications()
- SeedDMS_Core_DMS::getNotificationsByGroup() and
SeedDMS_Core_DMS::getNotificationsByUser() are deprecated
- SeedDMS_Core_DocumentCategory::getDocumentsByCategory() now returns the documents
- add SeedDMS_Core_Group::getWorkflowStatus()
- SeedDMS_Core_User::getDocumentsLocked() sets locking user propperly
2016-03-084.3.254.3.25stablestableGPL License
- rename SeedDMS_Core_Group::getNotificationsByGroup() to getNotifications()
- use __construct() for all constructors
- fix setting multi value attributes for versions
2016-04-044.3.264.3.26stablestableGPL License
- add more callbacks
2016-04-264.3.274.3.27stablestableGPL License
- callbacks can have more then one user function
- fix some sql statements, because they didn't work with mysql 5.7.5 anymore
2016-08-244.3.284.3.28stablestableGPL License
- SeedDMЅ_Core_DMS::search() searches also comment of document version
2016-09-064.3.294.3.29stablestableGPL License
- SeedDMЅ_Core_Object::getAttributes() orders attributes by name of attribute definition
- SeedDMЅ_Core_Workflow::addTransition() force reload of transition list after adding a
- SeedDMЅ_Core_Document::rewrite[Review|Approval]Log() will also copy file if it exists
- add method SeedDMЅ_Core_Document::rewriteWorkflowLog()
2016-10-074.3.304.3.30stablestableGPL License
- new method SeedDMЅ_Core_AttributeDefinition::getValueSetSeparator()
- trim each value of a value set before saving the complete value set as a string
2016-11-024.3.314.3.31stablestableGPL License
- new method SeedDMЅ_Core_WorkflowAction::getTransitions()
- new method SeedDMЅ_Core_WorkflowState::getTransitions()
- new method SeedDMЅ_Core_AttributeDefinition::parseValue()
- add check for cycles in workflow SeedDMS_Core_Workflow::checkForCycles()
2017-01-124.3.324.3.32stablestableGPL License
- order groups by name returned by getReadAccessList()
- add optional parameter to SeedDMS_Core_DMS::filterDocumentLinks()
- SeedDMS_Core_DMS::search() can search for document/folder id
2017-02-224.3.334.3.33stablestableGPL License
- SeedDMЅ_Core_DMS::getTimeline() no longer returns duplicate documents
- SeedDMЅ_Core_Document::addContent() sets workflow after status was set
- SeedDMЅ_Core_Keyword::setOwner() fix sql statement
- SeedDMЅ_Core_User::setFullname() minor fix in sql statement
2017-02-284.3.344.3.34stablestableGPL License
SeedDMS_Core_DMS::getDuplicateDocumentContent() returns complete document
2017-07-114.3.354.3.35stablestableGPL License
do not sort some temporary tables anymore, because it causes an error in mysql if sql_mode=only_full_group_by is set
2017-03-224.3.364.3.36stablestableGPL License
- fix sql statement for creating temp. tables (sqlite)
2018-02-144.3.374.3.37stablestableGPL License
- SeedDMS_Core_DMS::search() finds documents without a status log
2016-01-225.0.15.0.1stablestableGPL License
- all changes from 4.3.24 merged
2016-04-265.0.25.0.2stablestableGPL License
- all changes from 4.3.25 merged
2016-04-045.0.35.0.3stablestableGPL License
- use classname from SeedDMS_Core_DMS::_classnames for SeedDMS_Core_DocumentContent
- all changes from 4.3.26 merged
2016-05-035.0.45.0.4stablestableGPL License
- all changes from 4.3.27 merged
2016-08-095.0.55.0.5stablestableGPL License
- all changes from 4.3.28 merged
2016-09-065.0.65.0.6stablestableGPL License
- all changes from 4.3.29 merged
2016-11-025.0.75.0.7stablestableGPL License
- all changes from 4.3.30 merged
- better attribute value checking
2016-11-025.0.85.0.8stablestableGPL License
- all changes from 4.3.31 merged
2016-11-025.0.95.0.9stablestableGPL License
- all changes from 4.3.32 merged
2017-02-205.0.105.0.10stablestableGPL License
- all changes from 4.3.33 merged
2017-02-285.0.115.0.11stablestableGPL License
- all changes from 4.3.34 merged
2017-03-235.0.125.0.12stablestableGPL License
all sql statements can be logged to a file
do not sort some temporary tables anymore, because it causes an error in mysql if sql_mode=only_full_group_by is set
2017-07-135.0.135.0.13stablestableGPL License
- all changes from 4.3.36 merged
2017-02-205.1.05.1.0stablestableGPL License
- added postgres support
2017-02-205.1.15.1.1stablestableGPL License
- all changes from 5.0.11 merged
2017-03-235.1.25.1.2stablestableGPL License
SeedDMS_Core_DMS::filterDocumentFiles() returns also documents which are not public
if the owner tries to access them
Check return value of onPreRemove[Document|Folder], return from calling method if bool
Add SeedDMS_Core_DMS::getDocumentList()
Limit number of duplicate files to 1000
Add hook on(Pre|Post)RemoveContent
Add hook onAttributeValidate
2017-08-235.1.35.1.3stablestableGPL License
- SeedDMS_Core_Document::getNotifyList() and SeedDMS_Core_Folder::getNotifyList()
returns just users which are not disabled
- add new methods removeFromProcesses(), getWorkflowsInvolved(), getKeywordCategories() to SeedDMS_Core_User
- add methods isMandatoryReviewerOf() and isMandatoryApproverOf()
- add methods transferDocumentsFolders() and transferEvents()
- add method SeedDMS_Core_DMS::getDocumentByOriginalFilename()
2017-09-055.1.45.1.4stablestableGPL License
- add virtual access mode for document links and attachments plus callbacks to
check access mode in a hook
- add new method SeedDMS_Core_DMS::getDocumentsExpired()
- all changes from 5.0.14 merged
2017-11-075.1.55.1.5stablestableGPL License
- use views instead of temp. tables
- add list of expired documents in SeedDMS_Core_DMS::getDocumentList()
- add methods to set comment, name, public, version of document files
- add method SeedDMS_Core_Document::transferToUser()
- SeedDMS_Core_Document::addDocumentFile() returns object of file
- add SeedDMS_Core_DocumentFile::setDate()
- remove SeedDMS_Core_DocumentCategory::addCategory() and getCategories()
- add optional parameters $limit and $offset to SeedDMS_Core_Folder::getDocuments()
and SeedDMS_Core_Folder::getSubFolders()
- getInstance() returns now null instead of false if the object was not found in the db
- add new methods SeedDMS_Core_Document::addCategories() and
SeedDMS_Core_Document::removeCategories()
2018-02-145.1.65.1.6stablestableGPL License
add SeedDMS_Core_Folder::getDocumentsMinMax()
add lots of DocBlocks from merge request #8
add SeedDMS_Core_AttributeDefinition::removeValue()
2018-04-055.1.75.1.7stablestableGPL License
just bump version
2018-07-025.1.85.1.8stablestableGPL License
SeedDMS_Core_DMS::search() returns false in case of an error
do not use views in DBAccessPDO by default anymore, use temp. tables
SeedDMS_Core_Document::getNotifyList() has new parameter to include disabled user in list
fix possible sql injection in SeedDMS_Core_User
2018-11-135.1.95.1.9stablestableGPL License
context can be passed to getAccessMode()
call hook in SeedDMS_Core_Folder::getAccessMode()
new optional parameter $listguest for SeedDMS_Core_Document::getReadAccessList()
remove deprecated methods SeedDMS_Core_Document::convert(), SeedDMS_Core_Document::wasConverted(), SeedDMS_Core_Document::viewOnline(), SeedDMS_Core_Document::getUrl()
2019-04-045.1.105.1.10stablestableGPL License
fix php warning if workflow state doesn' have next transition
add method SeedDMS_Core_DatabaseAccess::setLogFp()
2019-05-035.1.115.1.11stablestableGPL License
???
2019-07-015.1.125.1.12stablestableGPL License
- parameter $orderby passed to SeedDMS_Core_Folder::getDocuments() and SeedDMS_Core_Folder::getSubFolders() can be a string, but only the first char is evaluated
- SeedDMS_Core_DMS::search() excepts parameters as array, added orderby
- add SeedDMS_Core_Folder::hasSubFolderByName()
- fix SeedDMS_Core_Folder::hasDocumentByName() which returned an int > 0 if documents
has been loaded before and even if the document searching for was not among them.
- add new method SeedDMS_Core_Folder::empty()
2019-08-075.1.135.1.13stablestableGPL License
- add decorators
- add new methods SeedDMS_Core_Document::isType(), SeedDMS_Core_Folder::isType(), SeedDMS_Core_DocumentContent::isType(). Use them instead of checking the class name.
- skip a fileType with just a '.'
2020-02-175.1.145.1.14stablestableGPL License
- speed up SeedDMS_Core_Folder::getSubFolders() SeedDMS_Core_Folder::getDocuments() by minimizing the number of sql queries.
2020-03-025.1.155.1.15stablestableGPL License
- no changes, just keep same version as seeddms application
2020-04-145.1.165.1.16stablestableGPL License
- fix call of hooks in SeedDMS_Core
- add variable lasterror in SeedDMS_Core_DMS which can be set by hooks to pass an
error msg to the calling application
- better error checking in SeedDMS_Core_Document::addDocumentFile()
2020-05-225.1.175.1.17stablestableGPL License
- add new callback onSetStatus
- fix SeedDMS_Core_DMS::getExpiredDocuments(), sql statement failed because temp. tables were not created
- add parameters $orderdir, $orderby, $update to SeedDMS_Core::getExpiredDocuments()
2020-05-285.1.185.1.18stablestableGPL License
- fixed remaining todos
- fixed parsing of file size in SeedDMS_Core_File::parse_filesize()
- fix SeedDMS_Core_DMS::getDocumentByOriginalFilename()
2020-07-285.1.195.1.19stablestableGPL License
- add method SeedDMS_Core_Document::setParent() as an alias for setFolder()
- clear the save content list and latest content in SeedDMS_Core_Document after
a version has been deleted.
- new method SeedDMS_Core_Document::isLatestVersion()
- add new attribute types 'document', 'folder', 'user', 'group'
2020-09-295.1.205.1.20stablestableGPL License
- SeedDMS_Core_DMS::getDocumentList() returns false, if an unknown list is passed
- SeedDMS_Core_Document::getDocumentFiles() has new parameter to select only those files attached to a specific version of the document
- removing a document version will not remove attachments of the document anymore
- set dms of new user instances in SeedDMS_Core_Group