letodms-3.3.11+dfsg.1/0000755000175000017500000000000012056057152015027 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/CHANGELOG-1.8.10000644000175000017500000001260412040235117016677 0ustar franciscofranciscoChangelog for LetoDMS version 1.8.1 - (C)2010 Matteo Lucarelli ================================================================================ REDESIGNED THE ORGANIZATION OF DATA FOLDER =============================== Now the data folder (where files are located) has a more efficient organization: data_dir / id / version.filetype This scheme makes backups much more intuitive (the folder name has corresponding to the id of the document, all versions and attached files are in the same folder. - Removed no longer needed tdbDirPath and tdlPathList - Removed no longer needed free path lookup functions - Modified sql create_tables.sql for changes to the DB in accordance with the new organization WARNING: This change makes the version incompatible with existing archives/DB but is required by the all thennew features (read ahead) The "UPDATE" folder contais two script for updating existing installations To update an existing archive: - Backup all (including DB) - Install the new DMS version - Install the "UPDATE" folder containing two files update.php and update.sql - Log in as administrator - Manually invoke the script (http://indirizzo/UPDATE/update.php - Remove the folder "UPDATE" If everything works well the old content has ben renamed "old" and can be removed (eg via ftp) ADDITION FILES ================================================================ Added the ability to upload additional files associated to a document (as attachments) these files are not versioned and are designed as accessories to the document (Eg the PDF version or reductions in the image). The files are associated with the document, not to version. NOTE: To add attachments the user must have write permission on the document The attachment can be removed by the user who added it or having total permissions BACKUP ================================================= ======================== Added some useful tools for backing up files and folders (real files, not the DB). Especially useful for working with entire folders which, being virtual, can not easily be backupped via ftp. There are three operations designed to be eventually applied in sequence. Data Backup versioning: Create for each document in a DMS folder a file containing the main versioning informations This allows you to make backup copies of which also contain information from the DB. This is meant to be performed before the creation of an archive, After creating the file versioning file can be viewed from out.ViewDocument Creating Archives: Creates a tar.gz file containing all files related to a specific DMS folder. The file is created in settings->_contentDir The file is constructed so that it can be unpacked again in the settings->_contentDir to restore removed files. In the page is presented the list of existing backup files which you can downloaded or delete Deleting files: you can delete from the server all the files related to a specific DMS folder and all its subfolders. By doing this you can free space on the server without removing the version information saved in the database that will be available for regular consultation. Having a backup deleted files can easily be restored when needed. All backups operations can be performed on the entire archive or only on a DMS folder. All backups operations are accessible only to administrators. OTHER FEATURES ================================================ ========== Added the possibility to change a approval/review already done. The editing is possible at any moment only to the user who made it. The time is retained (so you can understand subsequent amendments). The document status is updated automatically following a change. The editing is only possible on the latest version of the document. If a document expire date is set editing is only possible within that time Added delete_all_contents script. Cleaning DB tool for test use Proper content of some e-mail Added general information to the statistic page: - No. of documents - No. of folders - No. of files in every document - Number of total files - Total size of the archive Fixed the view of system notify list The comments related to the update opration (versione comment) are now editable Adjusted out.DefaultKeywords now equal to out.UserDefaultKeyword Added function formatted_size (view size in Bytes / Kb / Mb / Gb) in inc.Utils and applied where necessary Fixed a bug on documents cancellation (was not removed the corresponding list of notification) The files in data folder can be removed without cause errors in the DMS. When a file is not effectively present in out.ViewDocument displays a warning "file removed" and, of course, is no longer given the option to download. This feature can be used to free up space on the server, removing old files, while leaving available the corresponding version information. Fixed the view in out.AddSubFolder.php (default font size) Added icons for openoffice.org mime-type Added icons for some types of extensions (bz, dot, docx, etc.). Added (in inc.settings) option to disable the user administrator as a reviewer / approver (not listed) Remove the untranslated instructions "die" (replaced by UI:: exitError) Proper control permissions for internal links (related document): - The guest user can not add links - Users without write permission can only add links private - Add link publici the user must have write permission - To cancel link should be the user that added or have permission to total letodms-3.3.11+dfsg.1/drop-tables-innodb.sql0000644000175000017500000000202312040235117021220 0ustar franciscofranciscoDROP TABLE IF EXISTS `tblACLs`; DROP TABLE IF EXISTS `tblDocumentApproveLog`; DROP TABLE IF EXISTS `tblDocumentApprovers`; DROP TABLE IF EXISTS `tblDocumentReviewLog`; DROP TABLE IF EXISTS `tblDocumentReviewers`; DROP TABLE IF EXISTS `tblDocumentStatusLog`; DROP TABLE IF EXISTS `tblDocumentStatus`; DROP TABLE IF EXISTS `tblDocumentContent`; DROP TABLE IF EXISTS `tblDocumentLinks`; DROP TABLE IF EXISTS `tblDocumentFiles`; DROP TABLE IF EXISTS `tblDocumentLocks`; DROP TABLE IF EXISTS `tblDocuments`; DROP TABLE IF EXISTS `tblFolders`; DROP TABLE IF EXISTS `tblGroupMembers`; DROP TABLE IF EXISTS `tblGroups`; DROP TABLE IF EXISTS `tblKeywords`; DROP TABLE IF EXISTS `tblKeywordCategories`; DROP TABLE IF EXISTS `tblNotify`; DROP TABLE IF EXISTS `tblSessions`; DROP TABLE IF EXISTS `tblUserImages`; DROP TABLE IF EXISTS `tblUsers`; DROP TABLE IF EXISTS `tblDirPath`; DROP TABLE IF EXISTS `tblPathList`; DROP TABLE IF EXISTS `tblMandatoryReviewers`; DROP TABLE IF EXISTS `tblMandatoryApprovers`; DROP TABLE IF EXISTS `tblEvents`; letodms-3.3.11+dfsg.1/index.php0000644000175000017500000000224412040235117016641 0ustar franciscofrancisco_siteDefaultPage) && strlen($settings->_siteDefaultPage)>0 ? $settings->_siteDefaultPage : "out/out.ViewFolder.php")); ?> LetoDMS letodms-3.3.11+dfsg.1/utils/0000755000175000017500000000000012040235117016157 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/utils/letodms-xmldump0000755000175000017500000000010112040235117021230 0ustar franciscofrancisco#!/bin/sh /usr/bin/php -f /usr/share/letodms/utils/xmldump -- $* letodms-3.3.11+dfsg.1/utils/letodms-indexer0000755000175000017500000000010512040235117021204 0ustar franciscofrancisco#!/bin/sh /usr/bin/php -f /usr/share/letodms/utils/indexer.php -- $* letodms-3.3.11+dfsg.1/utils/xmldump.php0000644000175000017500000003176312040235117020370 0ustar franciscofrancisco]\n"; echo "\n"; echo "Description:\n"; echo " This program creates an xml dump of the whole or parts of the dms.\n"; echo "\n"; echo "Options:\n"; echo " -h, --help: print usage information and exit.\n"; echo " -v, --version: print version and exit.\n"; echo " --config: set alternative config file.\n"; } /* }}} */ function wrapWithCData($text) { /* {{{ */ if(preg_match("/[<>&]/", $text)) return(""); else return $text; } /* }}} */ $version = "0.0.1"; $shortoptions = "hv"; $longoptions = array('help', 'version', 'config:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); } /* Print help and exit */ if(isset($options['h']) || isset($options['help'])) { usage(); exit(0); } /* Print version and exit */ if(isset($options['v']) || isset($options['verѕion'])) { echo $version."\n"; exit(0); } /* Set alternative config file */ if(isset($options['config'])) { $settings = new Settings($options['config']); } else { $settings = new Settings(); } function tree($folder, $indent='') { global $index, $dms; echo $indent."getId()."\">\n"; echo $indent." ".wrapWithCData($folder->getName())."\n"; echo $indent." ".date('c', $folder->getDate())."\n"; echo $indent." ".$folder->getDefaultAccess()."\n"; echo $indent." ".$folder->inheritsAccess()."\n"; echo $indent." ".$folder->getSequence()."\n"; if($folder->getComment()) echo $indent." ".wrapWithCData($folder->getComment())."\n"; echo $indent." ".$folder->getOwner()->getId()."\n"; $subfolders = $folder->getSubFolders(); if($subfolders) { echo $indent." \n"; foreach($subfolders as $subfolder) { tree($subfolder, $indent.' '); } echo $indent." \n"; } $documents = $folder->getDocuments(); if($documents) { echo $indent." \n"; foreach($documents as $document) { $owner = $document->getOwner(); echo $indent." getId()."\">\n"; echo $indent." ".wrapWithCData($document->getName())."\n"; echo $indent." ".date('c', $document->getDate())."\n"; if($document->getExpires()) echo $indent." ".date('c', $document->getExpires())."\n"; echo $indent." ".$owner->getId()."\n"; if($document->getKeywords()) echo $indent." ".wrapWithCData($document->getKeywords())."\n"; echo $indent." ".$document->getDefaultAccess()."\n"; echo $indent." ".$document->inheritsAccess()."\n"; echo $indent." ".$document->getSequence()."\n"; if($document->isLocked()) { $user = $document->getLockingUser(); echo $indent." ".$user->getId()."\n"; } if($document->getComment()) echo $indent." ".wrapWithCData($document->getComment())."\n"; /* Check if acl is not inherited */ if(!$document->inheritsAccess()) { $acls = $document->getAccessList(); if($acls['groups'] || $acls['users']) { echo $indent." \n"; if($acls['users']) { foreach($acls['users'] as $acluser) { $user = $acluser->getUser(); echo $indent." \n"; echo $indent." ".$user->getId()."\n"; echo $indent." ".$acluser->getMode()."\n"; echo $indent." \n"; } } if($acls['groups']) { foreach($acls['groups'] as $aclgroup) { $group = $aclgroup->getGroup(); echo $indent." \n"; echo $indent." ".$group->getId()."\n"; echo $indent." ".$acluser->getMode()."\n"; echo $indent." \n"; } } echo $indent." \n"; } } $cats = $document->getCategories(); if($cats) { echo $indent." \n"; foreach($cats as $cat) { echo $indent." ".$cat->getId()."\n"; } echo $indent." \n"; } $versions = $document->getContent(); if($versions) { echo $indent." \n"; foreach($versions as $version) { $approvalStatus = $version->getApprovalStatus(); $reviewStatus = $version->getReviewStatus(); $owner = $version->getUser(); echo $indent." getVersion()."\">\n"; echo $indent." ".$version->getMimeType()."\n"; echo $indent." ".date('c', $version->getDate())."\n"; echo $indent." ".$version->getFileType()."\n"; echo $indent." ".wrapWithCData($version->getComment())."\n"; echo $indent." ".$owner->getId()."\n"; echo $indent." ".wrapWithCData($version->getOriginalFileName())."\n"; if($approvalStatus) { echo $indent." \n"; foreach($approvalStatus as $a) { echo $indent." \n"; echo $indent." ".$a['type']."\n"; echo $indent." ".$a['required']."\n"; echo $indent." ".$a['status']."\n"; echo $indent." ".wrapWithCData($a['comment'])."\n"; echo $indent." ".$a['userID']."\n"; echo $indent." ".$a['date']."\n"; echo $indent." \n"; } echo $indent." \n"; } if($reviewStatus) { echo $indent." \n"; foreach($reviewStatus as $a) { echo $indent." \n"; echo $indent." ".$a['type']."\n"; echo $indent." ".$a['required']."\n"; echo $indent." ".$a['status']."\n"; echo $indent." ".wrapWithCData($a['comment'])."\n"; echo $indent." ".$a['userID']."\n"; echo $indent." ".$a['date']."\n"; echo $indent." \n"; } echo $indent." \n"; } if(file_exists($dms->contentDir . $version->getPath())) { echo $indent." contentDir . $version->getPath())."\">\n"; if(filesize($dms->contentDir . $version->getPath()) < 1000000) { echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $version->getPath())), 76, "\n"); } echo $indent." \n"; } echo $indent." \n"; } echo $indent." \n"; } $files = $document->getDocumentFiles(); if($files) { echo $indent." \n"; foreach($files as $file) { $owner = $file->getUser(); echo $indent." getId()."\">\n"; echo $indent." ".wrapWithCData($file->getName())."\n"; echo $indent." ".$file->getMimeType()."\n"; echo $indent." ".date('c', $file->getDate())."\n"; echo $indent." ".wrapWithCData($file->getFileType())."\n"; echo $indent." ".$owner->getId()."\n"; echo $indent." ".wrapWithCData($file->getComment())."\n"; echo $indent." ".wrapWithCData($file->getOriginalFileName())."\n"; echo $indent." \n"; } echo $indent." \n"; } $links = $document->getDocumentLinks(); if($links) { echo $indent." \n"; foreach($links as $link) { $owner = $link->getUser(); $target = $link->getTarget(); echo $indent." getId()."\">\n"; echo $indent." ".$target->getId()."\n"; echo $indent." ".$owner->getId()."\n"; echo $indent." ".$link->isPublic()."\n"; echo $indent." \n"; } echo $indent." \n"; } $notifications = $document->getNotifyList(); if($notifications) { if($notifications['groups'] || $notifications['users']) { echo $indent." \n"; if($notifications['users']) { foreach($notifications['users'] as $user) { echo $indent." \n"; echo $indent." ".$user->getId()."\n"; echo $indent." \n"; } } if($notifications['groups']) { foreach($notifications['groups'] as $group) { echo $indent." \n"; echo $indent." ".$group->getId()."\n"; echo $indent." \n"; } } echo $indent." \n"; } } echo $indent." \n"; } echo $indent." \n"; } echo $indent."\n"; } $db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); $dms->setRootFolderID($settings->_rootFolderID); echo "\n"; echo "\n"; $users = $dms->getAllUsers(); if($users) { echo "\n"; foreach ($users as $user) { echo " getId()."\">\n"; echo " ".wrapWithCData($user->getLogin())."\n"; echo " ".wrapWithCData($user->getPwd())."\n"; echo " ".wrapWithCData($user->getEmail())."\n"; echo " ".wrapWithCData($user->getFullName())."\n"; echo " ".wrapWithCData($user->getComment())."\n"; echo " ".$user->getLanguage()."\n"; echo " ".$user->getTheme()."\n"; echo " ".$user->getRole()."\n"; echo " ".$user->isHidden()."\n"; if($image = $user->getImage()) { echo " \n"; echo " ".$image['mimetype']."\n"; echo " ".base64_encode($image['image'])."\n"; echo " \n"; } echo " \n"; } echo "\n"; } $groups = $dms->getAllGroups(); if($groups) { echo "\n"; foreach ($groups as $group) { echo " getId()."\">\n"; echo " ".wrapWithCData($user->getFullName())."\n"; echo " ".wrapWithCData($user->getComment())."\n"; $users = $group->getUsers(); if($users) { echo " \n"; foreach ($users as $user) { echo " ".$user->getId()."\n"; } echo " \n"; } echo " \n"; } echo "\n"; } $categories = $dms->getAllKeywordCategories(); if($categories) { echo "\n"; foreach($categories as $category) { $owner = $category->getOwner(); echo " getId()."\">\n"; echo " ".wrapWithCData($category->getName())."\n"; echo " ".$owner->getId()."\n"; if($keywords = $category->getKeywordLists()) { echo " \n"; foreach($keywords as $keyword) { echo " \n"; echo " ".wrapWithCData($keyword['keywords'])."\n"; echo " \n"; } echo " \n"; } echo " \n"; } echo "\n"; } $categories = $dms->getDocumentCategories(); if($categories) { echo "\n"; foreach($categories as $category) { echo " getId()."\">\n"; echo " ".wrapWithCData($category->getName())."\n"; echo " \n"; } echo "\n"; } $folder = $dms->getFolder($settings->_rootFolderID); tree($folder); echo "\n"; ?> letodms-3.3.11+dfsg.1/utils/adddoc.php0000644000175000017500000001161012040235117020105 0ustar franciscofrancisco] [-c ] [-k ] [-s ] [-n ] [-V ] [-s ] [-t ] [-h] [-v] -F -f \n"; echo "\n"; echo "Description:\n"; echo " This program uploads a file into a folder of LetoDMS.\n"; echo "\n"; echo "Options:\n"; echo " -h, --help: print usage information and exit.\n"; echo " -v, --version: print version and exit.\n"; echo " --config: set alternative config file.\n"; echo " -F : id of folder the file is uploaded to\n"; echo " -c : set comment for document\n"; echo " -C : set comment for version\n"; echo " -k : set keywords for file\n"; echo " -K : set categories for file\n"; echo " -s : set sequence for file (used for ordering files within a folder\n"; echo " -n : set name of file\n"; echo " -V : set version of file (defaults to 1).\n"; echo " -f : upload this file\n"; echo " -s : set sequence of file\n"; echo " -t set mimetype of file manually. Do not do that unless you know\n"; echo " what you do. If not set, the mimetype will be determined automatically.\n"; } /* }}} */ $version = "0.0.1"; $shortoptions = "F:c:C:k:K:s:V:f:n:t:hv"; $longoptions = array('help', 'version', 'config:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); } /* Print help and exit */ if(isset($options['h']) || isset($options['help'])) { usage(); exit(0); } /* Print version and exit */ if(isset($options['v']) || isset($options['verѕion'])) { echo $version."\n"; exit(0); } /* Set alternative config file */ if(isset($options['config'])) { $settings = new Settings($options['config']); } else { $settings = new Settings(); } if(isset($options['F'])) { $folderid = (int) $options['F']; } else { echo "Missing folder ID\n"; usage(); exit(1); } $comment = ''; if(isset($options['c'])) { $comment = $options['c']; } $version_comment = ''; if(isset($options['C'])) { $version_comment = $options['C']; } $keywords = ''; if(isset($options['k'])) { $keywords = $options['k']; } $categories = array(); if(isset($options['K'])) { $categorynames = explode(',', $options['K']); foreach($categorynames as $categoryname) { $cat = $dms->getDocumentCategoryByName($categoryname); if($cat) { $categories[] = $cat->getID(); } else { echo "Category '".$categoryname."' not found\n"; } } } $sequence = 0; if(isset($options['s'])) { $sequence = $options['s']; } $name = ''; if(isset($options['n'])) { $name = $options['n']; } $filename = ''; if(isset($options['f'])) { $filename = $options['f']; } else { usage(); exit(1); } $filetype = ''; if(isset($options['t'])) { $filetype = $options['t']; } $reqversion = 0; if(isset($options['V'])) { $reqversion = $options['V']; } if($reqversion<1) $reqversion=1; $db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); //$db->_conn->debug = 1; $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); $dms->setRootFolderID($settings->_rootFolderID); $dms->setEnableAdminRevApp($settings->_enableAdminRevApp); $dms->setEnableConverting($settings->_enableConverting); $dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes); /* Create a global user object */ $user = $dms->getUser(1); if(is_readable($filename)) { if(filesize($filename)) { $finfo = new finfo(FILEINFO_MIME); if(!$filetype) { $filetype = $finfo->file($filename); } } else { echo "File has zero size\n"; exit(1); } } else { echo "File is not readable\n"; exit(1); } $folder = $dms->getFolder($folderid); if (!is_object($folder)) { echo "Could not find specified folder\n"; exit(1); } if ($folder->getAccessMode($user) < M_READWRITE) { echo "Not sufficient access rights\n"; exit(1); } if (!is_numeric($sequence)) { echo "Sequence must be numeric\n"; exit(1); } //$expires = ($_POST["expires"] == "true") ? mktime(0,0,0, sanitizeString($_POST["expmonth"]), sanitizeString($_POST["expday"]), sanitizeString($_POST["expyear"])) : false; $expires = false; if(!$name) $name = basename($filename); $filetmp = $filename; $reviewers = array(); $approvers = array(); $res = $folder->addDocument($name, $comment, $expires, $user, $keywords, $categories, $filetmp, basename($filename), '', $filetype, $sequence, $reviewers, $approvers, $reqversion, $version_comment); if (is_bool($res) && !$res) { echo "Could not add document to folder\n"; exit(1); } ?> letodms-3.3.11+dfsg.1/utils/indexer.php0000644000175000017500000000475012040235117020334 0ustar franciscofrancisco]\n"; echo "\n"; echo "Description:\n"; echo " This program recreates the full text index of LetoDMS.\n"; echo "\n"; echo "Options:\n"; echo " -h, --help: print usage information and exit.\n"; echo " -v, --version: print version and exit.\n"; echo " --config: set alternative config file.\n"; } /* }}} */ $version = "0.0.1"; $shortoptions = "hv"; $longoptions = array('help', 'version', 'config:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); } /* Print help and exit */ if(isset($options['h']) || isset($options['help'])) { usage(); exit(0); } /* Print version and exit */ if(isset($options['v']) || isset($options['verѕion'])) { echo $version."\n"; exit(0); } /* Set alternative config file */ if(isset($options['config'])) { $settings = new Settings($options['config']); } else { $settings = new Settings(); } function tree($folder, $indent='') { global $index, $dms; echo $indent."D ".$folder->getName()."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { tree($subfolder, $indent.' '); } $documents = $folder->getDocuments(); foreach($documents as $document) { echo $indent." ".$document->getId().":".$document->getName()."\n"; if(!($hits = $index->find('document_id:'.$document->getId()))) { $index->addDocument(new LetoDMS_Lucene_IndexedDocument($dms, $document)); } else { $hit = $hits[0]; $created = (int) $hit->getDocument()->getFieldValue('created'); if($created >= $document->getDate()) { echo $indent." Document unchanged\n"; } else { if($index->delete($hit->id)) { $index->addDocument(new LetoDMS_Lucene_IndexedDocument($dms, $document)); } } } } } $db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); $dms->setRootFolderID($settings->_rootFolderID); $index = Zend_Search_Lucene::create($settings->_luceneDir); $folder = $dms->getFolder($settings->_rootFolderID); tree($folder); $index->commit(); ?> letodms-3.3.11+dfsg.1/utils/letodms-adddoc0000755000175000017500000000010412040235117020763 0ustar franciscofrancisco#!/bin/sh /usr/bin/php -f /usr/share/letodms/utils/adddoc.php -- $* letodms-3.3.11+dfsg.1/utils/letodms-createfolder0000755000175000017500000000011212040235117022203 0ustar franciscofrancisco#!/bin/sh /usr/bin/php -f /usr/share/letodms/utils/createfolder.php -- $* letodms-3.3.11+dfsg.1/utils/createfolder.php0000644000175000017500000000553112040235117021333 0ustar franciscofrancisco] [-c ] [-n ] [-s ] [-h] [-v] -F \n"; echo "\n"; echo "Description:\n"; echo " This program creates a new folder in LetoDMS.\n"; echo "\n"; echo "Options:\n"; echo " -h, --help: print usage information and exit.\n"; echo " -v, --version: print version and exit.\n"; echo " --config: set alternative config file.\n"; echo " -F : id of parent folder\n"; echo " -c : set comment for file\n"; echo " -n : set name of the folder\n"; echo " -s : set sequence of folder\n"; } /* }}} */ $version = "0.0.1"; $shortoptions = "F:c:s:n:hv"; $longoptions = array('help', 'version', 'config:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); } /* Print help and exit */ if(isset($options['h']) || isset($options['help'])) { usage(); exit(0); } /* Print version and exit */ if(isset($options['v']) || isset($options['verѕion'])) { echo $version."\n"; exit(0); } /* Set alternative config file */ if(isset($options['config'])) { $settings = new Settings($options['config']); } else { $settings = new Settings(); } if(isset($options['F'])) { $folderid = (int) $options['F']; } else { echo "Missing parent folder ID\n"; usage(); exit(1); } $comment = ''; if(isset($options['c'])) { $comment = $options['c']; } $sequence = 0; if(isset($options['s'])) { $sequence = $options['s']; } $name = ''; if(isset($options['n'])) { $name = $options['n']; } $db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $db->_conn->debug = 1; $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); $dms->setRootFolderID($settings->_rootFolderID); $dms->setGuestID($settings->_guestID); $dms->setEnableGuestLogin($settings->_enableGuestLogin); $dms->setEnableAdminRevApp($settings->_enableAdminRevApp); $dms->setEnableConverting($settings->_enableConverting); $dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes); /* Create a global user object */ $user = $dms->getUser(1); $folder = $dms->getFolder($folderid); if (!is_object($folder)) { echo "Could not find specified folder\n"; exit(1); } if ($folder->getAccessMode($user) < M_READWRITE) { echo "Not sufficient access rights\n"; exit(1); } if (!is_numeric($sequence)) { echo "Sequence must be numeric\n"; exit(1); } $res = $folder->addSubFolder($name, $comment, $user, $sequence); if (is_bool($res) && !$res) { echo "Could not add folder\n"; exit(1); } ?> letodms-3.3.11+dfsg.1/languages/0000755000175000017500000000000012040235120016757 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Czech/0000755000175000017500000000000012040235120020013 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Czech/lang.inc0000644000175000017500000010477612040235120021446 0ustar franciscofranciscoPozor: Akci nelze vrátit zpět."; $text["confirm_rm_document"] = "Skutečně chcete odstranit dokument \"[documentname]\"?
Buďte opatrní: Tuto činnost není možné vrátit zpět."; $text["confirm_rm_dump"] = "Skutečně chcete odstranit soubor \"[dumpname]\"?
Pozor: Akce je nevratná."; $text["confirm_rm_event"] = "Skutečně chcete odstranit akci \"[name]\"?
Pozor: Akci nelze vrátit zpìt."; $text["confirm_rm_file"] = "Skutečně chcete odstranit soubor \"[name]\" - \"[documentname]\"?
Pozor: Akci nelze vrátit zpìt."; $text["confirm_rm_folder"] = "Skutečně chcete odstranit \"[foldername]\" a jeho obsah?
Buďte opatrní: Tuto činnost nené možné vrátit zpět."; $text["confirm_rm_folder_files"] = "Skutečně chcete odstranit všechny soubory podadresáře z \"[foldername]\" ?
Buďte opatrní: Tuto akci nelze vrátit zpět."; $text["confirm_rm_group"] = "Skutečně chcete odstranit skupinu \"[groupname]\"?
Pozor: Akce je nevratná."; $text["confirm_rm_log"] = "Skutečně chcete odstranit LOG soubor \"[logname]\"?
Pozor: Akci nelze vrátit zpět."; $text["confirm_rm_user"] = "Skutečně chcete odstranit uživatele \"[username]\"?
Pozor: Akce je nevratná."; $text["confirm_rm_version"] = "Skutečně chcete odstranit verzi [version] dokumentu \"[documentname]\"?
Buďte opatrní: Tuto činnost není možné vrátit zpět."; $text["content"] = "Domů"; $text["continue"] = "Pokračovat"; $text["create_fulltext_index"] = "Create fulltext index"; $text["create_fulltext_index_warning"] = "You are to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation."; $text["creation_date"] = "Vytvořeno"; $text["current_version"] = "Aktuální verze"; $text["daily"] = "Daily"; $text["databasesearch"] = "Database search"; $text["december"] = "Prosinec"; $text["default_access"] = "Standardní režim přístupu"; $text["default_keywords"] = "Dostupná klíčová slova"; $text["delete"] = "Smazat"; $text["details"] = "Podrobnosti"; $text["details_version"] = "Podrobnosti verze: [version]"; $text["disclaimer"] = "Toto je neveřejná oblast. Přístup povolen pouze oprávněným uživatelům. Jakékoliv narušení bude stíháno podle platných právních norem."; $text["document_already_locked"] = "Tento dokument je už zamčený"; $text["document_deleted"] = "Dokument odstraněn"; $text["document_deleted_email"] = "Dokument odstraněn"; $text["document"] = "Dokument"; $text["document_infos"] = "Informace o dokumentu"; $text["document_is_not_locked"] = "Tento dokument není zamčený"; $text["document_link_by"] = "Odkazuje sem"; $text["document_link_public"] = "Veřejný"; $text["document_moved_email"] = "Dokument přesunut"; $text["document_renamed_email"] = "Dokument přejmenován"; $text["documents"] = "Dokumenty"; $text["documents_in_process"] = "Dokumenty ve zpracování"; $text["documents_locked_by_you"] = "Dokument Vámi uzamčen"; $text["document_status_changed_email"] = "Stav dokumentu změněn"; $text["documents_to_approve"] = "Dokumenty čekající na schválení uživatele"; $text["documents_to_review"] = "Dokumenty čekající na kontrolu uživatele"; $text["documents_user_requiring_attention"] = "Dokumenty, které uživatel vlastní a vyžadují pozornost"; $text["document_title"] = "Dokument '[documentname]'"; $text["document_updated_email"] = "Dokument aktualizován"; $text["does_not_expire"] = "Platnost nikdy nevyprší"; $text["does_not_inherit_access_msg"] = "Zdědit přístup"; $text["download"] = "Stáhnout"; $text["draft_pending_approval"] = "Návrh - čeká na schválení"; $text["draft_pending_review"] = "Návrh - čeká na kontrolu"; $text["dump_creation"] = "Vytvoření DB výpisu"; $text["dump_creation_warning"] = "Pomocí této operace můžete vytvořit soubor s výpisem obsahu databáze. Po vytvoření bude soubor výpisu uložen ve složce data vašeho serveru."; $text["dump_list"] = "Existující soubor výpisu"; $text["dump_remove"] = "Odstranit soubor výpisu"; $text["edit_comment"] = "Upravit komentář"; $text["edit_default_keywords"] = "Upravit klíčová slova"; $text["edit_document_access"] = "Upravit přístup"; $text["edit_document_notify"] = "Seznam upozornění"; $text["edit_document_props"] = "Upravit dokument"; $text["edit"] = "upravit"; $text["edit_event"] = "Upravit akci"; $text["edit_existing_access"] = "Upravit seznam řízení přístupu"; $text["edit_existing_notify"] = "Upravit seznam upozornění"; $text["edit_folder_access"] = "Upravit přístup"; $text["edit_folder_notify"] = "Seznam upozornění"; $text["edit_folder_props"] = "Upravit adresář"; $text["edit_group"] = "Upravit skupinu"; $text["edit_user_details"] = "Upravit podrobnosti uživatele"; $text["edit_user"] = "Upravit uživatele"; $text["email"] = "E-mail"; $text["email_footer"] = "Změnu nastavení e-mailu můžete kdykoliv provést pomocí funkce'Můj účet'"; $text["email_header"] = "Toto je automatická zpráva ze serveru DMS."; $text["empty_notify_list"] = "Žádné položky"; $text["error_no_document_selected"] = "No document selected"; $text["error_no_folder_selected"] = "No folder selected"; $text["error_occured"] = "Vyskytla se chyba"; $text["event_details"] = "Údaje akce"; $text["expired"] = "Platnost vypršela"; $text["expires"] = "Platnost vyprší"; $text["expiry_changed_email"] = "Datum expirace změněno"; $text["february"] = "Únor"; $text["file"] = "Soubor"; $text["files_deletion"] = "Soubor odstraněn"; $text["files_deletion_warning"] = "Pomocí této volby můžete odstranit všechny soubory z celé složky DMS. Verzovací informace zůstanou viditelné."; $text["files"] = "Soubory"; $text["file_size"] = "Velikost souboru"; $text["folder_contents"] = "Adresáře"; $text["folder_deleted_email"] = "Adresář odstraněn"; $text["folder"] = "Adresář"; $text["folder_infos"] = "Informace o adresáři"; $text["folder_moved_email"] = "Adresář přesunut"; $text["folder_renamed_email"] = "Adresář přejmenován"; $text["folders_and_documents_statistic"] = "Přehled adresářů a dokumentů"; $text["folders"] = "Adresáře"; $text["folder_title"] = "Adresář '[foldername]'"; $text["friday"] = "Patek"; $text["from"] = "Od"; $text["fullsearch"] = "Full text search"; $text["fullsearch_hint"] = "Use fulltext index"; $text["fulltext_info"] = "Fulltext index info"; $text["global_default_keywords"] = "Globální klíčová slova"; $text["global_document_categories"] = "Categories"; $text["group_approval_summary"] = "Souhrn schválení skupiny"; $text["group_exists"] = "Skupina již existuje."; $text["group"] = "Skupina"; $text["group_management"] = "Skupiny"; $text["group_members"] = "Členové skupiny"; $text["group_review_summary"] = "Souhrn revizí skupiny"; $text["groups"] = "Skupiny"; $text["guest_login_disabled"] = "Přihlášení jako host je vypnuté."; $text["guest_login"] = "Přihlásit se jako host"; $text["help"] = "Pomoc"; $text["hourly"] = "Hourly"; $text["human_readable"] = "Bežně čitelný archiv"; $text["include_documents"] = "Včetně dokumentů"; $text["include_subdirectories"] = "Včetně podadresářů"; $text["individuals"] = "Jednotlivci"; $text["inherits_access_msg"] = "Přístup se dědí."; $text["inherits_access_copy_msg"] = "Zkopírovat zděděný seznam řízení přístupu"; $text["inherits_access_empty_msg"] = "Založit nový seznam řízení přístupu"; $text["internal_error_exit"] = "Vnitřní chyba. Nebylo možné dokončit požadavek. Ukončuje se."; $text["internal_error"] = "Vnitřní chyba"; $text["invalid_access_mode"] = "Neplatný režim přístupu"; $text["invalid_action"] = "Neplatná činnost"; $text["invalid_approval_status"] = "Neplatný stav schválení"; $text["invalid_create_date_end"] = "Neplatné koncové datum vytvoření."; $text["invalid_create_date_start"] = "Neplatné počáteční datum vytvoření."; $text["invalid_doc_id"] = "Neplatný ID dokumentu"; $text["invalid_file_id"] = "Nevalidní ID souboru"; $text["invalid_folder_id"] = "Neplatné ID adresáře"; $text["invalid_group_id"] = "Neplatné ID skupiny"; $text["invalid_link_id"] = "Neplatné ID odkazu"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Neplatný stav kontroly"; $text["invalid_sequence"] = "Neplatná hodnota posloupnosti"; $text["invalid_status"] = "Neplatný stav dokumentu"; $text["invalid_target_doc_id"] = "Neplatné cílové ID dokumentu"; $text["invalid_target_folder"] = "Neplatné cílové ID adresáře"; $text["invalid_user_id"] = "Neplatné ID uživatele"; $text["invalid_version"] = "Neplatná verze dokumentu"; $text["is_hidden"] = "Utajit v seznamu uživatelů"; $text["january"] = "Leden"; $text["js_no_approval_group"] = "Prosím, vyberte skupinu pro schválení"; $text["js_no_approval_status"] = "Prosím, vyberte stav schválení"; $text["js_no_comment"] = "Žádný komentář"; $text["js_no_email"] = "Napište svou emailovou adresu"; $text["js_no_file"] = "Prosím, vyberte soubor"; $text["js_no_keywords"] = "Zadejte nějaká klíčová slova"; $text["js_no_login"] = "Prosím, napište jméno uživatele"; $text["js_no_name"] = "Prosím, napište jméno"; $text["js_no_override_status"] = "Prosím, vyberte nový stav [přepíše se]"; $text["js_no_pwd"] = "Budete muset napsat své heslo"; $text["js_no_query"] = "Napište požadavek"; $text["js_no_review_group"] = "Prosím, vyberte skupinu pro kontrolu"; $text["js_no_review_status"] = "Prosím, vyberte stav kontroly"; $text["js_pwd_not_conf"] = "Heslo a potvrzení hesla se neshodují"; $text["js_select_user_or_group"] = "Vyberte aspoň uživatele nebo skupinu"; $text["js_select_user"] = "Prosím, vyberte uživatele"; $text["july"] = "Červenec"; $text["june"] = "Červen"; $text["keyword_exists"] = "Klíčové slovo už existuje"; $text["keywords"] = "Klíčová slova"; $text["language"] = "Jazyk"; $text["last_update"] = "Naposledy aktualizoval"; $text["link_alt_updatedocument"] = "If you would like to upload files bigger than the current maximum upload size, please use the alternative upload page."; $text["linked_documents"] = "Související dokumenty"; $text["linked_files"] = "Přílohy"; $text["local_file"] = "Lokální soubor"; $text["locked_by"] = "Locked by"; $text["lock_document"] = "Zamknout"; $text["lock_message"] = "Tento dokument zamknul [username].
Pouze oprávnění uživatelé ho mohou odemknout (viz konec stránky)."; $text["lock_status"] = "Stav"; $text["login_error_text"] = "Chyba při přihlašování. ID uživatele nebo heslo je nesprávné."; $text["login_error_title"] = "Chyba při přihlašování"; $text["login_not_given"] = "Nebylo zadané uživatelské jméno"; $text["login_ok"] = "Přihlášení proběhlo úspěšně"; $text["log_management"] = "Správa LOG souborů"; $text["logout"] = "Odhlášení"; $text["manager"] = "Správce"; $text["march"] = "Březen"; $text["max_upload_size"] = "Max. délka pro nahrání jednoho souboru"; $text["may"] = "Květen"; $text["monday"] = "Pondělí"; $text["month_view"] = "Zobrazení měsíce"; $text["monthly"] = "Monthly"; $text["move_document"] = "Přesunout dokument"; $text["move_folder"] = "Přesunout adresář"; $text["move"] = "Přesunout"; $text["my_account"] = "Můj účet"; $text["my_documents"] = "Moje dokumenty"; $text["name"] = "Jméno"; $text["new_default_keyword_category"] = "Přidat kategorii"; $text["new_default_keywords"] = "Přidat klíčová slova"; $text["new_document_category"] = "Add category"; $text["new_document_email"] = "Nový dokument"; $text["new_file_email"] = "Nová příloha"; $text["new_folder"] = "Nový adresář"; $text["new"] = "Nový"; $text["new_subfolder_email"] = "Nový adresář"; $text["new_user_image"] = "Nový obrázek"; $text["no_action"] = "Nic se nevykoná"; $text["no_approval_needed"] = "Nic nečeká na schválení."; $text["no_attached_files"] = "Žádné přiložené soubory"; $text["no_default_keywords"] = "Nejsou dostupná žádná klíčová slova."; $text["no_docs_locked"] = "Žádné uzamčené dokumenty"; $text["no_docs_to_approve"] = "Momentálně neexistují žádné dokumenty, které vyžadují schválení."; $text["no_docs_to_look_at"] = "Žádné dokumenty, které vyžadují pozornost."; $text["no_docs_to_review"] = "Momentálně neexistují žádné dokumenty, které vyžadují kontrolu."; $text["no_group_members"] = "Tato skupina nemá žádné členy"; $text["no_groups"] = "Žádné skupiny"; $text["no"] = "Ne"; $text["no_linked_files"] = "Žádné propojené soubory"; $text["no_previous_versions"] = "Nebyly nalezeny žádné jiné verze"; $text["no_review_needed"] = "Nic nečeká k revizi."; $text["notify_added_email"] = "Byl/a jste přidán/a do seznamu pro oznámení"; $text["notify_deleted_email"] = "Byl/a jste odstraněn/a ze seznamu pro oznámení"; $text["no_update_cause_locked"] = "Proto nemůžete aktualizovat tento dokument. Prosím, kontaktujte uživatele, který ho zamknul."; $text["no_user_image"] = "nebyl nalezen žádný obrázek"; $text["november"] = "Listopad"; $text["obsolete"] = "Zastaralé"; $text["october"] = "Říjen"; $text["old"] = "Starý"; $text["only_jpg_user_images"] = "Pro obrázky uživatelů je možné použít pouze obrázky .jpg"; $text["owner"] = "Vlastník"; $text["ownership_changed_email"] = "Vlastník změněn"; $text["password"] = "Heslo"; $text["personal_default_keywords"] = "Osobní klíčová slova"; $text["previous_versions"] = "Předešlé verze"; $text["refresh"] = "Refresh"; $text["rejected"] = "Odmítnuty"; $text["released"] = "Vydáno"; $text["removed_approver"] = "byl odstraněn ze seznamu schvalovatelů."; $text["removed_file_email"] = "Příloha odstraněna"; $text["removed_reviewer"] = "byl odstraněn ze seznamu kontrolorů."; $text["results_page"] = "Stránka s výsledky"; $text["review_deletion_email"] = "Žádost na revizi odstraněn"; $text["reviewer_already_assigned"] = "je už pověřen jako kontrolor"; $text["reviewer_already_removed"] = "už byl odstraněn z procesu kontroly nebo poslal kontrolu"; $text["reviewers"] = "Kontroloři"; $text["review_group"] = "Skupina kontroly"; $text["review_request_email"] = "Požadavek na kontrolu"; $text["review_status"] = "Stav kontroly"; $text["review_submit_email"] = "Předložit ke kontrole"; $text["review_summary"] = "Souhrn kontroly"; $text["review_update_failed"] = "Chyba při aktualizaci stavu kontroly. Aktualizace selhala."; $text["rm_default_keyword_category"] = "Smazat kategorii"; $text["rm_document"] = "Odstranit dokument"; $text["rm_document_category"] = "Delete category"; $text["rm_file"] = "Odstranit soubor"; $text["rm_folder"] = "Odstranit adresář"; $text["rm_group"] = "Odstranit tuto skupinu"; $text["rm_user"] = "Odstranit tohoto uživatele"; $text["rm_version"] = "Odstranit verzi"; $text["role_admin"] = "Administrátor"; $text["role_guest"] = "Host"; $text["role_user"] = "Uživatel"; $text["role"] = "Role"; $text["saturday"] = "Sobota"; $text["save"] = "Uložit"; $text["search_fulltext"] = "Search in fulltext"; $text["search_in"] = "Prohledávat"; $text["search_mode_and"] = "všechna slova"; $text["search_mode_or"] = "alespoň jedno ze slov"; $text["search_no_results"] = "Vašemu dotazu nevyhovují žádné dokumenty"; $text["search_query"] = "Hledat"; $text["search_report"] = "Nalezených [count] dokumentů odpovídajících dotazu"; $text["search_results_access_filtered"] = "Výsledky hledání můžou obsahovat obsah, ke kterému byl zamítnut přístup."; $text["search_results"] = "Výsledky hledání"; $text["search"] = "Hledat"; $text["search_time"] = "Uplynulý čas: [time] sek"; $text["selection"] = "Výběr"; $text["select_one"] = "Vyberte jeden"; $text["september"] = "Září"; $text["seq_after"] = "Po \"[prevname]\""; $text["seq_end"] = "Na konec"; $text["seq_keep"] = "Ponechat pozici"; $text["seq_start"] = "První pozice"; $text["sequence"] = "Posloupnost"; $text["set_expiry"] = "Nastavit expiraci"; $text["set_owner_error"] = "Chybné nastavení vlastníka"; $text["set_owner"] = "Nastavit vlastníka"; $text["signed_in_as"] = "Přihlášen jako"; $text["sign_out"] = "Odhlásit"; $text["space_used_on_data_folder"] = "Použité místo pro data složky"; $text["status_approval_rejected"] = "Návrh zamítnut"; $text["status_approved"] = "Schválen"; $text["status_approver_removed"] = "Schvalovatel odstraněn z procesu"; $text["status_not_approved"] = "Neschválený"; $text["status_not_reviewed"] = "Nezkontrolovaný"; $text["status_reviewed"] = "Zkontrolovaný"; $text["status_reviewer_rejected"] = "Návrh zamítnut"; $text["status_reviewer_removed"] = "Kontrolor odstraněn z procesu"; $text["status"] = "Stav"; $text["status_unknown"] = "Neznámý"; $text["settings_contentDir_desc"] = "Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "To work around limitations in the underlying file system, a new directory structure has been devised that exists within the content directory (Content Directory). This requires a base directory from which to begin. Usually leave this to the default setting, 1048576, but can be any number or string that does not already exist within (Content Directory)"; $text["settings_coreDir"] = "Core letoDMS directory"; $text["settings_coreDir_desc"] = "Path to LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS directory"; $text["settings_luceneClassDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene index directory"; $text["settings_luceneDir_desc"] = "Path to Lucene index"; $text["settings_createdatabase"] = "Create database"; $text["settings_createdirectory"] = "Create directory"; $text["settings_currentvalue"] = "Current value"; $text["settings_Database"] = "Database settings"; $text["settings_dbDatabase"] = "Database"; $text["settings_dbDatabase_desc"] = "The name for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbDriver"] = "Database Type"; $text["settings_dbDriver_desc"] = "The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database perhaps due to changing hosts. Type of DB-Driver used by adodb (see adodb-readme)"; $text["settings_dbHostname_desc"] = "The hostname for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbHostname"] = "Server name"; $text["settings_dbPass_desc"] = "The password for access to your database entered during the installation process."; $text["settings_dbPass"] = "Password"; $text["settings_dbUser_desc"] = "The username for access to your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbUser"] = "Username"; $text["settings_delete_install_folder"] = "To use LetoDMS, you must delete the install directory"; $text["settings_disableSelfEdit_desc"] = "If checked user cannot edit his own profile"; $text["settings_disableSelfEdit"] = "Disable Self Edit"; $text["settings_Display"] = "Display settings"; $text["settings_Edition"] = "Edition settings"; $text["settings_enableAdminRevApp_desc"] = "Uncheck to don't list administrator as reviewer/approver"; $text["settings_enableAdminRevApp"] = "Enable Admin Rev App"; $text["settings_enableCalendar_desc"] = "Enable/disable calendar"; $text["settings_enableCalendar"] = "Enable Calendar"; $text["settings_enableConverting_desc"] = "Enable/disable converting of files"; $text["settings_enableConverting"] = "Enable Converting"; $text["settings_enableEmail_desc"] = "Enable/disable automatic email notification"; $text["settings_enableEmail"] = "Enable E-mail"; $text["settings_enableFolderTree_desc"] = "False to don't show the folder tree"; $text["settings_enableFolderTree"] = "Enable Folder Tree"; $text["settings_enableFullSearch"] = "Enable Full text search"; $text["settings_enableGuestLogin_desc"] = "If you want anybody to login as guest, check this option. Note: guest login should be used only in a trusted environment"; $text["settings_enableGuestLogin"] = "Enable Guest Login"; $text["settings_enableUserImage_desc"] = "Enable users images"; $text["settings_enableUserImage"] = "Enable User Image"; $text["settings_enableUsersView_desc"] = "Enable/disable group and user view for all users"; $text["settings_enableUsersView"] = "Enable Users View"; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expand Folder Tree"; $text["settings_expandFolderTree"] = "Expand Folder Tree"; $text["settings_expandFolderTree_val0"] = "start with tree hidden"; $text["settings_expandFolderTree_val1"] = "start with tree shown and first level expanded"; $text["settings_expandFolderTree_val2"] = "start with tree shown fully expanded"; $text["settings_firstDayOfWeek_desc"] = "First day of the week"; $text["settings_firstDayOfWeek"] = "First day of the week"; $text["settings_footNote_desc"] = "Message to display at the bottom of every page"; $text["settings_footNote"] = "Foot Note"; $text["settings_guestID_desc"] = "ID of guest-user used when logged in as guest (mostly no need to change)"; $text["settings_guestID"] = "Guest ID"; $text["settings_httpRoot_desc"] = "The relative path in the URL, after the domain part. Do not include the http:// prefix or the web host name. e.g. If the full URL is http://www.example.com/letodms/, set '/letodms/'. If the URL is http://www.example.com/, set '/'"; $text["settings_httpRoot"] = "Http Root"; $text["settings_installADOdb"] = "Install ADOdb"; $text["settings_install_success"] = "The installation is completed successfully"; $text["settings_language"] = "Default language"; $text["settings_language_desc"] = "Default language (name of a subfolder in folder \"languages\")"; $text["settings_logFileEnable_desc"] = "Enable/disable log file"; $text["settings_logFileEnable"] = "Log File Enable"; $text["settings_logFileRotation_desc"] = "The log file rotation"; $text["settings_logFileRotation"] = "Log File Rotation"; $text["settings_luceneDir"] = "Directory for full text index"; $text["settings_maxDirID_desc"] = "Maximum number of sub-directories per parent directory. Default: 32700."; $text["settings_maxDirID"] = "Max Directory ID"; $text["settings_maxExecutionTime_desc"] = "This sets the maximum time in seconds a script is allowed to run before it is terminated by the parse"; $text["settings_maxExecutionTime"] = "Max Execution Time (s)"; $text["settings_more_settings"] = "Configure more settings. Default login: admin/admin"; $text["settings_notfound"] = "Not found"; $text["settings_partitionSize"] = "Size of partial files uploaded by jumploader"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "If true the disclaimer message the lang.inc files will be print on the bottom of the page"; $text["settings_printDisclaimer"] = "Print Disclaimer"; $text["settings_restricted_desc"] = "Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Restricted access"; $text["settings_rootDir_desc"] = "Path to where letoDMS is located"; $text["settings_rootDir"] = "Root directory"; $text["settings_rootFolderID_desc"] = "ID of root-folder (mostly no need to change)"; $text["settings_rootFolderID"] = "Root Folder ID"; $text["settings_SaveError"] = "Configuration file save error"; $text["settings_Server"] = "Server settings"; $text["settings"] = "Settings"; $text["settings_siteDefaultPage_desc"] = "Default page on login. If empty defaults to out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Site Default Page"; $text["settings_siteName_desc"] = "Name of site used in the page titles. Default: letoDMS"; $text["settings_siteName"] = "Site Name"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server port, default 25"; $text["settings_smtpPort"] = "SMTP Server port"; $text["settings_smtpSendFrom_desc"] = "Send from"; $text["settings_smtpSendFrom"] = "Send from"; $text["settings_smtpServer_desc"] = "SMTP Server hostname"; $text["settings_smtpServer"] = "SMTP Server hostname"; $text["settings_SMTP"] = "SMTP Server settings"; $text["settings_stagingDir"] = "Directory for partial uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Strict Form Check"; $text["settings_suggestionvalue"] = "Suggestion value"; $text["settings_System"] = "System"; $text["settings_theme"] = "Default theme"; $text["settings_theme_desc"] = "Default style (name of a subfolder in folder \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "The name of the versioning info file created by the backup tool"; $text["settings_versioningFileName"] = "Versioning FileName"; $text["settings_viewOnlineFileTypes_desc"] = "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)"; $text["settings_viewOnlineFileTypes"] = "View Online File Types"; $text["signed_in_as"] = "Signed in as"; $text["sign_in"] = "sign in"; $text["sign_out"] = "sign out"; $text["space_used_on_data_folder"] = "Space used on data folder"; $text["status_approval_rejected"] = "Draft rejected"; $text["status_approved"] = "Approved"; $text["status_approver_removed"] = "Approver removed from process"; $text["status_not_approved"] = "Not approved"; $text["status_not_reviewed"] = "Not reviewed"; $text["status_reviewed"] = "Reviewed"; $text["status_reviewer_rejected"] = "Draft rejected"; $text["status_reviewer_removed"] = "Reviewer removed from process"; $text["status"] = "Status"; $text["status_unknown"] = "Unknown"; $text["storage_size"] = "Storage size"; $text["submit_approval"] = "Poslat schválení"; $text["submit_login"] = "Přihlásit se"; $text["submit_review"] = "Poslat kontrolu"; $text["sunday"] = "Neděle"; $text["theme"] = "Vzhled"; $text["thursday"] = "Čtvrtek"; $text["toggle_manager"] = "Přepnout správce"; $text["to"] = "Do"; $text["tuesday"] = "Úterý"; $text["under_folder"] = "V adresáři"; $text["unknown_command"] = "Příkaz nebyl rozpoznán."; $text["unknown_document_category"] = "Unknown category"; $text["unknown_group"] = "Neznámé ID skupiny"; $text["unknown_id"] = "neznámé id"; $text["unknown_keyword_category"] = "Neznámá kategorie"; $text["unknown_owner"] = "Neznámé ID vlastníka"; $text["unknown_user"] = "Neznámé ID uživatele"; $text["unlock_cause_access_mode_all"] = "Můžete ho pořád aktualizovat, protože máte režim přístupu \"all\". Zámek bude automaticky odstraněn."; $text["unlock_cause_locking_user"] = "Můžete ho pořád aktualizovat, protože jste ten, kdo ho zamknul. Zámek bude automaticky odstraněn."; $text["unlock_document"] = "Odemknout"; $text["update_approvers"] = "Aktualizovat seznam schvalovatelů"; $text["update_document"] = "Aktualizovat"; $text["update_fulltext_index"] = "Update fulltext index"; $text["update_info"] = "Aktualizovat informace"; $text["update_locked_msg"] = "Tento dokument je zamčený."; $text["update_reviewers"] = "Aktualizovat seznam kontrolorů"; $text["update"] = "Aktualizovat"; $text["uploaded_by"] = "Nahrál"; $text["uploading_failed"] = "Nahrání selhalo. Prosím, kontaktujte správce."; $text["use_default_categories"] = "Use predefined categories"; $text["use_default_keywords"] = "Použít předdefinovaná klíčová slova"; $text["user_exists"] = "Uživatel už existuje."; $text["user_image"] = "Obrázek"; $text["user_info"] = "Informace o uživateli"; $text["user_list"] = "Seznam uživatelů"; $text["user_login"] = "ID uživatele"; $text["user_management"] = "Uživatelé"; $text["user_name"] = "Plné jméno"; $text["users"] = "Uživatel"; $text["user"] = "Uživatel"; $text["version_deleted_email"] = "Version deleted"; $text["version_info"] = "Informace o verzi"; $text["versioning_file_creation"] = "Vytvoření verzování souboru"; $text["versioning_file_creation_warning"] = "Pomocí této operace můžete vytvořit soubor obsahující informace o verzování celé složky DMS. Po vytvoření bude každý soubor uložen uvnitř složky dokumentů."; $text["versioning_info"] = "Info verzování"; $text["version"] = "Verze"; $text["view_online"] = "Zobrazit online"; $text["warning"] = "Upozornění"; $text["wednesday"] = "Středa"; $text["week_view"] = "Zobrazení týdne"; $text["year_view"] = "Zobrazení roku"; $text["yes"] = "Ano"; ?> letodms-3.3.11+dfsg.1/languages/Czech/help.htm0000644000175000017500000000002412040235120021451 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/German/0000755000175000017500000000000012040235120020170 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/German/lang.inc0000644000175000017500000012411612037727447021641 0ustar franciscofranciscoWarning: ein menschenlesbares Archiv ist als Server-Backup unbrauchbar."; $text["assign_approvers"] = "Freigebende zuweisen"; $text["assign_reviewers"] = "Prüfer zuweisen"; $text["assign_user_property_to"] = "Assign user's properties to"; $text["assumed_released"] = "Angenommen, freigegeben"; $text["august"] = "August"; $text["automatic_status_update"] = "Automatischer Statuswechsel"; $text["back"] = "Zurück"; $text["backup_list"] = "Liste vorhandener Backups"; $text["backup_remove"] = "Backup löschen"; $text["backup_tools"] = "Backup tools"; $text["between"] = "zwischen"; $text["calendar"] = "Kalendar"; $text["cancel"] = "Abbrechen"; $text["cannot_assign_invalid_state"] = "Die Zuweisung eines neuen Prüfers zu einem Dokument, welches noch nachbearbeitet oder überprüft wird ist nicht möglich"; $text["cannot_change_final_states"] = "Warnung: Nicht imstande, Dokumentstatus für Dokumente, die zurückgewiesen worden sind, oder als abgelaufen bzw. überholt markiert wurden zu ändern"; $text["cannot_delete_yourself"] = "Sie können nicht Ihr eigenes Login löschen"; $text["cannot_move_root"] = "Störung: Verschieben des Hauptordners nicht möglich"; $text["cannot_retrieve_approval_snapshot"] = "Nicht imstande, für diese Dokumentenversion die Freigabe für den Status Snapshot zurückzuholen."; $text["cannot_retrieve_review_snapshot"] = "Nicht imstande, Berichtstatus Snapshot für diese Dokumentversion zurückzuholen"; $text["cannot_rm_root"] = "Störung: Löschen des Hauptordners nicht möglich"; $text["category"] = "Kategorie"; $text["category_exists"] = "Kategorie existiert bereits."; $text["category_filter"] = "Nur Kategorien"; $text["category_in_use"] = "This Kategorie wird zur Zeit von Dokumenten verwendet."; $text["category_noname"] = "Kein Kategoriename vergeben."; $text["categories"] = "Kategorien"; $text["change_assignments"] = "Zuweisungen ändern"; $text["change_password"] = "Passwort ändern"; $text["change_password_message"] = "Ihr Passwort wurde geändert."; $text["change_status"] = "Status ändern"; $text["choose_category"] = "--Bitte wählen--"; $text["choose_group"] = "--Gruppe wählen--"; $text["choose_target_category"] = "Kategorie wählen"; $text["choose_target_document"] = "Dokument wählen"; $text["choose_target_folder"] = "Zielordner wählen"; $text["choose_user"] = "--Benutzer wählen--"; $text["comment_changed_email"] = "Kommentar geändert"; $text["comment"] = "Kommentar"; $text["comment_for_current_version"] = "Kommentar zur
aktuellen Version"; $text["confirm_create_fulltext_index"] = "Ja, Ich möchte den Volltextindex neu erzeugen!."; $text["confirm_pwd"] = "Passwort-Bestätigung"; $text["confirm_rm_backup"] = "Möchten Sie wirklich das Backup \"[arkname]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_document"] = "Wollen Sie das Dokument \"[documentname]\" wirklich löschen?
Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden."; $text["confirm_rm_dump"] = "Möchten Sie wirklich den DB dump \"[dumpname]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_event"] = "Möchten Sie wirklich das Ereignis \"[name]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_file"] = "Möchten Sie wirklich die Datei \"[name]\" des Dokuments \"[documentname]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_folder"] = "Wollen Sie den Ordner \"[foldername]\" mitsamt seines Inhalts wirklich löschen?
Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden."; $text["confirm_rm_folder_files"] = "Möchten Sie wirklich alle Dateien und Unterordner des Ordner \"[foldername]\" löschen?
Vorsicht: Diese Operation kann nicht rückgängig gemacht werden."; $text["confirm_rm_group"] = "Möchten Sie wirklich die Gruppe \"[groupname]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_log"] = "Möchten Sie wirklich die Log-Datei \"[logname]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_user"] = "Möchten Sie wirklich den Benutzer \"[username]\" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann."; $text["confirm_rm_version"] = "Wollen Sie die Version [version] des Dokumentes \"[documentname]\" wirklich löschen?
Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden."; $text["content"] = "Inhalt"; $text["continue"] = "fortführen"; $text["create_fulltext_index"] = "Erzeuge Volltextindex"; $text["create_fulltext_index_warning"] = "Sie möchten den Volltextindex neu erzeugen. Dies kann beträchtlich Zeit in Anspruch nehmen und Gesamtleistung Ihres System beeinträchtigen. Bestätigen Sie bitte diese Operation."; $text["creation_date"] = "Erstellt am"; $text["current_password"] = "Aktuelles Passwort"; $text["current_version"] = "Aktuelle Version"; $text["daily"] = "täglich"; $text["databasesearch"] = "Datenbanksuche"; $text["december"] = "Dezember"; $text["default_access"] = "Standardberechtigung"; $text["default_keywords"] = "Verfügbare Schlüsselworte"; $text["delete"] = "Löschen"; $text["details"] = "Details"; $text["details_version"] = "Details für Version:[version]"; $text["disclaimer"] = "Dies ist ein geschützter Bereich. Nur authorisiertes Personal hat Zugriff. Jegliche Verstöße werden nach geltendem Recht (Englisch und International) verfolgt."; $text["do_object_repair"] = "Repariere alle Ordner und Dokumente."; $text["document_already_locked"] = "Dieses Dokument ist bereits gesperrt"; $text["document_deleted"] = "Dokument gelöscht"; $text["document_deleted_email"] = "Dokument gelöscht"; $text["document"] = "Dokument"; $text["document_infos"] = "Informationen"; $text["document_is_not_locked"] = "Dieses Dokument ist nicht gesperrt"; $text["document_link_by"] = "Verweis erstellt von"; $text["document_link_public"] = "Für alle sichtbar"; $text["document_moved_email"] = "Dokument verschoben"; $text["document_renamed_email"] = "Dokument umbenannt"; $text["documents"] = "Dokumente"; $text["documents_in_process"] = "Dokumente in Bearbeitung"; $text["documents_locked_by_you"] = "Von mir gesperrte Dokumente"; $text["document_status_changed_email"] = "Dokumentenstatus geändert"; $text["documents_to_approve"] = "Freigabe erforderlich"; $text["documents_to_review"] = "Prüfung erforderlich"; $text["documents_user_requiring_attention"] = "Diese Dokumente sollte ich mal nachsehen"; $text["document_title"] = "Dokument '[documentname]'"; $text["document_updated_email"] = "Dokument aktualisiert"; $text["does_not_expire"] = "Keine Gültigkeit"; $text["does_not_inherit_access_msg"] = "Berechtigungen wieder erben"; $text["download"] = "Download"; $text["draft_pending_approval"] = "Entwurf - bevorstehende Freigabe"; $text["draft_pending_review"] = "Entwurf - bevorstehende Prüfung"; $text["dump_creation"] = "DB dump erzeugen"; $text["dump_creation_warning"] = "Mit dieser Operation können Sie einen Dump der Datenbank erzeugen. Nach der Erstellung wird der Dump im Datenordner Ihres Servers gespeichert."; $text["dump_list"] = "Vorhandene DB dumps"; $text["dump_remove"] = "DB dump löschen"; $text["edit_comment"] = "Kommentar bearbeiten"; $text["edit_default_keywords"] = "Schlüsselworte bearbeiten"; $text["edit_document_access"] = "Zugriffsrechte bearbeiten"; $text["edit_document_notify"] = "Benachrichtigungen"; $text["edit_document_props"] = "Bearbeiten"; $text["edit"] = "Bearbeiten"; $text["edit_event"] = "Ereignis editieren"; $text["edit_existing_access"] = "Bestehende Berechtigungen bearbeiten"; $text["edit_existing_notify"] = "Benachrichtigungen bearbeiten"; $text["edit_folder_access"] = "Zugriffsrechte bearbeiten"; $text["edit_folder_notify"] = "Ordner Benachrichtigungen bearbeiten"; $text["edit_folder_props"] = "Ordner bearbeiten"; $text["edit_group"] = "Gruppe bearbeiten"; $text["edit_user_details"] = "Benutzerdetails bearbeiten"; $text["edit_user"] = "Benutzer bearbeiten"; $text["email"] = "Email"; $text["email_error_title"] = "Keine E-Mail-Adresse eingegeben"; $text["email_footer"] = "Sie können zu jeder Zeit Ihre E-Mail-Adresse über 'Mein Profil' ändern."; $text["email_header"] = "Dies ist eine automatische Nachricht des DMS-Servers."; $text["email_not_given"] = "Bitte geben Sie eine gültige E-Mail-Adresse ein."; $text["empty_notify_list"] = "Keine Benachrichtigungen"; $text["error"] = "Fehler"; $text["error_no_document_selected"] = "Kein Dokument ausgewählt"; $text["error_no_folder_selected"] = "Kein Ordner ausgewählt"; $text["error_occured"] = "Ein Fehler ist aufgetreten.
Bitte Administrator benachrichtigen.

"; $text["event_details"] = "Ereignisdetails"; $text["expired"] = "abgelaufen"; $text["expires"] = "Gültigkeit"; $text["expiry_changed_email"] = "Verfallsdatum geändert"; $text["february"] = "Februar"; $text["file"] = "Datei"; $text["files_deletion"] = "Dateien löschen"; $text["files_deletion_warning"] = "Durch diese Operation können Sie Dokumente des DMS löschen. Die Versions-Information bleibt erhalten."; $text["files"] = "Dateien"; $text["file_size"] = "Dateigröße"; $text["folder_contents"] = "Ordner enthält"; $text["folder_deleted_email"] = "Ordner gelöscht"; $text["folder"] = "Ordner"; $text["folder_infos"] = "Informationen"; $text["folder_moved_email"] = "Ordner verschoben"; $text["folder_renamed_email"] = "Ordner umbenannt"; $text["folders_and_documents_statistic"] = "Ordner- und Dokumenten-Übersicht"; $text["folders"] = "Verzeichnisse"; $text["folder_title"] = "LetoDMS - Ordner: [foldername]"; $text["friday"] = "Freitag"; $text["from"] = "von"; $text["fullsearch"] = "Volltextsuche"; $text["fullsearch_hint"] = "Volltextindex benutzen"; $text["fulltext_info"] = "Volltext-Index Info"; $text["global_default_keywords"] = "Globale Stichwortlisten"; $text["global_document_categories"] = "Kategorien"; $text["group_approval_summary"] = "Freigabe-Gruppen"; $text["group_exists"] = "Gruppe existiert bereits"; $text["group"] = "Gruppe"; $text["group_management"] = "Gruppenverwaltung"; $text["group_members"] = "Gruppenmitglieder"; $text["group_review_summary"] = "Prüfergruppen"; $text["groups"] = "Gruppen"; $text["guest_login_disabled"] = "Anmeldung als Gast ist gesperrt."; $text["guest_login"] = "Als Gast anmelden"; $text["help"] = "Hilfe"; $text["hourly"] = "stündlich"; $text["human_readable"] = "Menschenlesbares Archiv"; $text["include_documents"] = "Dokumente miteinbeziehen"; $text["include_subdirectories"] = "Unterverzeichnisse miteinbeziehen"; $text["individuals"] = "Einzelpersonen"; $text["inherits_access_msg"] = "Zur Zeit werden die Rechte geerbt"; $text["inherits_access_copy_msg"] = "Berechtigungen kopieren"; $text["inherits_access_empty_msg"] = "Leere Zugriffsliste"; $text["internal_error_exit"] = "Interner Fehler: nicht imstande, Antrag durchzuführen. Herausnehmen. verlassen."; $text["internal_error"] = "Interner Fehler"; $text["invalid_access_mode"] = "Unzulässige Zugangsart"; $text["invalid_action"] = "Unzulässige Aktion"; $text["invalid_approval_status"] = "Unzulässiger Freigabestatus"; $text["invalid_create_date_end"] = "Unzulässiges Enddatum für Erstellung des Datumsbereichs."; $text["invalid_create_date_start"] = "Unzulässiges Startdatum für Erstellung des Datumsbereichs."; $text["invalid_doc_id"] = "Unzulässige Dokumentenidentifikation"; $text["invalid_file_id"] = "Ungültige Datei-ID"; $text["invalid_folder_id"] = "Unzulässige Ordneridentifikation"; $text["invalid_group_id"] = "Unzulässige Gruppenidentifikation"; $text["invalid_link_id"] = "Unzulässige Linkbezeichnung"; $text["invalid_request_token"] = "Ungültige Anfragekennung"; $text["invalid_review_status"] = "Unzulässiger Überprüfungssstatus"; $text["invalid_sequence"] = "Unzulässige Reihenfolge der Werte"; $text["invalid_status"] = "Unzulässiger Dokumentenstatus"; $text["invalid_target_doc_id"] = "Unzulässige Ziel-Dokument Identifikation"; $text["invalid_target_folder"] = "Unzulässige Ziel-Ordner Identifikation"; $text["invalid_user_id"] = "Unzulässige Benutzernummer"; $text["invalid_version"] = "Unzulässige Dokumenten-Version"; $text["is_hidden"] = "In der Benutzerliste verbergen"; $text["january"] = "Januar"; $text["js_no_approval_group"] = "Wählen Sie bitte eine Freigabe-Gruppe aus"; $text["js_no_approval_status"] = "Wählen Sie bitte einen Freigabe-Status aus"; $text["js_no_comment"] = "Geben Sie einen Kommentar an"; $text["js_no_email"] = "Geben Sie eine Email-Adresse an"; $text["js_no_file"] = "Bitte wählen Sie eine Datei"; $text["js_no_keywords"] = "Geben Sie einige Stichwörter an"; $text["js_no_login"] = "Geben Sie einen Benutzernamen ein"; $text["js_no_name"] = "Sie haben den Namen vergessen"; $text["js_no_override_status"] = "Bitte wählen Sie einen neuen Status aus"; $text["js_no_pwd"] = "Sie müssen ein Passwort eingeben"; $text["js_no_query"] = "Geben Sie einen Suchbegriff ein"; $text["js_no_review_group"] = "Bitte wählen Sie eine Prüfer-Gruppe"; $text["js_no_review_status"] = "Bitte wählen Sie einen Prüfungs-Status"; $text["js_pwd_not_conf"] = "Passwort und -Bestätigung stimmen nicht überein"; $text["js_select_user_or_group"] = "Wählen Sie mindestens einen Benutzer oder eine Gruppe aus"; $text["js_select_user"] = "Bitte einen Benutzer auswählen"; $text["july"] = "Juli"; $text["june"] = "Juni"; $text["keyword_exists"] = "Stichwort besteht bereits"; $text["keywords"] = "Stichworte"; $text["language"] = "Sprache"; $text["last_update"] = "Letzte Aktualisierung"; $text["link_alt_updatedocument"] = "Wenn Sie ein Dokument hochladen möchten, das größer als die maximale Dateigröße ist, dann benutzen Sie bitte die alternative Upload-Seite."; $text["linked_documents"] = "verknüpfte Dokumente"; $text["linked_files"] = "Anhänge"; $text["local_file"] = "Lokale Datei"; $text["locked_by"] = "Gesperrt von"; $text["lock_document"] = "Sperren"; $text["lock_message"] = "Dieses Dokument ist durch [username] gesperrt. Nur authorisierte Benutzer können diese Sperrung aufheben."; $text["lock_status"] = "Status"; $text["login"] = "Login"; $text["login_error_text"] = "Fehler bei der Anmeldung. Benutzernummer oder Passwort falsch."; $text["login_error_title"] = "Fehler bei der Anmeldung"; $text["login_not_given"] = "Es wurde kein Benutzername eingegeben"; $text["login_ok"] = "Anmeldung erfolgreich"; $text["log_management"] = "Management der Log-Dateien"; $text["logout"] = "Abmelden"; $text["manager"] = "Manager"; $text["march"] = "März"; $text["max_upload_size"] = "Maximale Dateigröße"; $text["may"] = "Mai"; $text["monday"] = "Montag"; $text["month_view"] = "Monatsansicht"; $text["monthly"] = "monatlich"; $text["move_document"] = "Dokument verschieben"; $text["move_folder"] = "Ordner verschieben"; $text["move"] = "verschieben"; $text["my_account"] = "Mein Profil"; $text["my_documents"] = "Meine Dokumente"; $text["name"] = "Name"; $text["new_default_keyword_category"] = "Neue Kategorie"; $text["new_default_keywords"] = "Neue Vorlage"; $text["new_document_category"] = "Neue Kategorie"; $text["new_document_email"] = "Neues Dokument"; $text["new_file_email"] = "Neuer Anhang"; $text["new_folder"] = "Neuer Ordner"; $text["new"] = "Neu"; $text["new_subfolder_email"] = "Neuer Ordner"; $text["new_user_image"] = "Neues Bild"; $text["no_action"] = "Keine Aktion erforderlich."; $text["no_approval_needed"] = "Keine offenen Freigaben."; $text["no_attached_files"] = "Keine angehängten Dokumente"; $text["no_default_keywords"] = "Keine Vorlagen vorhanden"; $text["no_docs_locked"] = "Keine Dokumente gesperrt."; $text["no_docs_to_approve"] = "Es gibt z.Z. keine Dokumente, die eine Freigabe erfordern."; $text["no_docs_to_look_at"] = "Keine Dokumente, nach denen geschaut werden müsste."; $text["no_docs_to_review"] = "Es gibt z.Z. keine Dokumente, die eine Prüfung erfordern."; $text["no_group_members"] = "Diese Gruppe hat keine Mitglieder"; $text["no_groups"] = "keine Gruppen"; $text["no"] = "Nein"; $text["no_linked_files"] = "Keine verknüpften Dokumente"; $text["no_previous_versions"] = "Keine anderen Versionen gefunden"; $text["no_review_needed"] = "Keine offenen Prüfungen."; $text["notify_added_email"] = "Benachrichtigung per Mail wurde eingerichtet"; $text["notify_deleted_email"] = "Sie wurden von der Liste der Benachrichtigungen entfernt."; $text["no_update_cause_locked"] = "Sie können daher im Moment diese Datei nicht aktualisieren. Wenden Sie sich an den Benutzer, der die Sperrung eingerichtet hat"; $text["no_user_image"] = "Kein Bild vorhanden"; $text["november"] = "November"; $text["objectcheck"] = "Ordner- und Dokumentenprüfung"; $text["obsolete"] = "veraltet"; $text["october"] = "Oktober"; $text["old"] = "Old"; $text["only_jpg_user_images"] = "Es sind nur JPG-Bilder erlaubt"; $text["owner"] = "Besitzer"; $text["ownership_changed_email"] = "Besitzer geändert"; $text["password"] = "Passwort"; $text["password_repeat"] = "Passwort wiederholen"; $text["password_forgotten"] = "Passwort vergessen"; $text["password_forgotten_email_subject"] = "Passwort vergessen"; $text["password_forgotten_email_body"] = "Sehr geehrter Anwender von LetoDMS,\n\nwir haben einen Anfrage zum Zurücksetzen Ihres Passworts erhalten und deshalb ein neues Passwort erzeugt.\n\nIhr neues Passwort lautet: ###PASSWORD###\n\nBitte ändern Sie es umgehend nachdem Sie sich erfolgreich angemeldet haben.\nSollen Sie danach immer noch Problem bei der Anmeldung haben, dann kontaktieren Sie bitte Ihren\nAdminstrator"; $text["password_forgotten_send_hash"] = "Eine Mail mit weiteren Anweisungen wurde an Sie verschickt."; $text["password_forgotten_text"] = "Füllen Sie das Formular aus und folgen Sie dann den Anweisungen, die Ihnen per Mail geschickt werden."; $text["password_forgotten_title"] = "Passwort gesendet"; $text["password_wrong"] = "Falsches Passwort"; $text["personal_default_keywords"] = "Persönliche Stichwortlisten"; $text["previous_versions"] = "Vorhergehende Versionen"; $text["refresh"] = "Aktualisieren"; $text["rejected"] = "abgelehnt"; $text["released"] = "freigegeben"; $text["removed_approver"] = "ist von der Freigeber-Liste entfernt worden."; $text["removed_file_email"] = "Anhang gelöscht"; $text["removed_reviewer"] = "ist von der Prüfer-Liste entfernt worden."; $text["repairing_objects"] = "Repariere Dokumente und Ordner."; $text["results_page"] = "Ergebnis-Seite"; $text["review_deletion_email"] = "Prüfungsaufforderung gelöscht"; $text["reviewer_already_assigned"] = "Prüfer bereits zugewiesen"; $text["reviewer_already_removed"] = "Prüfer wurde bereits aus dem Prüfvorgang entfernt oder hat die Prüfung bereits abgeschlossen"; $text["reviewers"] = "Prüfer"; $text["review_group"] = "Gruppe: prüfen"; $text["review_request_email"] = "Aufforderung zur Prüfung"; $text["review_status"] = "Status: prüfen"; $text["review_submit_email"] = "Prüfung ausgeführt"; $text["review_summary"] = "Übersicht Prüfungen"; $text["review_update_failed"] = "Störung bei Aktualisierung des Prüfstatus. Aktualisierung gescheitert."; $text["rm_default_keyword_category"] = "Kategorie löschen"; $text["rm_document"] = "Löschen"; $text["rm_document_category"] = "Lösche Kategorie"; $text["rm_file"] = "Datei Löschen"; $text["rm_folder"] = "Ordner löschen"; $text["rm_group"] = "Diese Gruppe löschen"; $text["rm_user"] = "Diesen Benutzer löschen"; $text["rm_version"] = "Version löschen"; $text["role_admin"] = "Administrator"; $text["role_guest"] = "Gast"; $text["role_user"] = "Benutzer"; $text["role"] = "Rolle"; $text["saturday"] = "Samstag"; $text["save"] = "Speichern"; $text["search_fulltext"] = "Suche im Volltext"; $text["search_in"] = "Suchen in"; $text["search_mode_and"] = "alle Begriffe"; $text["search_mode_or"] = "min. ein Begriff"; $text["search_no_results"] = "Die Suche lieferte leider keine Treffer."; $text["search_query"] = "Suchbegriffe"; $text["search_report"] = "Die Suche lieferte [doccount] Dokumente und [foldercount] Ordner"; $text["search_report_fulltext"] = "Die Suche lieferte [doccount] Dokumente"; $text["search_results_access_filtered"] = "Suchresultate können Inhalte enthalten, zu welchen der Zugang verweigert wurde."; $text["search_results"] = "Suchergebnis"; $text["search"] = "Suchen"; $text["search_time"] = "Dauer: [time] sek."; $text["selection"] = "Auswahl"; $text["select_one"] = "Bitte wählen"; $text["september"] = "September"; $text["seq_after"] = "Nach \"[prevname]\""; $text["seq_end"] = "Ans Ende"; $text["seq_keep"] = "Beibehalten"; $text["seq_start"] = "An den Anfang"; $text["sequence"] = "Reihenfolge"; $text["set_expiry"] = "Gültigkeit festlegen"; $text["set_owner_error"] = "Fehler beim Setzen des Besitzers"; $text["set_owner"] = "Besitzer festlegen"; $text["settings_install_welcome_title"] = "Willkommen zur Installation von letoDMS"; $text["settings_install_welcome_text"] = "

Before you start to install letoDMS make sure you have created a file 'ENABLE_INSTALL_TOOL' in your configuration directory, otherwise the installation will not work. On Unix-System this can easily be done with 'touch conf/ENABLE_INSTALL_TOOL'. After you have finished the installation delete the file.

letoDMS has very minimal requirements. You will need a mysql database and a php enabled web server. For the lucene full text search, you will also need the Zend framework installed on disk where it can be found by php. Starting with version 3.2.0 of letoDMS ADOdb will not be part of the distribution anymore. Get a copy of it from http://adodb.sourceforge.net and install it. The path to it can later be set during installation.

If you like to create the database before you start installation, then just create it manually with your favorite tool, optionally create a database user with access on the database and import one of the database dumps in the configuration directory. The installation script can do that for you as well, but it will need database access with sufficient rights to create databases.

"; $text["settings_start_install"] = "Installation starten"; $text["settings_stopWordsFile"] = "Pfad zur Stop-Wort-Datei"; $text["settings_stopWordsFile_desc"] = "Wenn die Volltextsuche aktiviert ist, dann beinhaltet diese Datei ein Liste mit Wörtern die nicht indiziert werden."; $text["settings_activate_module"] = "Modul aktivieren"; $text["settings_activate_php_extension"] = "PHP-Erweiterung aktivieren"; $text["settings_adminIP"] = "Admin IP"; $text["settings_adminIP_desc"] = "Wenn hier eine IP-Nummer eingetragen wird, kann eine Anmeldung als Administrator nur von dieser Adresse erfolgen. Funktioniert nur mit Anmeldung über die Datenbank (nicht LDAP)"; $text["settings_ADOdbPath"] = "ADOdb-Pfad"; $text["settings_ADOdbPath_desc"] = "Pfad zu ADOdb. Dies ist das Verzeichnis, welches die ADOdb-Klassen beinhaltet."; $text["settings_Advanced"] = "Erweitert"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Authentifikations-Einstellungen"; $text["settings_Calendar"] = "Kalender-Einstellungen"; $text["settings_calendarDefaultView"] = "Kalender Standardansicht"; $text["settings_calendarDefaultView_desc"] = "Voreingestellte Ansicht des Kalenders"; $text["settings_contentDir"] = "Content-Verzeichnis"; $text["settings_contentDir_desc"] = "Verzeichnis, in dem die Dokumente gespeichert werden. Sie sollten ein Verzeichnis wählen, das nicht durch den Web-Server erreichbar ist."; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "Die Dokumente werden nicht direkt im Content-Verzeichnis, sondern in einem Unterverzeichnis angelegt. Der Name dieses Verzeichnis ist beliebig, wird aber historisch bedingt oft auf '1048576' gesetzt."; $text["settings_coreDir"] = "Core letoDMS Verzeichnis"; $text["settings_coreDir_desc"] = "Pfad zum PEAR-Paket LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS Verzeichnis"; $text["settings_luceneClassDir_desc"] = "Pfad zum PEAR-Paket LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene Index-Verzeichnis"; $text["settings_luceneDir_desc"] = "Verzeichnis in dem der Lucene-Index abgelegt wird"; $text["settings_cannot_disable"] = "Datei ENABLE_INSTALL_TOOL konnte nicht gelöscht werden"; $text["settings_install_disabled"] = "Datei ENABLE_INSTALL_TOOL wurde gelöscht. Sie können sich nun bei LetoDMS anmeldung und mit der Konfiguration fortfahren."; $text["settings_createdatabase"] = "Datenbank erzeugen"; $text["settings_createdirectory"] = "Verzeichnis erzeugen"; $text["settings_currentvalue"] = "Aktueller Wert"; $text["settings_Database"] = "Datenbank-Einstellungen"; $text["settings_dbDatabase"] = "Datenbank"; $text["settings_dbDatabase_desc"] = "Der Name der Datenbank, die bei der Installation von LetoDMS eingerichtet wurde. Ändern Sie diese Feld nicht, es sei denn es ist notwendig, weil Sie die Datenbank umbenannt haben."; $text["settings_dbDriver"] = "Datenbank-Typ"; $text["settings_dbDriver_desc"] = "Der Typ der Datenbank, die bei der Installation von LetoDMS eingerichtet wurde. Ändern Sie dieses Feld nicht, es sei denn Sie migrieren die Datenbank auf einen anderen Datenbank-Server. Für eine Liste der möglichen Typen schauen Sie bitte in das Readme von ADOdb"; $text["settings_dbHostname_desc"] = "Der Name des Servers auf dem Ihr Datenbank-Server läuft. Ändern Sie dieses Feld nur, wenn Sie die Datenbank auf einen anderen Server transferieren."; $text["settings_dbHostname"] = "Server-Name"; $text["settings_dbPass_desc"] = "Das Passwort, um auf die Datenbank zugreifen zu können."; $text["settings_dbPass"] = "Passwort"; $text["settings_dbUser_desc"] = "Der Benutzername, um auf die Datenbank zugreifen zu können."; $text["settings_dbUser"] = "Benutzer"; $text["settings_dbVersion"] = "Datenbank-Schema zu alt"; $text["settings_delete_install_folder"] = "Um LetoDMS nutzen zu können, müssen Sie die Datei ENABLE_INSTALL_TOOL aus dem Konfigurationsverzeichnis löschen."; $text["settings_disable_install"] = "Lösche ENABLE_INSTALL_TOOL wenn möglich"; $text["settings_disableSelfEdit_desc"] = "Anwählen, um das Ändern des eigenen Profiles zu erlauben."; $text["settings_disableSelfEdit"] = "Ändern des eigenen Profils"; $text["settings_Display"] = "Anzeige-Einstellungen"; $text["settings_Edition"] = "Funktions-Einstellungen"; $text["settings_enableAdminRevApp_desc"] = "Anwählen, um Administratoren in der Liste der Prüfer und Freigeber auszugeben"; $text["settings_enableAdminRevApp"] = "Admin darf genehmigen/prüfen"; $text["settings_enableCalendar_desc"] = "Kalender ein/ausschalten"; $text["settings_enableCalendar"] = "Kalender einschalten"; $text["settings_enableConverting_desc"] = "Ein/Auschalten der automatischen Konvertierung von Dokumenten"; $text["settings_enableConverting"] = "Dokumentenkonvertierung einschalten"; $text["settings_enableEmail_desc"] = "Automatische E-Mail-Benachrichtigung ein-/ausschalten"; $text["settings_enableEmail"] = "E-mail aktivieren"; $text["settings_enableFolderTree_desc"] = "Schaltet den Verzeichnisbaum ein oder aus"; $text["settings_enableFolderTree"] = "Verzeichnisbaum einschalten"; $text["settings_enableFullSearch"] = "Volltextsuche einschalten"; $text["settings_enableFullSearch_desc"] = "Anwählen, um die Volltextsuche mittels Lucene einzuschalten."; $text["settings_enableGuestLogin_desc"] = "Wenn Sie Gast-Logins erlauben wollen, dann wählen Sie diese Option an. Anmerkung: Gast-Logins sollten nur in einer vertrauenswürdigen Umgebung erlaubt werden."; $text["settings_enableGuestLogin"] = "Anmeldung als Gast"; $text["settings_enableLargeFileUpload_desc"] = "Wenn dies gesetzt ist, dann ist ebenfalls der Upload von Dokumenten durch ein java applet mit Namen 'jumploader' ohne Begrenzung der maximalen Dateigröße möglich. Auch das Hochladen mehrerer Dokumente in einem Schritt wird dadurch ermöglicht."; $text["settings_enableLargeFileUpload"] = "Hochladen von sehr großen Dateien ermöglichen"; $text["settings_enablePasswordForgotten_desc"] = "Setzen Sie diese Option, wenn Benutzer ein neues Password per E-Mail anfordern dürfen."; $text["settings_enablePasswordForgotten"] = "Passwort-Vergessen Funktion einschalten"; $text["settings_enableUserImage_desc"] = "Foto der Benutzer ein-/ausschalten"; $text["settings_enableUserImage"] = "Benutzerbilder einschalten"; $text["settings_enableUsersView_desc"] = "Gruppen- und Benutzeransicht für alle Benutzer ein-/ausschalten"; $text["settings_enableUsersView"] = "Benutzeransicht aktivieren"; $text["settings_encryptionKey"] = "Verschlüsselungs-Sequenz"; $text["settings_encryptionKey_desc"] = "Diese Zeichenkette wird verwendet um eine eindeutige Kennung zu erzeugen, die als verstecktes Feld in einem Formular untergebracht wird. Sie dient zur Verhinderung von CSRF-Attacken."; $text["settings_error"] = "Fehler"; $text["settings_expandFolderTree_desc"] = "Auswählen, wie der Dokumenten-Baum nach der Anmeldung angezeigt wird."; $text["settings_expandFolderTree"] = "Dokumenten-Baum"; $text["settings_expandFolderTree_val0"] = "versteckt"; $text["settings_expandFolderTree_val1"] = "sichtbar und erste Ebene ausgeklappt"; $text["settings_expandFolderTree_val2"] = "sichtbar und komplett ausgeklappt"; $text["settings_firstDayOfWeek_desc"] = "Erster Tag der Woche"; $text["settings_firstDayOfWeek"] = "Erster Tag der Woche"; $text["settings_footNote_desc"] = "Meldung, die im Fuß jeder Seite angezeigt wird."; $text["settings_footNote"] = "Text im Fuß der Seite"; $text["settings_guestID_desc"] = "Id des Gast-Benutzers, wenn man sich als 'guest' einloggt."; $text["settings_guestID"] = "Gast-ID"; $text["settings_httpRoot_desc"] = "Der relative Pfad in der URL nach der Domain, also ohne http:// und den hostnamen. z.B. wenn die komplette URL http://www.example.com/letodms/ ist, dann setzen Sie diesen Wert auf '/letodms/'. Wenn die URL http://www.example.com/ ist, tragen Sie '/' ein."; $text["settings_httpRoot"] = "HTTP Wurzelverzeichnis"; $text["settings_installADOdb"] = "Installieren Sie ADOdb"; $text["settings_install_success"] = "Die Installation wurde erfolgreich beendet"; $text["settings_install_pear_package_log"] = "Installieren Sie das Pear-Packet 'Log'"; $text["settings_install_pear_package_webdav"] = "Installieren Sie das Pear-Packet 'HTTP_WebDAV_Server', if you intend to use the webdav interface"; $text["settings_install_zendframework"] = "Installieren Sie das Zend Framework, wenn Sie die Volltextindizierung nutzen möchten."; $text["settings_language"] = "Voreingestellte Sprache"; $text["settings_language_desc"] = "Voreingestellte Sprache (entspricht dem Unterverzeichnis im Verzeichnis 'languages')"; $text["settings_logFileEnable_desc"] = "Anwählen, um alle Aktionen in einer Log-Datei im Datenverzeichnis zu speichern."; $text["settings_logFileEnable"] = "Log-Datei ein-/ausschalten"; $text["settings_logFileRotation_desc"] = "Zeitraum nachdem eine Rotation der Log-Datei durchgeführt wird"; $text["settings_logFileRotation"] = "Rotation der Log-Datei"; $text["settings_luceneDir"] = "Verzeichnis für Volltextindex"; $text["settings_maxDirID_desc"] = "Maximale Anzahl der Unterverzeichnisse in einem Verzeichnis. Voreingestellt ist 32700."; $text["settings_maxDirID"] = "Max. Anzahl Unterverzeichnisse"; $text["settings_maxExecutionTime_desc"] = "Maximale Zeit in Sekunden bis ein Skript beendet wird."; $text["settings_maxExecutionTime"] = "Max. Ausführungszeit (s)"; $text["settings_more_settings"] = "Weitere Einstellungen. Login mit admin/admin"; $text["settings_no_content_dir"] = "Content directory"; $text["settings_notfound"] = "Nicht gefunden"; $text["settings_notwritable"] = "Die Konfiguration kann nicht gespeichert werden, weil die Konfigurationsdatei nicht schreibbar ist."; $text["settings_partitionSize"] = "Partitionsgröße"; $text["settings_partitionSize_desc"] = "Größe der partiellen Uploads in Bytes durch den Jumploader. Wählen Sie diesen Wert nicht größer als maximale Upload-Größe, die durch den Server vorgegeben ist."; $text["settings_perms"] = "Berechtigungen"; $text["settings_pear_log"] = "Pear-Packet : Log"; $text["settings_pear_webdav"] = "Pear-Packet : HTTP_WebDAV_Server"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP-Erweiterung: php_gd2"; $text["settings_php_mbstring"] = "PHP-Erweiterung: php_mbstring"; $text["settings_printDisclaimer_desc"] = "Anwählen, um die rechtlichen Hinweise am Ende jeder Seite anzuzeigen."; $text["settings_printDisclaimer"] = "Rechtliche Hinweise"; $text["settings_restricted_desc"] = "Nur Benutzer, die einen Eintrag in der Benutzerdatenbank haben dürfen sich einloggen (unabhängig von einer erfolgreichen Authentifizierung über LDAP)"; $text["settings_restricted"] = "Beschränkter Zugriff"; $text["settings_rootDir_desc"] = "Wurzelverzeichnis von letoDMS auf der Festplatte"; $text["settings_rootDir"] = "Wurzelverzeichnis"; $text["settings_rootFolderID_desc"] = "Id des Wurzelordners in letoDMS (kann in der Regel unverändert bleiben)"; $text["settings_rootFolderID"] = "Id des Wurzelordners"; $text["settings_SaveError"] = "Fehler beim Speichern der Konfiguration"; $text["settings_Server"] = "Server-Einstellungen"; $text["settings"] = "Einstellungen"; $text["settings_siteDefaultPage_desc"] = "Erste Seite nach der Anmeldung. Voreingestellt ist 'out/out.ViewFolder.php'"; $text["settings_siteDefaultPage"] = "Startseite"; $text["settings_siteName_desc"] = "Name der Site zur Anzeige in Seitentiteln. Voreingestellt ist 'letoDMS'"; $text["settings_siteName"] = "Name der Site"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server Port, voreingestellt ist 25"; $text["settings_smtpPort"] = "SMTP Server Port"; $text["settings_smtpSendFrom_desc"] = "Absenderadresse für herausgehende Mails"; $text["settings_smtpSendFrom"] = "Absenderadresse"; $text["settings_smtpServer_desc"] = "SMTP Server-Hostname"; $text["settings_smtpServer"] = "SMTP Server-Hostname"; $text["settings_SMTP"] = "SMTP Server-Einstellungen"; $text["settings_stagingDir"] = "Verzeichnis für partielle Uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Genauer Formular-Check"; $text["settings_suggestionvalue"] = "Vorgeschlagener Wert"; $text["settings_System"] = "System"; $text["settings_theme"] = "Aussehen"; $text["settings_theme_desc"] = "Voreingestelltes Aussehen (Name des Unterordners 'styles')"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateDatabase"] = "Datenbank-Update-Skript ausführen"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "Der Name der Datei mit Versionsinformationen, wie sie durch das Backup-Tool erzeugt werden."; $text["settings_versioningFileName"] = "Versionsinfo-Datei"; $text["settings_viewOnlineFileTypes_desc"] = "Dateien mit den angegebenen Endungen können Online angeschaut werden (benutzen Sie ausschließlich Kleinbuchstaben)."; $text["settings_viewOnlineFileTypes"] = "Dateitypen für Online-Ansicht"; $text["settings_zendframework"] = "Zend Framework"; $text["signed_in_as"] = "Angemeldet als"; $text["sign_in"] = "Anmelden"; $text["sign_out"] = "Abmelden"; $text["space_used_on_data_folder"] = "Benutzter Plattenplatz"; $text["status_approval_rejected"] = "Entwurf abgelehnt"; $text["status_approved"] = "freigegeben"; $text["status_approver_removed"] = "Freigebender wurde vom Prozess ausgeschlossen"; $text["status_not_approved"] = "keine Freigabe"; $text["status_not_reviewed"] = "nicht geprüft"; $text["status_reviewed"] = "geprüft"; $text["status_reviewer_rejected"] = "Entwurf abgelehnt"; $text["status_reviewer_removed"] = "Prüfer wurde vom Prozess ausgeschlossen"; $text["status"] = "Status"; $text["status_unknown"] = "unbekannt"; $text["storage_size"] = "Speicherverbrauch"; $text["submit_approval"] = "Freigabe hinzufügen"; $text["submit_login"] = "Anmelden"; $text["submit_password"] = "Setze neues Passwort"; $text["submit_password_forgotten"] = "Neues Passwort setzen und per E-Mail schicken"; $text["submit_review"] = "Überprüfung hinzufügen"; $text["sunday"] = "Sonntag"; $text["theme"] = "Aussehen"; $text["thursday"] = "Donnerstag"; $text["toggle_manager"] = "Managerstatus wechseln"; $text["to"] = "bis"; $text["tuesday"] = "Dienstag"; $text["under_folder"] = "In Ordner"; $text["unknown_command"] = "unbekannter Befehl"; $text["unknown_document_category"] = "Unbekannte Kategorie"; $text["unknown_group"] = "unbekannte Gruppenidentifikation"; $text["unknown_id"] = "unbekannte id"; $text["unknown_keyword_category"] = "unbekannte Kategorie"; $text["unknown_owner"] = "unbekannte Besitzeridentifikation"; $text["unknown_user"] = "unbekannte Benutzeridentifikation"; $text["unlock_cause_access_mode_all"] = "Sie verfügen jedoch über unbeschränken Zugriff auf dieses Dokument.
Daher wird die Sperrung beim Update automatisch aufgehoben"; $text["unlock_cause_locking_user"] = "Sie sind im Moment mit demselben Benutzer angemeldet.
Daher wird die Sperrung beim Update automatisch aufgehoben"; $text["unlock_document"] = "Sperrung aufheben"; $text["update_approvers"] = "Liste der Freigebenden aktualisieren"; $text["update_document"] = "aktualisieren"; $text["update_fulltext_index"] = "Aktualisiere Volltextindex"; $text["update_info"] = "Informationen zur Aktualisierung"; $text["update_locked_msg"] = "Dieses Dokument wurde gesperrt

Die Sperrung wurde von [username] eingerichtet.
"; $text["update_reviewers"] = "Liste der Prüfer aktualisieren"; $text["update"] = "aktualisieren"; $text["uploaded_by"] = "Hochgeladen durch"; $text["uploading_failed"] = "Das Hochladen der Datei ist fehlgeschlagen.
Bitte Administrator benachrichtigen

"; $text["use_default_categories"] = "Kategorievorlagen"; $text["use_default_keywords"] = "Stichwortvorlagen"; $text["user_exists"] = "Benutzer besteht bereits."; $text["user_image"] = "Bild"; $text["user_info"] = "Benutzerinformation"; $text["user_list"] = "Benutzerübersicht"; $text["user_login"] = "Benutzername"; $text["user_management"] = "Benutzerverwaltung"; $text["user_name"] = "Vollst. Name"; $text["users"] = "Benutzer"; $text["user"] = "Benutzer"; $text["version_deleted_email"] = "Version gelöscht"; $text["version_info"] = "Versionsinformation"; $text["versioning_file_creation"] = "Datei-Versionierung"; $text["versioning_file_creation_warning"] = "Sie erzeugen eine Datei die sämtliche Versions-Informationen eines DMS-Verzeichnisses enthält. Nach Erstellung wird jede Datei im Dokumentenverzeichnis gespeichert."; $text["versioning_info"] = "Versioning info"; $text["version"] = "Version"; $text["view_online"] = "Online betrachten"; $text["warning"] = "Warnung"; $text["wednesday"] = "Mitwoch"; $text["week_view"] = "Wochenansicht"; $text["year_view"] = "Jahresansicht"; $text["yes"] = "Ja"; ?> letodms-3.3.11+dfsg.1/languages/German/help.htm0000644000175000017500000000002412040235120021626 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/English/0000755000175000017500000000000012040235120020350 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/English/lang.inc0000644000175000017500000011463312040235120021774 0ustar franciscofranciscoWARNING: an archive created as human readable will be unusable as server backup."; $text["assign_approvers"] = "Assign Approvers"; $text["assign_reviewers"] = "Assign Reviewers"; $text["assign_user_property_to"] = "Assign user's properties to"; $text["assumed_released"] = "Assumed released"; $text["august"] = "August"; $text["automatic_status_update"] = "Automatic status change"; $text["back"] = "Go back"; $text["backup_list"] = "Existings backup list"; $text["backup_remove"] = "Remove backup file"; $text["backup_tools"] = "Backup tools"; $text["between"] = "between"; $text["calendar"] = "Calendar"; $text["cancel"] = "Cancel"; $text["cannot_assign_invalid_state"] = "Cannot modify an obsolete or rejected document"; $text["cannot_change_final_states"] = "Warning: You cannot alter status for document rejected, expired or with pending review or approval"; $text["cannot_delete_yourself"] = "Cannot delete yourself"; $text["cannot_move_root"] = "Error: Cannot move root folder."; $text["cannot_retrieve_approval_snapshot"] = "Unable to retrieve approval status snapshot for this document version."; $text["cannot_retrieve_review_snapshot"] = "Unable to retrieve review status snapshot for this document version."; $text["cannot_rm_root"] = "Error: Cannot delete root folder."; $text["category"] = "Category"; $text["category_exists"] = "Category already exists."; $text["category_filter"] = "Only categories"; $text["category_in_use"] = "This category is currently used by documents."; $text["category_noname"] = "No category name given."; $text["categories"] = "Categories"; $text["change_assignments"] = "Change Assignments"; $text["change_password"] = "Change password"; $text["change_password_message"] = "Your password has been changed."; $text["change_status"] = "Change Status"; $text["choose_category"] = "Please choose"; $text["choose_group"] = "Choose group"; $text["choose_target_category"] = "Choose category"; $text["choose_target_document"] = "Choose document"; $text["choose_target_folder"] = "Choose folder"; $text["choose_user"] = "Choose user"; $text["comment_changed_email"] = "Comment changed"; $text["comment"] = "Comment"; $text["comment_for_current_version"] = "Version comment"; $text["confirm_create_fulltext_index"] = "Yes, I would like to recreate the fulltext index!"; $text["confirm_pwd"] = "Confirm Password"; $text["confirm_rm_backup"] = "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_document"] = "Do you really want to remove the document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_dump"] = "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_event"] = "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_file"] = "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_folder"] = "Do you really want to remove the folder \"[foldername]\" and its content?
Be careful: This action cannot be undone."; $text["confirm_rm_folder_files"] = "Do you really want to remove all the files of the folder \"[foldername]\" and of its subfolders?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_log"] = "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_version"] = "Do you really want to remove version [version] of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["content"] = "Content"; $text["continue"] = "Continue"; $text["create_fulltext_index"] = "Create fulltext index"; $text["create_fulltext_index_warning"] = "You are to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation."; $text["creation_date"] = "Created"; $text["current_password"] = "Current Password"; $text["current_version"] = "Current version"; $text["daily"] = "Daily"; $text["databasesearch"] = "Database search"; $text["december"] = "December"; $text["default_access"] = "Default Access Mode"; $text["default_keywords"] = "Available keywords"; $text["delete"] = "Delete"; $text["details"] = "Details"; $text["details_version"] = "Details for version: [version]"; $text["disclaimer"] = "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the national and international laws."; $text["do_object_repair"] = "Repair all folders and documents."; $text["document_already_locked"] = "This document is aleady locked"; $text["document_deleted"] = "Document deleted"; $text["document_deleted_email"] = "Document deleted"; $text["document"] = "Document"; $text["document_infos"] = "Document Information"; $text["document_is_not_locked"] = "This document is not locked"; $text["document_link_by"] = "Linked by"; $text["document_link_public"] = "Public"; $text["document_moved_email"] = "Document moved"; $text["document_renamed_email"] = "Document renamed"; $text["documents"] = "Documents"; $text["documents_in_process"] = "Documents In Process"; $text["documents_locked_by_you"] = "Documents locked by you"; $text["document_status_changed_email"] = "Document status changed"; $text["documents_to_approve"] = "Documents awaiting your approval"; $text["documents_to_review"] = "Documents awaiting your Review"; $text["documents_user_requiring_attention"] = "Documents owned by you that require attention"; $text["document_title"] = "Document '[documentname]'"; $text["document_updated_email"] = "Document updated"; $text["does_not_expire"] = "Does not expire"; $text["does_not_inherit_access_msg"] = "Inherit access"; $text["download"] = "Download"; $text["draft_pending_approval"] = "Draft - pending approval"; $text["draft_pending_review"] = "Draft - pending review"; $text["dump_creation"] = "DB dump creation"; $text["dump_creation_warning"] = "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "Existings dump files"; $text["dump_remove"] = "Remove dump file"; $text["edit_comment"] = "Edit comment"; $text["edit_default_keywords"] = "Edit keywords"; $text["edit_document_access"] = "Edit Access"; $text["edit_document_notify"] = "Document Notification List"; $text["edit_document_props"] = "Edit document"; $text["edit"] = "Edit"; $text["edit_event"] = "Edit event"; $text["edit_existing_access"] = "Edit Access List"; $text["edit_existing_notify"] = "Edit notification list"; $text["edit_folder_access"] = "Edit access"; $text["edit_folder_notify"] = "Folder Notification List"; $text["edit_folder_props"] = "Edit folder"; $text["edit_group"] = "Edit group"; $text["edit_user_details"] = "Edit User Details"; $text["edit_user"] = "Edit user"; $text["email"] = "Email"; $text["email_error_title"] = "No email entered"; $text["email_footer"] = "You can always change your e-mail settings using 'My Account' functions"; $text["email_header"] = "This is an automatic message from the DMS server."; $text["email_not_given"] = "Please enter a valid email address."; $text["empty_notify_list"] = "No entries"; $text["error"] = "Error"; $text["error_no_document_selected"] = "No document selected"; $text["error_no_folder_selected"] = "No folder selected"; $text["error_occured"] = "An error has occured"; $text["event_details"] = "Event details"; $text["expired"] = "Expired"; $text["expires"] = "Expires"; $text["expiry_changed_email"] = "Expiry date changed"; $text["february"] = "February"; $text["file"] = "File"; $text["files_deletion"] = "Files deletion"; $text["files_deletion_warning"] = "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["files"] = "Files"; $text["file_size"] = "Filesize"; $text["folder_contents"] = "Folder Contents"; $text["folder_deleted_email"] = "Folder deleted"; $text["folder"] = "Folder"; $text["folder_infos"] = "Folder Information"; $text["folder_moved_email"] = "Folder moved"; $text["folder_renamed_email"] = "Folder renamed"; $text["folders_and_documents_statistic"] = "Contents overview"; $text["folders"] = "Folders"; $text["folder_title"] = "Folder '[foldername]'"; $text["friday"] = "Friday"; $text["from"] = "From"; $text["fullsearch"] = "Full text search"; $text["fullsearch_hint"] = "Use fulltext index"; $text["fulltext_info"] = "Fulltext index info"; $text["global_default_keywords"] = "Global keywords"; $text["global_document_categories"] = "Categories"; $text["group_approval_summary"] = "Group approval summary"; $text["group_exists"] = "Group already exists."; $text["group"] = "Group"; $text["group_management"] = "Groups management"; $text["group_members"] = "Group members"; $text["group_review_summary"] = "Group review summary"; $text["groups"] = "Groups"; $text["guest_login_disabled"] = "Guest login is disabled."; $text["guest_login"] = "Login as guest"; $text["help"] = "Help"; $text["hourly"] = "Hourly"; $text["human_readable"] = "Human readable archive"; $text["include_documents"] = "Include documents"; $text["include_subdirectories"] = "Include subdirectories"; $text["individuals"] = "Individuals"; $text["inherits_access_msg"] = "Access is being inherited."; $text["inherits_access_copy_msg"] = "Copy inherited access list"; $text["inherits_access_empty_msg"] = "Start with empty access list"; $text["internal_error_exit"] = "Internal error. Unable to complete request. Exiting."; $text["internal_error"] = "Internal error"; $text["invalid_access_mode"] = "Invalid Access Mode"; $text["invalid_action"] = "Invalid Action"; $text["invalid_approval_status"] = "Invalid Approval Status"; $text["invalid_create_date_end"] = "Invalid end date for creation date range."; $text["invalid_create_date_start"] = "Invalid start date for creation date range."; $text["invalid_doc_id"] = "Invalid Document ID"; $text["invalid_file_id"] = "Invalid file ID"; $text["invalid_folder_id"] = "Invalid Folder ID"; $text["invalid_group_id"] = "Invalid Group ID"; $text["invalid_link_id"] = "Invalid link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Invalid Review Status"; $text["invalid_sequence"] = "Invalid sequence value"; $text["invalid_status"] = "Invalid Document Status"; $text["invalid_target_doc_id"] = "Invalid Target Document ID"; $text["invalid_target_folder"] = "Invalid Target Folder ID"; $text["invalid_user_id"] = "Invalid User ID"; $text["invalid_version"] = "Invalid Document Version"; $text["is_hidden"] = "Hide from users list"; $text["january"] = "January"; $text["js_no_approval_group"] = "Please select a approval group"; $text["js_no_approval_status"] = "Please select the approval status"; $text["js_no_comment"] = "There is no comment"; $text["js_no_email"] = "Type in your Email-address"; $text["js_no_file"] = "Please select a file"; $text["js_no_keywords"] = "Specify some keywords"; $text["js_no_login"] = "Please type in a username"; $text["js_no_name"] = "Please type in a name"; $text["js_no_override_status"] = "Please select the new [override] status"; $text["js_no_pwd"] = "You need to type in your password"; $text["js_no_query"] = "Type in a query"; $text["js_no_review_group"] = "Please select a review group"; $text["js_no_review_status"] = "Please select the review status"; $text["js_pwd_not_conf"] = "Password and passwords-confirmation are not equal"; $text["js_select_user_or_group"] = "Select at least a user or a group"; $text["js_select_user"] = "Please select an user"; $text["july"] = "July"; $text["june"] = "June"; $text["keyword_exists"] = "Keyword already exists"; $text["keywords"] = "Keywords"; $text["language"] = "Language"; $text["last_update"] = "Last Update"; $text["link_alt_updatedocument"] = "If you would like to upload files bigger than the current maximum upload size, please use the alternative upload page."; $text["linked_documents"] = "Related Documents"; $text["linked_files"] = "Attachments"; $text["local_file"] = "Local file"; $text["locked_by"] = "Locked by"; $text["lock_document"] = "Lock"; $text["lock_message"] = "This document is locked by [username]. Only authorized users can unlock this document."; $text["lock_status"] = "Status"; $text["login"] = "Login"; $text["login_error_text"] = "Error signing in. User ID or password incorrect."; $text["login_error_title"] = "Sign in error"; $text["login_not_given"] = "No username has been supplied"; $text["login_ok"] = "Sign in successful"; $text["log_management"] = "Log files management"; $text["logout"] = "Logout"; $text["manager"] = "Manager"; $text["march"] = "March"; $text["max_upload_size"] = "Maximum upload size"; $text["may"] = "May"; $text["monday"] = "Monday"; $text["month_view"] = "Month view"; $text["monthly"] = "Monthly"; $text["move_document"] = "Move document"; $text["move_folder"] = "Move Folder"; $text["move"] = "Move"; $text["my_account"] = "My Account"; $text["my_documents"] = "My Documents"; $text["name"] = "Name"; $text["new_default_keyword_category"] = "Add category"; $text["new_default_keywords"] = "Add keywords"; $text["new_document_category"] = "Add category"; $text["new_document_email"] = "New document"; $text["new_file_email"] = "New attachment"; $text["new_folder"] = "New folder"; $text["new"] = "New"; $text["new_subfolder_email"] = "New folder"; $text["new_user_image"] = "New image"; $text["no_action"] = "No action required"; $text["no_approval_needed"] = "No approval pending."; $text["no_attached_files"] = "No attached files"; $text["no_default_keywords"] = "No keywords available"; $text["no_docs_locked"] = "No documents locked."; $text["no_docs_to_approve"] = "There are currently no documents that require approval."; $text["no_docs_to_look_at"] = "No documents that need attention."; $text["no_docs_to_review"] = "There are currently no documents that require review."; $text["no_group_members"] = "This group has no members"; $text["no_groups"] = "No groups"; $text["no"] = "No"; $text["no_linked_files"] = "No linked files"; $text["no_previous_versions"] = "No other versions found"; $text["no_review_needed"] = "No review pending."; $text["notify_added_email"] = "You've been added to notify list"; $text["notify_deleted_email"] = "You've been removed from notify list"; $text["no_update_cause_locked"] = "You can therefore not update this document. Please contanct the locking user."; $text["no_user_image"] = "No image found"; $text["november"] = "November"; $text["objectcheck"] = "Folder/Document check"; $text["obsolete"] = "Obsolete"; $text["october"] = "October"; $text["old"] = "Old"; $text["only_jpg_user_images"] = "Only .jpg-images may be used as user-images"; $text["owner"] = "Owner"; $text["ownership_changed_email"] = "Owner changed"; $text["password"] = "Password"; $text["password_repeat"] = "Repeat password"; $text["password_forgotten"] = "Password forgotten"; $text["password_forgotten_email_subject"] = "Password forgotten"; $text["password_forgotten_email_body"] = "Dear user of LetoDMS,\n\nwe have received a request to change your password.\n\nThis can be done by clicking on the following link:\n\n###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH###\n\nIf you have still problems to login, then please contact your administrator."; $text["password_forgotten_send_hash"] = "Instructions on how to proceed has been send to the user's email address"; $text["password_forgotten_text"] = "Fill out the form below and follow the instructions in the email, which will be send to you."; $text["password_forgotten_title"] = "Password send"; $text["password_wrong"] = "Wrong password"; $text["personal_default_keywords"] = "Personal keywordlists"; $text["previous_versions"] = "Previous Versions"; $text["refresh"] = "Refresh"; $text["rejected"] = "Rejected"; $text["released"] = "Released"; $text["removed_approver"] = "has been removed from the list of approvers."; $text["removed_file_email"] = "Removed attachment"; $text["removed_reviewer"] = "has been removed from the list of reviewers."; $text["repairing_objects"] = "Reparing documents and folders."; $text["results_page"] = "Results Page"; $text["review_deletion_email"] = "Review request deleted"; $text["reviewer_already_assigned"] = "is already assigned as a reviewer"; $text["reviewer_already_removed"] = "has already been removed from review process or has already submitted a review"; $text["reviewers"] = "Reviewers"; $text["review_group"] = "Review Group"; $text["review_request_email"] = "Review request"; $text["review_status"] = "Review Status"; $text["review_submit_email"] = "Submitted review"; $text["review_summary"] = "Review Summary"; $text["review_update_failed"] = "Error updating review status. Update failed."; $text["rm_default_keyword_category"] = "Delete category"; $text["rm_document"] = "Remove document"; $text["rm_document_category"] = "Delete category"; $text["rm_file"] = "Remove file"; $text["rm_folder"] = "Remove folder"; $text["rm_group"] = "Remove this group"; $text["rm_user"] = "Remove this user"; $text["rm_version"] = "Remove version"; $text["role_admin"] = "Administrator"; $text["role_guest"] = "Guest"; $text["role_user"] = "User"; $text["role"] = "Role"; $text["saturday"] = "Saturday"; $text["save"] = "Save"; $text["search_fulltext"] = "Search in fulltext"; $text["search_in"] = "Search in"; $text["search_mode_and"] = "all words"; $text["search_mode_or"] = "at least one word"; $text["search_no_results"] = "There are no documents that match your search"; $text["search_query"] = "Search for"; $text["search_report"] = "Found [doccount] documents and [foldercount] folders"; $text["search_report_fulltext"] = "Found [doccount] documents"; $text["search_results_access_filtered"] = "Search results may contain content to which access has been denied."; $text["search_results"] = "Search results"; $text["search"] = "Search"; $text["search_time"] = "Elapsed time: [time] sec."; $text["selection"] = "Selection"; $text["select_one"] = "Select one"; $text["september"] = "September"; $text["seq_after"] = "After \"[prevname]\""; $text["seq_end"] = "At the end"; $text["seq_keep"] = "Keep Position"; $text["seq_start"] = "First position"; $text["sequence"] = "Sequence"; $text["set_expiry"] = "Set Expiry"; $text["set_owner_error"] = "Error setting owner"; $text["set_owner"] = "Set Owner"; $text["settings_install_welcome_title"] = "Welcome to the installation of letoDMS"; $text["settings_install_welcome_text"] = "

Before you start to install letoDMS make sure you have created a file 'ENABLE_INSTALL_TOOL' in your configuration directory, otherwise the installation will not work. On Unix-System this can easily be done with 'touch conf/ENABLE_INSTALL_TOOL'. After you have finished the installation delete the file.

letoDMS has very minimal requirements. You will need a mysql database and a php enabled web server. For the lucene full text search, you will also need the Zend framework installed on disk where it can be found by php. Starting with version 3.2.0 of letoDMS ADOdb will not be part of the distribution anymore. Get a copy of it from http://adodb.sourceforge.net and install it. The path to it can later be set during installation.

If you like to create the database before you start installation, then just create it manually with your favorite tool, optionally create a database user with access on the database and import one of the database dumps in the configuration directory. The installation script can do that for you as well, but it will need database access with sufficient rights to create databases.

"; $text["settings_start_install"] = "Start installation"; $text["settings_stopWordsFile"] = "Path to stop words file"; $text["settings_stopWordsFile_desc"] = "If fulltext search is enabled, this file will contain stop words not being indexed"; $text["settings_activate_module"] = "Activate module"; $text["settings_activate_php_extension"] = "Activate PHP extension"; $text["settings_adminIP"] = "Admin IP"; $text["settings_adminIP_desc"] = "If set admin can login only by specified IP addres, leave empty to avoid the control. NOTE: works only with local autentication (no LDAP)"; $text["settings_ADOdbPath"] = "ADOdb Path"; $text["settings_ADOdbPath_desc"] = "Path to adodb. This is the directory containing the adodb directory"; $text["settings_Advanced"] = "Advanced"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Authentication settings"; $text["settings_Calendar"] = "Calendar settings"; $text["settings_calendarDefaultView"] = "Calendar Default View"; $text["settings_calendarDefaultView_desc"] = "Calendar default view"; $text["settings_contentDir"] = "Content directory"; $text["settings_contentDir_desc"] = "Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "To work around limitations in the underlying file system, a new directory structure has been devised that exists within the content directory (Content Directory). This requires a base directory from which to begin. Usually leave this to the default setting, 1048576, but can be any number or string that does not already exist within (Content Directory)"; $text["settings_coreDir"] = "Core letoDMS directory"; $text["settings_coreDir_desc"] = "Path to LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS directory"; $text["settings_luceneClassDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene index directory"; $text["settings_luceneDir_desc"] = "Path to Lucene index"; $text["settings_cannot_disable"] = "File ENABLE_INSTALL_TOOL could not deleted"; $text["settings_install_disabled"] = "File ENABLE_INSTALL_TOOL was deleted. You can now log into LetoDMS and do further configuration."; $text["settings_createdatabase"] = "Create database tables"; $text["settings_createdirectory"] = "Create directory"; $text["settings_currentvalue"] = "Current value"; $text["settings_Database"] = "Database settings"; $text["settings_dbDatabase"] = "Database"; $text["settings_dbDatabase_desc"] = "The name for your database entered during the installation process. Do not edit this field unless necessary, if for example the database has been moved."; $text["settings_dbDriver"] = "Database Type"; $text["settings_dbDriver_desc"] = "The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database perhaps due to changing hosts. Type of DB-Driver used by adodb (see adodb-readme)"; $text["settings_dbHostname_desc"] = "The hostname for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbHostname"] = "Server name"; $text["settings_dbPass_desc"] = "The password for access to your database entered during the installation process."; $text["settings_dbPass"] = "Password"; $text["settings_dbUser_desc"] = "The username for access to your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbUser"] = "Username"; $text["settings_dbVersion"] = "Database schema too old"; $text["settings_delete_install_folder"] = "In order to use LetoDMS, you must delete the file ENABLE_INSTALL_TOOL in the configuration directory"; $text["settings_disable_install"] = "Delete file ENABLE_INSTALL_TOOL if possible"; $text["settings_disableSelfEdit_desc"] = "If checked user cannot edit his own profile"; $text["settings_disableSelfEdit"] = "Disable Self Edit"; $text["settings_Display"] = "Display settings"; $text["settings_Edition"] = "Edition settings"; $text["settings_enableAdminRevApp_desc"] = "Uncheck to don't list administrator as reviewer/approver"; $text["settings_enableAdminRevApp"] = "Enable Admin Rev App"; $text["settings_enableCalendar_desc"] = "Enable/disable calendar"; $text["settings_enableCalendar"] = "Enable Calendar"; $text["settings_enableConverting_desc"] = "Enable/disable converting of files"; $text["settings_enableConverting"] = "Enable Converting"; $text["settings_enableEmail_desc"] = "Enable/disable automatic email notification"; $text["settings_enableEmail"] = "Enable E-mail"; $text["settings_enableFolderTree_desc"] = "False to don't show the folder tree"; $text["settings_enableFolderTree"] = "Enable Folder Tree"; $text["settings_enableFullSearch"] = "Enable Full text search"; $text["settings_enableFullSearch_desc"] = "Enable Full text search"; $text["settings_enableGuestLogin_desc"] = "If you want anybody to login as guest, check this option. Note: guest login should be used only in a trusted environment"; $text["settings_enableGuestLogin"] = "Enable Guest Login"; $text["settings_enableLargeFileUpload_desc"] = "If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step."; $text["settings_enableLargeFileUpload"] = "Enable large file upload"; $text["settings_enablePasswordForgotten_desc"] = "If you want to allow user to set a new password and send it by mail, check this option."; $text["settings_enablePasswordForgotten"] = "Enable Password forgotten"; $text["settings_enableUserImage_desc"] = "Enable users images"; $text["settings_enableUserImage"] = "Enable User Image"; $text["settings_enableUsersView_desc"] = "Enable/disable group and user view for all users"; $text["settings_enableUsersView"] = "Enable Users View"; $text["settings_encryptionKey"] = "Encryption key"; $text["settings_encryptionKey_desc"] = "This string is used for creating a unique identifier being added as a hidden field to a formular in order to prevent CSRF attacks."; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expand Folder Tree"; $text["settings_expandFolderTree"] = "Expand Folder Tree"; $text["settings_expandFolderTree_val0"] = "start with tree hidden"; $text["settings_expandFolderTree_val1"] = "start with tree shown and first level expanded"; $text["settings_expandFolderTree_val2"] = "start with tree shown fully expanded"; $text["settings_firstDayOfWeek_desc"] = "First day of the week"; $text["settings_firstDayOfWeek"] = "First day of the week"; $text["settings_footNote_desc"] = "Message to display at the bottom of every page"; $text["settings_footNote"] = "Foot Note"; $text["settings_guestID_desc"] = "ID of guest-user used when logged in as guest (mostly no need to change)"; $text["settings_guestID"] = "Guest ID"; $text["settings_httpRoot_desc"] = "The relative path in the URL, after the domain part. Do not include the http:// prefix or the web host name. e.g. If the full URL is http://www.example.com/letodms/, set '/letodms/'. If the URL is http://www.example.com/, set '/'"; $text["settings_httpRoot"] = "Http Root"; $text["settings_installADOdb"] = "Install ADOdb"; $text["settings_install_success"] = "The installation has been successfully completed."; $text["settings_install_pear_package_log"] = "Install Pear package 'Log'"; $text["settings_install_pear_package_webdav"] = "Install Pear package 'HTTP_WebDAV_Server', if you intend to use the webdav interface"; $text["settings_install_zendframework"] = "Install Zend Framework, if you intend to use the full text search engine"; $text["settings_language"] = "Default language"; $text["settings_language_desc"] = "Default language (name of a subfolder in folder \"languages\")"; $text["settings_logFileEnable_desc"] = "Enable/disable log file"; $text["settings_logFileEnable"] = "Log File Enable"; $text["settings_logFileRotation_desc"] = "The log file rotation"; $text["settings_logFileRotation"] = "Log File Rotation"; $text["settings_luceneDir"] = "Directory for full text index"; $text["settings_maxDirID_desc"] = "Maximum number of sub-directories per parent directory. Default: 32700."; $text["settings_maxDirID"] = "Max Directory ID"; $text["settings_maxExecutionTime_desc"] = "This sets the maximum time in seconds a script is allowed to run before it is terminated by the parse"; $text["settings_maxExecutionTime"] = "Max Execution Time (s)"; $text["settings_more_settings"] = "Configure more settings. Default login: admin/admin"; $text["settings_no_content_dir"] = "Content directory"; $text["settings_notfound"] = "Not found"; $text["settings_notwritable"] = "The configuration cannot be saved because the configuration file is not writable."; $text["settings_partitionSize"] = "Partial filesize"; $text["settings_partitionSize_desc"] = "Size of partial files in bytes, uploaded by jumploader. Do not set a value larger than the maximum upload size set by the server."; $text["settings_perms"] = "Permissions"; $text["settings_pear_log"] = "Pear package : Log"; $text["settings_pear_webdav"] = "Pear package : HTTP_WebDAV_Server"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "If true the disclaimer message the lang.inc files will be print on the bottom of the page"; $text["settings_printDisclaimer"] = "Print Disclaimer"; $text["settings_restricted_desc"] = "Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Restricted access"; $text["settings_rootDir_desc"] = "Path to where letoDMS is located"; $text["settings_rootDir"] = "Root directory"; $text["settings_rootFolderID_desc"] = "ID of root-folder (mostly no need to change)"; $text["settings_rootFolderID"] = "Root Folder ID"; $text["settings_SaveError"] = "Configuration file save error"; $text["settings_Server"] = "Server settings"; $text["settings"] = "Settings"; $text["settings_siteDefaultPage_desc"] = "Default page on login. If empty defaults to out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Site Default Page"; $text["settings_siteName_desc"] = "Name of site used in the page titles. Default: letoDMS"; $text["settings_siteName"] = "Site Name"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server port, default 25"; $text["settings_smtpPort"] = "SMTP Server port"; $text["settings_smtpSendFrom_desc"] = "Send from"; $text["settings_smtpSendFrom"] = "Send from"; $text["settings_smtpServer_desc"] = "SMTP Server hostname"; $text["settings_smtpServer"] = "SMTP Server hostname"; $text["settings_SMTP"] = "SMTP Server settings"; $text["settings_stagingDir"] = "Directory for partial uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Strict Form Check"; $text["settings_suggestionvalue"] = "Suggestion value"; $text["settings_System"] = "System"; $text["settings_theme"] = "Default theme"; $text["settings_theme_desc"] = "Default style (name of a subfolder in folder \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateDatabase"] = "Run schema update scripts on database"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "The name of the versioning info file created by the backup tool"; $text["settings_versioningFileName"] = "Versioning FileName"; $text["settings_viewOnlineFileTypes_desc"] = "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)"; $text["settings_viewOnlineFileTypes"] = "View Online File Types"; $text["settings_zendframework"] = "Zend Framework"; $text["signed_in_as"] = "Signed in as"; $text["sign_in"] = "sign in"; $text["sign_out"] = "sign out"; $text["space_used_on_data_folder"] = "Space used on data folder"; $text["status_approval_rejected"] = "Draft rejected"; $text["status_approved"] = "Approved"; $text["status_approver_removed"] = "Approver removed from process"; $text["status_not_approved"] = "Not approved"; $text["status_not_reviewed"] = "Not reviewed"; $text["status_reviewed"] = "Reviewed"; $text["status_reviewer_rejected"] = "Draft rejected"; $text["status_reviewer_removed"] = "Reviewer removed from process"; $text["status"] = "Status"; $text["status_unknown"] = "Unknown"; $text["storage_size"] = "Storage size"; $text["submit_approval"] = "Submit approval"; $text["submit_login"] = "Sign in"; $text["submit_password"] = "Set new password"; $text["submit_password_forgotten"] = "Start process"; $text["submit_review"] = "Submit review"; $text["sunday"] = "Sunday"; $text["theme"] = "Theme"; $text["thursday"] = "Thursday"; $text["toggle_manager"] = "Toggle manager"; $text["to"] = "To"; $text["tuesday"] = "Tuesday"; $text["under_folder"] = "In folder"; $text["unknown_command"] = "Command not recognized."; $text["unknown_document_category"] = "Unknown category"; $text["unknown_group"] = "Unknown group id"; $text["unknown_id"] = "unknown id"; $text["unknown_keyword_category"] = "Unknown category"; $text["unknown_owner"] = "Unknown owner id"; $text["unknown_user"] = "Unknown user id"; $text["unlock_cause_access_mode_all"] = "You can still update it because you have access-mode \"all\". Locking will automatically be removed."; $text["unlock_cause_locking_user"] = "You can still update it because you are also the one that locked it. Locking will automatically be removed."; $text["unlock_document"] = "Unlock"; $text["update_approvers"] = "Update List of Approvers"; $text["update_document"] = "Update document"; $text["update_fulltext_index"] = "Update fulltext index"; $text["update_info"] = "Update Information"; $text["update_locked_msg"] = "This document is locked."; $text["update_reviewers"] = "Update List of Reviewers"; $text["update"] = "Update"; $text["uploaded_by"] = "Uploaded by"; $text["uploading_failed"] = "Upload failed. Please contact the administrator."; $text["use_default_categories"] = "Use predefined categories"; $text["use_default_keywords"] = "Use predefined keywords"; $text["user_exists"] = "User already exists."; $text["user_image"] = "Image"; $text["user_info"] = "User Information"; $text["user_list"] = "List of Users"; $text["user_login"] = "User ID"; $text["user_management"] = "Users management"; $text["user_name"] = "Full name"; $text["users"] = "Users"; $text["user"] = "User"; $text["version_deleted_email"] = "Version deleted"; $text["version_info"] = "Version Information"; $text["versioning_file_creation"] = "Versioning file creation"; $text["versioning_file_creation_warning"] = "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder."; $text["versioning_info"] = "Versioning info"; $text["version"] = "Version"; $text["view_online"] = "View online"; $text["warning"] = "Warning"; $text["wednesday"] = "Wednesday"; $text["week_view"] = "Week view"; $text["year_view"] = "Year View"; $text["yes"] = "Yes"; ?> letodms-3.3.11+dfsg.1/languages/English/help.htm0000644000175000017500000001314712040235120022020 0ustar franciscofrancisco

General Notes

A DMS (Document Management System) is designed to allow documents share controlling the workflow, access permissions and organization in general.

Using the first level menu the user can access the various information stored in the system:

  • Content: allows you to browse documents in a file manager style.
  • My documents: has several entries to access documents of interest:
    • Documents in process: lists of documents awaiting review or approval by the user, documents owned by the user who await approval or revision, documents locked by the user.
    • All documents: list of all documents owned by the user.
    • Review summary: list all the documents that were reviewed or awaiting review by the user.
    • Approval summary: list all the documents that were approved or awaiting approval by the user.

This DMS also provides a calendar that serves as virtual bulletin board to share notes, appointments, deadlines and commitments.

Permissions

Authorized users can set if and how other users will access to various folders and documents submitted.

Permission levels

The possible access-levels are:

  • Total permits: the user can perform any operation.
  • Reading and writing: the user can update records and add content to the folders.
  • Read only: the user can view the contents of folders and download documents.
  • No Access: the user cannot view the contents of the folders or individual documents.

By default administrators have total permissions on each document and folder on the system. Similarly, the document owner has total permits on his documents.

Only administrator users can change the owner of a document.

Permissions management

For each folder or document permissions are managed through two different devices

  • The default permissions are valid in the absence of further specific
  • The list of permissions allows you to specify exceptions to the default permissions

Access inheritance

The permissions of folders and documents can be set as hereditary. In this case the files and folders inherit the same permissions of the folder that contains them.

Documents workflow

The system automatically handles the workflow for each document and stores changes, versioning, comments made, etc.

Validation cycle

The normal workflow requires, when loading a new document or a new version, to indicate some users or groups of users as reviewers and/or approvers. Users that are listed as reviewers and approvers are required to explain their approval to the document. When this operation is completed, thus all listed users have made their review/approval, the state of the document will set to 'released'.

The reviewer/approver can deny its approval to the document. In this case the document state is set to 'rejected'.

A doc that are not set reviewers and approvals take immediately the state of 'released'.

As approvers/reviewers one can indicate groups of users. In this case the review/approval should be made by any of the users belonging to the group.

The document owner may at any time amend the list of reviewers/approvers.

Documents status

Possible states for a document are:

  • Draft pending approval: one or more of the approvals referred to have not yet expressed their approval.
  • Draft pending review: one or more of the listed reviewer have not yet expressed their review.
  • Released: the document has successfully completed its validation cycle.
  • Rejected: the document has discontinued its validation cycle.
  • Expired: you have exceeded the target date for completion of the validation of the document.
  • Obsolete: the status of a released document can be changed to obsolete. This is intended as an alternative to the cancellation of the document. Obsolete state is reversible.

Expiration

For each document in production can be set a due date. Once passed the day set are no longer possible revisions or approvals and the document goes into an 'expired' state.

The deadline is considered only for the latest version of the document and has effect only on document processing.

Other features

Lock function

Lock function is designed to indicate to other users that a certain document is in process. Users having total permission on the document can however reverse the lock and proceed to a modification of the document.

Notifications

Each user can request notification on documents and folders. Adding a file or folder in your list of notifications you will receive reporting of transactions by other users.

Only the Manager of a group can decide whether or not to enter the group list reporting on documents and folders. Once inserted, the notifications come all members of the group.

Keywords and search

Each document allows the inclusion of a description and some keywords. These informations are used for research function.

In personal account menu each user can store a set of keywords grouped by categories, in order to speed filling during the loading of documents.

Pressing the search button without entering any word you access the advanced research page.

Calendar

There are three views: by week, month, year. Events are displayed in order of their insertion in the calendar.

Once inserted, the events are public and visible to everyone. Only the administrator and who has entered the event can modify it later.

letodms-3.3.11+dfsg.1/languages/Francais/0000755000175000017500000000000012040235120020505 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Francais/lang.inc0000644000175000017500000010517712040235120022134 0ustar franciscofranciscoWARNING: an archive created as human readable will be unusable as server backup."; $text["assign_approvers"] = "Assign Approvers"; $text["assign_reviewers"] = "Assign Reviewers"; $text["assign_user_property_to"] = "Assign user's properties to"; $text["assumed_released"] = "Assumed released"; $text["august"] = "August"; $text["automatic_status_update"] = "Automatic status change"; $text["back"] = "Retour"; $text["backup_list"] = "Existings backup list"; $text["backup_remove"] = "Remove backup file"; $text["backup_tools"] = "Backup tools"; $text["between"] = "entre"; $text["calendar"] = "Calendar"; $text["cancel"] = "Annuler"; $text["cannot_assign_invalid_state"] = "Ne peut assigner des nouveaux correcteurs à un document qui n'est pas sous révision ou sous approbation."; $text["cannot_change_final_states"] = " Attention : impossible de modifier le statut pour les documents pour les documents qui ont été rejetés, marqués obsolète ou expiré."; $text["cannot_delete_yourself"] = "Cannot delete yourself"; $text["cannot_move_root"] = "Erreur : Ne peut bouger le dossier racine."; $text["cannot_retrieve_approval_snapshot"] = "Impossible de retrouver l'instantané de statut d'approbation pour cette version de document."; $text["cannot_retrieve_review_snapshot"] = "Impossible de retrouver l'instantané de statut de révision pour cette version de document."; $text["cannot_rm_root"] = "Erreur : Dossier racine ineffaçable."; $text["category"] = "Category"; $text["category_filter"] = "Only categories"; $text["category_in_use"] = "This category is currently used by documents."; $text["categories"] = "Categories"; $text["change_assignments"] = "Change Assignments"; $text["change_status"] = "Change Status"; $text["choose_category"] = "--SVP Choisir--"; $text["choose_group"] = "--Choisir un groupe--"; $text["choose_target_category"] = "Choose category"; $text["choose_target_document"] = "Choisir un document"; $text["choose_target_folder"] = "Choisir un dossier cible"; $text["choose_user"] = "--Choisir un utilisateur--"; $text["comment_changed_email"] = "Comment changed"; $text["comment"] = "Commentaires"; $text["comment_for_current_version"] = "Commentaires pour la version actuelle"; $text["confirm_create_fulltext_index"] = "Yes, I would like to recreate the fulltext index!"; $text["confirm_pwd"] = "Confirmer le mot de passe"; $text["confirm_rm_backup"] = "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_document"] = "Voulez-vous réellemen effacer le document \"[documentname]\"?
Attention : cette action ne peut être annulée."; $text["confirm_rm_dump"] = "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_event"] = "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_file"] = "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_folder"] = "Voulez-vous réellement effacer \"[foldername]\" et son contenu ?
Attention : cette action ne peut être annulée."; $text["confirm_rm_folder_files"] = "Do you really want to remove all the files of the folder \"[foldername]\" and of its subfolders?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_log"] = "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_version"] = "Voulez-vous réellement effacer la [version] du document \"[documentname]\"?
Attention : cette action ne peut être annulée."; $text["content"] = "Contenu"; $text["continue"] = "Continuer"; $text["create_fulltext_index"] = "Create fulltext index"; $text["create_fulltext_index_warning"] = "You are to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation."; $text["creation_date"] = "Créé"; $text["current_version"] = "Version actuelle"; $text["daily"] = "Daily"; $text["databasesearch"] = "Database search"; $text["december"] = "December"; $text["default_access"] = "Mode d'accès par défaut"; $text["default_keyword_category"] = "Catégories"; $text["delete"] = "Effacer"; $text["details"] = "Détails"; $text["details_version"] = "Détails de la version: [version]"; $text["disclaimer"] = "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the english and international laws."; $text["document_already_locked"] = "Ce document est déjà verrouillé"; $text["document_deleted"] = "Document deleted"; $text["document_deleted_email"] = "Document deleted"; $text["document"] = "Document"; $text["document_infos"] = "Information de Document"; $text["document_is_not_locked"] = "Ce document n'est pas verrouillé"; $text["document_link_by"] = "Liés par"; $text["document_link_public"] = "Public"; $text["document_moved_email"] = "Document moved"; $text["document_renamed_email"] = "Document renamed"; $text["documents"] = "Documents"; $text["documents_in_process"] = "Documents en cours"; $text["documents_locked_by_you"] = "Documents locked by you"; $text["document_status_changed_email"] = "Document status changed"; $text["documents_to_approve"] = "Documents attendant l'approbation de l'utilisateur"; $text["documents_to_review"] = "Documents attendant la révision de l'utilisateur"; $text["documents_user_requiring_attention"] = "Documents détenu par l'utilisateur qui nécessite attention"; $text["document_title"] = "Document '[documentname]'"; $text["document_updated_email"] = "Document updated"; $text["does_not_expire"] = "N'expire pas"; $text["does_not_inherit_access_msg"] = "Accès hérité"; $text["download"] = "Téléchargement"; $text["draft_pending_approval"] = "Ébauche - sous approbation"; $text["draft_pending_review"] = "Ébauche - sous révision"; $text["dump_creation"] = "DB dump creation"; $text["dump_creation_warning"] = "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "Existings dump files"; $text["dump_remove"] = "Remove dump file"; $text["edit_comment"] = "Edit comment"; $text["edit_default_keywords"] = "Editer les mots-clefs"; $text["edit_document_access"] = "Editer l'accès"; $text["edit_document_notify"] = "Liste de Notification"; $text["edit_document_props_again"] = "Editer document à nouveau"; $text["edit"] = "éditer"; $text["edit_event"] = "Edit event"; $text["edit_existing_access"] = "Editer la liste d'accès"; $text["edit_existing_notify"] = "Editer la liste de notification"; $text["edit_folder_access"] = "Editer l'accès"; $text["edit_folder_notify"] = "Liste de Notification"; $text["edit_folder_props"] = "Editer dossier"; $text["edit_group"] = "Editer groupe"; $text["edit_user_details"] = "Editer les détails d'utilisateur"; $text["edit_user"] = "Editer un utilisateur"; $text["email"] = "E-mail"; $text["email_footer"] = "You can always change your e-mail settings using 'My Account' functions"; $text["email_header"] = "This is an automatic message from the DMS server."; $text["empty_notify_list"] = "Aucune entrée"; $text["error_no_document_selected"] = "No document selected"; $text["error_no_folder_selected"] = "No folder selected"; $text["error_occured"] = "Une erreur s'est produite"; $text["event_details"] = "Event details"; $text["expired"] = "Expiré"; $text["expires"] = "Expire"; $text["expiry_changed_email"] = "Expiry date changed"; $text["february"] = "February"; $text["file"] = "Fichier"; $text["files_deletion"] = "Files deletion"; $text["files_deletion_warning"] = "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["files"] = "Files"; $text["file_size"] = "Taille"; $text["folder_contents"] = "Dossiers"; $text["folder_deleted_email"] = "Folder deleted"; $text["folder"] = "Folder"; $text["folder_infos"] = "Information du dossier"; $text["folder_moved_email"] = "Folder moved"; $text["folder_renamed_email"] = "Folder renamed"; $text["folders_and_documents_statistic"] = "Contents overview"; $text["folders"] = "Folders"; $text["folder_title"] = "Dossier '[foldername]'"; $text["friday"] = "Friday"; $text["from"] = "From"; $text["fullsearch"] = "Full text search"; $text["fullsearch_hint"] = "Use fulltext index"; $text["fulltext_info"] = "Fulltext index info"; $text["global_default_keywords"] = "Mots-clefs globaux"; $text["global_document_categories"] = "Categories"; $text["group_approval_summary"] = "Group approval summary"; $text["group_exists"] = "Ce groupe existe déjà."; $text["group"] = "Groupe"; $text["group_management"] = "Groupes"; $text["group_members"] = "Membres de groupes"; $text["group_review_summary"] = "Group review summary"; $text["groups"] = "Groupes"; $text["guest_login_disabled"] = "Connexion d'invité désactivée."; $text["guest_login"] = "Connecter comme invité"; $text["help"] = "Help"; $text["hourly"] = "Hourly"; $text["human_readable"] = "Human readable archive"; $text["include_documents"] = "Include documents"; $text["include_subdirectories"] = "Include subdirectories"; $text["individuals"] = "Individuels"; $text["inherits_access_msg"] = "L'accès est hérité."; $text["inherits_access_copy_msg"] = "Copier la liste des accès hérités"; $text["inherits_access_empty_msg"] = "Commencer avec une liste d'accès vide"; $text["internal_error_exit"] = "Erreur interne. Impossible d'achever la demande. Sortie du programme."; $text["internal_error"] = "Erreur interne"; $text["invalid_access_mode"] = "mode d'accès invalide"; $text["invalid_action"] = "Action invalide"; $text["invalid_approval_status"] = "Statut d'approbation invalide"; $text["invalid_create_date_end"] = "Date de fin invalide pour la plage de dates de création."; $text["invalid_create_date_start"] = "Date de départ invalide pour la plage de dates de création."; $text["invalid_doc_id"] = "identifiant de document invalide"; $text["invalid_file_id"] = "Invalid file ID"; $text["invalid_folder_id"] = "Identifiant de dossier invalide"; $text["invalid_group_id"] = "Identifiant de groupe invalide"; $text["invalid_link_id"] = "Identifiant de lien invalide"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Statut de révision invalide"; $text["invalid_sequence"] = "Valeur de séquence invalide"; $text["invalid_status"] = "Statut de document invalide"; $text["invalid_target_doc_id"] = "Identifiant de document cible invalide"; $text["invalid_target_folder"] = "Identifiant de dossier cible invalide"; $text["invalid_user_id"] = "Identifiant invalide"; $text["invalid_version"] = "Version de document invalid"; $text["is_hidden"] = "Hide from users list"; $text["january"] = "January"; $text["js_no_approval_group"] = "SVP Sélectionnez un groupe d'approbation"; $text["js_no_approval_status"] = "SVP Sélectionnez le statut d'approbation"; $text["js_no_comment"] = "Il n'y a pas de commentaires"; $text["js_no_email"] = "Saisissez votre adresse e-mail"; $text["js_no_file"] = "SVP Sélectionnez un fichier"; $text["js_no_keywords"] = "Spécifiez quelques mots-clefs"; $text["js_no_login"] = "SVP Saisissez un identifiant"; $text["js_no_name"] = "SVP Saisissez un nom"; $text["js_no_override_status"] = "SVP Sélectionner le nouveau [override] statut"; $text["js_no_pwd"] = "Vous devez saisir votre mot de passe"; $text["js_no_query"] = "Saisir dans une requête"; $text["js_no_review_group"] = "SVP Sélectionner un groupe de révision"; $text["js_no_review_status"] = "SVP Sélectionner le statut de révision"; $text["js_pwd_not_conf"] = "Mot de passe et Confirmation de mot de passe non identiques"; $text["js_select_user_or_group"] = "Sélectionner au moins un utilisateur ou un groupe"; $text["js_select_user"] = "SVP Sélectionnez un utilisateur"; $text["july"] = "July"; $text["june"] = "June"; $text["keyword_exists"] = "Mot-clef déjà existant"; $text["keywords"] = "Mots-clefs"; $text["language"] = "Langage"; $text["last_update"] = "Last Update"; $text["link_alt_updatedocument"] = "If you would like to upload files bigger than the current maximum upload size, please use the alternative upload page."; $text["linked_documents"] = "Documents liés"; $text["linked_files"] = "Attachments"; $text["local_file"] = "Fichier local"; $text["locked_by"] = "Locked by"; $text["lock_document"] = "Verrouillage"; $text["lock_message"] = "Ce document a été verrouillé par [username].
seuls les utilisateurs autorisés peuvent déverrouiller ce document (voir fin de page)."; $text["lock_status"] = "Statut"; $text["login_error_text"] = "Erreur à la connexion. Identifiant ou mot de passe incorrect."; $text["login_error_title"] = "Erreur de connexion"; $text["login_not_given"] = "Identifiant non fourni"; $text["login_ok"] = "Connexion établie"; $text["log_management"] = "Log files management"; $text["logout"] = "Déconnexion"; $text["manager"] = "Manager"; $text["march"] = "March"; $text["max_upload_size"] = "Maximum upload size for each file"; $text["may"] = "May"; $text["monday"] = "Monday"; $text["month_view"] = "Month view"; $text["monthly"] = "Monthly"; $text["move_document"] = "déplacer un document"; $text["move_folder"] = "Déplacer un dossier"; $text["move"] = "Move"; $text["my_account"] = "Mon Compte"; $text["my_documents"] = "Mes Documents"; $text["name"] = "Nom"; $text["new_default_keyword_category"] = "Ajouter une catégorie"; $text["new_default_keywords"] = "Ajouter des mots-clefs"; $text["new_document_category"] = "Add category"; $text["new_document_email"] = "New document"; $text["new_file_email"] = "New attachment"; $text["new_folder"] = "New folder"; $text["new"] = "New"; $text["new_subfolder_email"] = "New folder"; $text["new_user_image"] = "New image"; $text["no_action"] = "Aucune action n'est nécessaire"; $text["no_approval_needed"] = "No approval pending."; $text["no_attached_files"] = "No attached files"; $text["no_default_keywords"] = "Aucun mot-clef valable"; $text["no_docs_locked"] = "No documents locked."; $text["no_docs_to_approve"] = "Aucun document ne nécessite actuellement une approbation."; $text["no_docs_to_look_at"] = "No documents that need attention."; $text["no_docs_to_review"] = "Aucun document ne nécessite actuellement une révision."; $text["no_group_members"] = "Ce groupe ne contient pas de membre"; $text["no_groups"] = "Aucun groupe"; $text["no"] = "Non"; $text["no_linked_files"] = "No linked files"; $text["no_previous_versions"] = "Aucune autre version trouvé"; $text["no_review_needed"] = "No review pending."; $text["notify_added_email"] = "You've been added to notify list"; $text["notify_deleted_email"] = "You've been removed from notify list"; $text["no_update_cause_locked"] = "Vous ne pouvez actuellement pas mettre à jour ce document. Contactez l'utilisateur qui l'a verrouillé."; $text["no_user_image"] = "Aucune image trouvée"; $text["november"] = "November"; $text["obsolete"] = "Obsolete"; $text["october"] = "October"; $text["old"] = "Old"; $text["only_jpg_user_images"] = "Images d'utilisateur en .jpg seulement"; $text["owner"] = "Propriétaire"; $text["ownership_changed_email"] = "Owner changed"; $text["password"] = "Mot de passe"; $text["personal_default_keywords"] = "Mots-clefs personnels"; $text["previous_versions"] = "Versions précédentes"; $text["refresh"] = "Refresh"; $text["rejected"] = "Rejeté"; $text["released"] = "Réalisé"; $text["removed_approver"] = "a été retiré de la liste des approbateurs."; $text["removed_file_email"] = "Removed attachment"; $text["removed_reviewer"] = "a été retiré de la liste des correcteurs."; $text["results_page"] = "Results Page"; $text["review_deletion_email"] = "Review request deleted"; $text["reviewer_already_assigned"] = "est déjà déclaré en tant que correcteur"; $text["reviewer_already_removed"] = "a déjà été retiré du processus de révision ou a déjà soumis une révision"; $text["reviewers"] = "Correcteurs"; $text["review_group"] = "Groupe de révision"; $text["review_request_email"] = "Review request"; $text["review_status"] = "Statut de révision"; $text["review_submit_email"] = "Submitted review"; $text["review_summary"] = "Sommaire de révision"; $text["review_update_failed"] = "Erreur lors de la mise à jour de la révision. Mise à jour échouée."; $text["rm_default_keyword_category"] = "Effacer catégorie"; $text["rm_document"] = "Effacer document"; $text["rm_document_category"] = "Delete category"; $text["rm_file"] = "Remove file"; $text["rm_folder"] = "Effacer dossier"; $text["rm_group"] = "Retirer ce groupe"; $text["rm_user"] = "Retirer cet utilisateur"; $text["rm_version"] = "Retirer version"; $text["role_admin"] = "Administrator"; $text["role_guest"] = "Guest"; $text["role_user"] = "User"; $text["role"] = "Role"; $text["saturday"] = "Saturday"; $text["save"] = "Enregistrer"; $text["search_fulltext"] = "Search in fulltext"; $text["search_in"] = "Search in"; $text["search_mode_and"] = "tous les mots"; $text["search_mode_or"] = "au moins un mot"; $text["search_no_results"] = "Il n'y a pas de documents correspondant à la recherche"; $text["search_query"] = "Recherche de"; $text["search_report"] = "Trouvé [count] documents"; $text["search_results_access_filtered"] = "Les résultats de la recherche propose du contenu dont l'accès est refusé."; $text["search_results"] = "Résultats de recherche"; $text["search"] = "Search"; $text["search_time"] = "Temps écoulé: [time] sec."; $text["selection"] = "Sélection"; $text["select_one"] = "Selectionner un item"; $text["september"] = "September"; $text["seq_after"] = "Après \"[prevname]\""; $text["seq_end"] = "À la fin"; $text["seq_keep"] = "Conserver la position"; $text["seq_start"] = "Première position"; $text["sequence"] = "Séquence"; $text["set_expiry"] = "Réglage de l'expiration"; $text["set_owner_error"] = "Error setting owner"; $text["set_owner"] = "Réglage du propriétaire"; $text["settings_activate_module"] = "Activate module"; $text["settings_activate_php_extension"] = "Activate PHP extension"; $text["settings_adminIP"] = "Admin IP"; $text["settings_adminIP_desc"] = "If enabled admin can login only by specified IP addres, leave empty to avoid the control. NOTE: works only with local autentication (no LDAP)"; $text["settings_ADOdbPath"] = "ADOdb Path"; $text["settings_ADOdbPath_desc"] = "Path to adodb. This is the directory containing the adodb directory"; $text["settings_Advanced"] = "Advanced"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Authentication settings"; $text["settings_Calendar"] = "Calendar settings"; $text["settings_calendarDefaultView"] = "Calendar Default View"; $text["settings_calendarDefaultView_desc"] = "Calendar default view"; $text["settings_contentDir"] = "Content directory"; $text["settings_contentDir_desc"] = "Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "To work around limitations in the underlying file system, a new directory structure has been devised that exists within the content directory (Content Directory). This requires a base directory from which to begin. Usually leave this to the default setting, 1048576, but can be any number or string that does not already exist within (Content Directory)"; $text["settings_coreDir"] = "Core letoDMS directory"; $text["settings_coreDir_desc"] = "Path to LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS directory"; $text["settings_luceneClassDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene index directory"; $text["settings_luceneDir_desc"] = "Path to Lucene index"; $text["settings_createdatabase"] = "Create database"; $text["settings_createdirectory"] = "Create directory"; $text["settings_currentvalue"] = "Current value"; $text["settings_Database"] = "Database settings"; $text["settings_dbDatabase"] = "Database"; $text["settings_dbDatabase_desc"] = "The name for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbDriver"] = "Database Type"; $text["settings_dbDriver_desc"] = "The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database perhaps due to changing hosts. Type of DB-Driver used by adodb (see adodb-readme)"; $text["settings_dbHostname_desc"] = "The hostname for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbHostname"] = "Server name"; $text["settings_dbPass_desc"] = "The password for access to your database entered during the installation process."; $text["settings_dbPass"] = "Password"; $text["settings_dbUser_desc"] = "The username for access to your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbUser"] = "Username"; $text["settings_delete_install_folder"] = "To use LetoDMS, you must delete the install directory"; $text["settings_disableSelfEdit_desc"] = "If checked user cannot edit his own profile"; $text["settings_disableSelfEdit"] = "Disable Self Edit"; $text["settings_Display"] = "Display settings"; $text["settings_Edition"] = "Edition settings"; $text["settings_enableAdminRevApp_desc"] = "Uncheck to don't list administrator as reviewer/approver"; $text["settings_enableAdminRevApp"] = "Enable Admin Rev App"; $text["settings_enableCalendar_desc"] = "Enable/disable calendar"; $text["settings_enableCalendar"] = "Enable Calendar"; $text["settings_enableConverting_desc"] = "Enable/disable converting of files"; $text["settings_enableConverting"] = "Enable Converting"; $text["settings_enableEmail_desc"] = "Enable/disable automatic email notification"; $text["settings_enableEmail"] = "Enable E-mail"; $text["settings_enableFolderTree_desc"] = "False to don't show the folder tree"; $text["settings_enableFolderTree"] = "Enable Folder Tree"; $text["settings_enableFullSearch"] = "Enable Full text search"; $text["settings_enableGuestLogin_desc"] = "If you want anybody to login as guest, check this option. Note: guest login should be used only in a trusted environment"; $text["settings_enableGuestLogin"] = "Enable Guest Login"; $text["settings_enableUserImage_desc"] = "Enable users images"; $text["settings_enableUserImage"] = "Enable User Image"; $text["settings_enableUsersView_desc"] = "Enable/disable group and user view for all users"; $text["settings_enableUsersView"] = "Enable Users View"; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expand Folder Tree"; $text["settings_expandFolderTree"] = "Expand Folder Tree"; $text["settings_expandFolderTree_val0"] = "start with tree hidden"; $text["settings_expandFolderTree_val1"] = "start with tree shown and first level expanded"; $text["settings_expandFolderTree_val2"] = "start with tree shown fully expanded"; $text["settings_firstDayOfWeek_desc"] = "First day of the week"; $text["settings_firstDayOfWeek"] = "First day of the week"; $text["settings_footNote_desc"] = "Message to display at the bottom of every page"; $text["settings_footNote"] = "Foot Note"; $text["settings_guestID_desc"] = "ID of guest-user used when logged in as guest (mostly no need to change)"; $text["settings_guestID"] = "Guest ID"; $text["settings_httpRoot_desc"] = "The relative path in the URL, after the domain part. Do not include the http:// prefix or the web host name. e.g. If the full URL is http://www.example.com/letodms/, set '/letodms/'. If the URL is http://www.example.com/, set '/'"; $text["settings_httpRoot"] = "Http Root"; $text["settings_installADOdb"] = "Install ADOdb"; $text["settings_install_success"] = "The installation is completed successfully"; $text["settings_language"] = "Default language"; $text["settings_language_desc"] = "Default language (name of a subfolder in folder \"languages\")"; $text["settings_logFileEnable_desc"] = "Enable/disable log file"; $text["settings_logFileEnable"] = "Log File Enable"; $text["settings_logFileRotation_desc"] = "The log file rotation"; $text["settings_logFileRotation"] = "Log File Rotation"; $text["settings_luceneDir"] = "Directory for full text index"; $text["settings_maxDirID_desc"] = "Maximum number of sub-directories per parent directory. Default: 32700."; $text["settings_maxDirID"] = "Max Directory ID"; $text["settings_maxExecutionTime_desc"] = "This sets the maximum time in seconds a script is allowed to run before it is terminated by the parse"; $text["settings_maxExecutionTime"] = "Max Execution Time (s)"; $text["settings_more_settings"] = "Configure more settings. Default login: admin/admin"; $text["settings_notfound"] = "Not found"; $text["settings_partitionSize"] = "Size of partial files uploaded by jumploader"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "If true the disclaimer message the lang.inc files will be print on the bottom of the page"; $text["settings_printDisclaimer"] = "Print Disclaimer"; $text["settings_restricted_desc"] = "Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Restricted access"; $text["settings_rootDir_desc"] = "Path to where letoDMS is located"; $text["settings_rootDir"] = "Root directory"; $text["settings_rootFolderID_desc"] = "ID of root-folder (mostly no need to change)"; $text["settings_rootFolderID"] = "Root Folder ID"; $text["settings_SaveError"] = "Configuration file save error"; $text["settings_Server"] = "Server settings"; $text["settings"] = "Settings"; $text["settings_siteDefaultPage_desc"] = "Default page on login. If empty defaults to out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Site Default Page"; $text["settings_siteName_desc"] = "Name of site used in the page titles. Default: letoDMS"; $text["settings_siteName"] = "Site Name"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server port, default 25"; $text["settings_smtpPort"] = "SMTP Server port"; $text["settings_smtpSendFrom_desc"] = "Send from"; $text["settings_smtpSendFrom"] = "Send from"; $text["settings_smtpServer_desc"] = "SMTP Server hostname"; $text["settings_smtpServer"] = "SMTP Server hostname"; $text["settings_SMTP"] = "SMTP Server settings"; $text["settings_stagingDir"] = "Directory for partial uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Strict Form Check"; $text["settings_suggestionvalue"] = "Suggestion value"; $text["settings_System"] = "System"; $text["settings_theme"] = "Default theme"; $text["settings_theme_desc"] = "Default style (name of a subfolder in folder \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "The name of the versioning info file created by the backup tool"; $text["settings_versioningFileName"] = "Versioning FileName"; $text["settings_viewOnlineFileTypes_desc"] = "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)"; $text["settings_viewOnlineFileTypes"] = "View Online File Types"; $text["signed_in_as"] = "Signed in as"; $text["sign_in"] = "sign in"; $text["sign_out"] = "sign out"; $text["space_used_on_data_folder"] = "Space used on data folder"; $text["status_approval_rejected"] = "Approbation rejeté"; $text["status_approved"] = "Approuvé"; $text["status_approver_removed"] = "Approbateur retiré du processus"; $text["status_not_approved"] = "Non approuvé"; $text["status_not_reviewed"] = "Non révisé"; $text["status_reviewed"] = "Révisé"; $text["status_reviewer_rejected"] = "Révision rejeté"; $text["status_reviewer_removed"] = "Correcteur retiré du processus"; $text["status"] = "Statut"; $text["status_unknown"] = "Inconnu"; $text["storage_size"] = "Storage size"; $text["submit_approval"] = "Soumettre approbation"; $text["submit_login"] = "S'identifier in"; $text["submit_review"] = "Soumettre la révision"; $text["sunday"] = "Sunday"; $text["theme"] = "Theme"; $text["thursday"] = "Thursday"; $text["toggle_manager"] = "Toggle manager"; $text["to"] = "To"; $text["tuesday"] = "Tuesday"; $text["under_folder"] = "Dans le Dossier"; $text["unknown_command"] = "Commande non reconnue."; $text["unknown_document_category"] = "Unknown category"; $text["unknown_group"] = "Identifiant de groupe inconnu"; $text["unknown_id"] = "unknown id"; $text["unknown_keyword_category"] = "Catégorie inconnue"; $text["unknown_owner"] = "Identifiant de propriétaire inconnu"; $text["unknown_user"] = "Identifiant d'utilisateur inconnu"; $text["unlock_cause_access_mode_all"] = "Vous pouvez encore le mettre à jour, car vous avez le mode d'accès \"tout\". Le verrouillage sera automatiquement annulé."; $text["unlock_cause_locking_user"] = "Vous pouvez encore le déverrouiller, car vous êtes le seul à l'avoir verrouillé. Le verrouillage sera automatiquement annulé."; $text["unlock_document"] = "Déverrouillage"; $text["update_approvers"] = "Mise à jour de la liste d'Approbateurs"; $text["update_document"] = "Mise à jour"; $text["update_fulltext_index"] = "Update fulltext index"; $text["update_info"] = "Information de mise à jour"; $text["update_locked_msg"] = "Ce document est verrouillé."; $text["update_reviewers"] = "Mise à jour de la liste de Correcteurs"; $text["update"] = "Mise à jour"; $text["uploaded_by"] = "Déposé par"; $text["uploading_failed"] = "Dépose du document échoué. SVP Contactez le responsable."; $text["use_default_categories"] = "Use predefined categories"; $text["use_default_keywords"] = "Utiliser les mots-clefs prédéfinis"; $text["user_exists"] = "Utilisateur déjà existant."; $text["user_image"] = "Image"; $text["user_info"] = "Information Utilisateur"; $text["user_list"] = "Liste d'utilisateurs"; $text["user_login"] = "Identifiant utilisateur"; $text["user_management"] = "Utilisateurs"; $text["user_name"] = "Nom utilisateur"; $text["users"] = "Utilisateurs"; $text["user"] = "Utilisateur"; $text["version_deleted_email"] = "Version deleted"; $text["version_info"] = "Information de Version"; $text["versioning_file_creation"] = "Versioning file creation"; $text["versioning_file_creation_warning"] = "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder."; $text["versioning_info"] = "Versioning info"; $text["version"] = "Version"; $text["view_online"] = "Vue en ligne"; $text["warning"] = "Attention"; $text["wednesday"] = "Wednesday"; $text["week_view"] = "Week view"; $text["year_view"] = "Year View"; $text["yes"] = "Oui"; ?> letodms-3.3.11+dfsg.1/languages/Francais/help.htm0000644000175000017500000000002412040235120022143 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Chinese_ZH_TW/0000755000175000017500000000000012040235120021350 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Chinese_ZH_TW/lang.inc0000644000175000017500000007453112040235120022776 0ustar franciscofranciscoŏ 섻⻆󅾨"; $text["confirm_rm_folder"] = "󦈬ꬉօ\"[foldername]\" ൄ຅?
ŏ 섻⻆󅾨"; $text["confirm_rm_version"] = "鿇󦅫܈ \"[documentname]\" ꆣ [version]
ŏ 섻⻆󅾨"; $text["content"] = "຅"; $text["continue"] = "Continue"; $text["creating_new_default_keyword_category"] = "..."; $text["creation_date"] = "ц"; $text["current_version"] = "ꆣ"; $text["default_access"] = "Ɉ䅡텭"; $text["default_keyword_category"] = "я"; $text["default_keyword_category_name"] = "쇿"; $text["default_keywords"] = "ůф촅"; $text["delete"] = "ꬉ"; $text["delete_last_version"] = "Document has only one revision. Deleting entire document record..."; $text["deleting_document_notify"] = "܇фꬉ..."; $text["deleting_folder_notify"] = "܇фꬉ⇳..."; $text["details"] = "Details"; $text["details_version"] = "Details for version: [version]"; $text["document"] = "Document"; $text["document_access_again"] = "䅡"; $text["document_add_access"] = "⇳ꗆɆĺ굈..."; $text["document_already_locked"] = "ꅸ"; $text["document_del_access"] = "Ɇĺ굈ꬉ⇳..."; $text["document_edit_access"] = "腡텭..."; $text["document_infos"] = "爿"; $text["document_is_not_locked"] = "ꆙƆ"; $text["document_link_by"] = "Ʉ"; $text["document_link_public"] = "༉"; $text["document_list"] = ""; $text["document_notify_again"] = "솼܇"; $text["document_overview"] = "-"; $text["document_set_default_access"] = "܆Ɉ䅡..."; $text["document_set_inherit"] = "Ɇĺ굈ꅗ燠..."; $text["document_set_not_inherit_copy"] = "..."; $text["document_set_not_inherit_empty"] = "񇠭䅡Ƀ䆼Ɇĺ굈..."; $text["document_status"] = "Document Status"; $text["document_title"] = "ꇫ - [documentname]"; $text["document_versions"] = "džꆣ"; $text["documents_in_process"] = "Documents In Process"; $text["documents_owned_by_user"] = "Documents Owned by User"; $text["documents_to_approve"] = "Documents Awaiting User's Approval"; $text["documents_to_review"] = "Documents Awaiting User's Review"; $text["documents_user_requiring_attention"] = "Documents Owned by User That Require Attention"; $text["does_not_expire"] = "䆙ƉĆ"; $text["does_not_inherit_access_msg"] = "䅡"; $text["download"] = "ꄹ"; $text["draft_pending_approval"] = "Draft - pending approval"; $text["draft_pending_review"] = "Draft - pending review"; $text["edit"] = "edit"; $text["edit_default_keyword_category"] = ""; $text["edit_default_keywords"] = "촅"; $text["edit_document"] = ""; $text["edit_document_access"] = "ņ"; $text["edit_document_notify"] = "܇"; $text["edit_document_props"] = "ꅘǺ"; $text["edit_document_props_again"] = "솼퇸"; $text["edit_existing_access"] = ""; $text["edit_existing_notify"] = "܇"; $text["edit_folder"] = "օ"; $text["edit_folder_access"] = ""; $text["edit_folder_notify"] = "܇"; $text["edit_folder_props"] = "օ񾅘Ǻ"; $text["edit_folder_props_again"] = "օ񾅘Ǻ"; $text["edit_group"] = "\"[groupname]\""; $text["edit_inherit_access"] = "Ǻ"; $text["edit_personal_default_keywords"] = "촅"; $text["edit_user"] = "\"[username]\""; $text["edit_user_details"] = "Edit User Details"; $text["editing_default_keyword_category"] = "..."; $text["editing_default_keywords"] = "촅..."; $text["editing_document_props"] = "ꇸ..."; $text["editing_folder_props"] = "օ..."; $text["editing_group"] = "..."; $text["editing_user"] = "..."; $text["editing_user_data"] = "..."; $text["email"] = "ɉⴄ"; $text["email_err_group"] = "Error sending email to one or more members of this group."; $text["email_err_user"] = "Error sending email to user."; $text["email_sent"] = "Email sent"; $text["empty_access_list"] = "Ɇ"; $text["empty_notify_list"] = "Ɔ຅"; $text["error_adding_session"] = "Error occured while creating session."; $text["error_occured"] = ""; $text["error_removing_old_sessions"] = "Error occured while removing old sessions"; $text["error_updating_revision"] = "Error updating status of document revision."; $text["exp_date"] = "Ćц"; $text["expired"] = "Expired"; $text["expires"] = "Ć"; $text["file"] = "File"; $text["file_info"] = "File Information"; $text["file_size"] = "񺅗"; $text["folder_access_again"] = "օ䅡"; $text["folder_add_access"] = "憼Ʉ⇳..."; $text["folder_contents"] = "Folders"; $text["folder_del_access"] = "Ʉꬉ⇳..."; $text["folder_edit_access"] = "..."; $text["folder_infos"] = "օ爿"; $text["folder_notify_again"] = "܇"; $text["folder_overview"] = "օ-"; $text["folder_path"] = ""; $text["folder_set_default_access"] = "馈օ񾈿܉Ɉ䅡텭..."; $text["folder_set_inherit"] = "Ɇĺ굈"; $text["folder_set_not_inherit_copy"] = "Ʌ..."; $text["folder_set_not_inherit_empty"] = "񇠭䆼Ƀ䆼Ɇĺ굈..."; $text["folder_title"] = "ꇫ - օ [foldername]"; $text["folders_and_documents_statistic"] = "чօ爿"; $text["foldertree"] = "օ񾆿"; $text["from_approval_process"] = "from approval process"; $text["from_review_process"] = "from review process"; $text["global_default_keywords"] = "࿅촅"; $text["goto"] = "셾"; $text["group"] = ""; $text["group_already_approved"] = "An approval has already been submitted on behalf of group"; $text["group_already_reviewed"] = "A review has already been submitted on behalf of group"; $text["group_approvers"] = "Group Approvers"; $text["group_email_sent"] = "Email sent to group members"; $text["group_exists"] = "Group already exists."; $text["group_management"] = ""; $text["group_members"] = "Ʌ"; $text["group_reviewers"] = "Group Reviewers"; $text["group_unable_to_add"] = "Unable to add group"; $text["group_unable_to_remove"] = "Unable to remove group"; $text["groups"] = ""; $text["guest_login"] = "ш󈦽֩"; $text["guest_login_disabled"] = "Guest login is disabled."; $text["individual_approvers"] = "Individual Approvers"; $text["individual_reviewers"] = "Individual Reviewers"; $text["individuals"] = "Individuals"; $text["inherits_access_msg"] = "DžɈ󽇠"; $text["inherits_access_copy_msg"] = "Ʌ"; $text["inherits_access_empty_msg"] = "䆼Ʌ"; $text["internal_error_exit"] = "Internal error. Unable to complete request. Exiting."; $text["invalid_access_mode"] = "Invalid Access Mode"; $text["invalid_action"] = "Invalid Action"; $text["invalid_approval_status"] = "Invalid Approval Status"; $text["invalid_create_date_end"] = "Invalid end date for creation date range."; $text["invalid_create_date_start"] = "Invalid start date for creation date range."; $text["invalid_doc_id"] = "Invalid Document ID"; $text["invalid_folder_id"] = "Invalid Folder ID"; $text["invalid_group_id"] = "Invalid Group ID"; $text["invalid_link_id"] = "Invalid link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Invalid Review Status"; $text["invalid_sequence"] = "Invalid sequence value"; $text["invalid_status"] = "Invalid Document Status"; $text["invalid_target_doc_id"] = "Invalid Target Document ID"; $text["invalid_target_folder"] = "Invalid Target Folder ID"; $text["invalid_user_id"] = "Invalid User ID"; $text["invalid_version"] = "Invalid Document Version"; $text["is_admin"] = "Administrator Privilege"; $text["js_no_approval_group"] = "Please select a approval group"; $text["js_no_approval_status"] = "Please select the approval status"; $text["js_no_comment"] = "Ɔ눬"; $text["js_no_email"] = "ф䉢ɉⴄ"; $text["js_no_file"] = "焹Dž"; $text["js_no_keywords"] = "ш초"; $text["js_no_login"] = "х֖"; $text["js_no_name"] = "х쇿"; $text["js_no_override_status"] = "Please select the new [override] status"; $text["js_no_pwd"] = "鿉Ljц鿇䅯"; $text["js_no_query"] = "цш຅"; $text["js_no_review_group"] = "Please select a review group"; $text["js_no_review_status"] = "Please select the review status"; $text["js_pwd_not_conf"] = "腯󦈬຅섹Lj"; $text["js_select_user"] = "焹Dž"; $text["js_select_user_or_group"] = "焹Dž"; $text["keyword_exists"] = "Keyword already exists"; $text["keywords"] = "초"; $text["language"] = ""; $text["last_update"] = "ц"; $text["last_updated_by"] = "Last updated by"; $text["latest_version"] = "Latest Version"; $text["linked_documents"] = ""; $text["local_file"] = ""; $text["lock_document"] = ""; $text["lock_message"] = "ꅸ[username]܃
Ʉůф()"; $text["lock_status"] = "܇dž"; $text["locking_document"] = "..."; $text["logged_in_as"] = "֩"; $text["login"] = "֩"; $text["login_error_text"] = "Error signing in. User ID or password incorrect."; $text["login_error_title"] = "Sign in error"; $text["login_not_found"] = "֖셡"; $text["login_not_given"] = "No username has been supplied"; $text["login_ok"] = "Sign in successful"; $text["logout"] = "֩"; $text["mime_type"] = "Mime"; $text["move"] = "Move"; $text["move_document"] = ""; $text["move_folder"] = "օ"; $text["moving_document"] = "..."; $text["moving_folder"] = "օ..."; $text["msg_document_expired"] = "\"[documentname]\" (揭 \"[path]\") 􅣿[expires]Ć"; $text["msg_document_updated"] = "\"[documentname]\" (揭 \"[path]\") [updated]酩"; $text["my_account"] = "䅹֖"; $text["my_documents"] = "My Documents"; $text["name"] = "쇿"; $text["new_default_keyword_category"] = ""; $text["new_default_keywords"] = "촅"; $text["new_equals_old_state"] = "Warning: Proposed status and existing status are identical. No action required."; $text["new_user_image"] = "ງ"; $text["no"] = "ɪ"; $text["no_action"] = "No action required"; $text["no_action_required"] = "n/a"; $text["no_active_user_docs"] = "There are currently no documents owned by the user that require review or approval."; $text["no_approvers"] = "No approvers assigned."; $text["no_default_keywords"] = "Ɔů촅"; $text["no_docs_to_approve"] = "There are currently no documents that require approval."; $text["no_docs_to_review"] = "There are currently no documents that require review."; $text["no_document_links"] = "Ɔ뇢"; $text["no_documents"] = "Ɔ놬"; $text["no_group_members"] = "䆙ƆɅ"; $text["no_groups"] = "Ɔ넻"; $text["no_previous_versions"] = "No other versions found"; $text["no_reviewers"] = "No reviewers assigned."; $text["no_subfolders"] = "Ɔ녡Ɉօ"; $text["no_update_cause_locked"] = "鿄⻆ꏭ܄"; $text["no_user_image"] = "Ɔ뾅ꗇງ"; $text["not_approver"] = "User is not currently assigned as an approver of this document revision."; $text["not_reviewer"] = "User is not currently assigned as a reviewer of this document revision."; $text["notify_subject"] = "ꇫĆ䆬"; $text["obsolete"] = "Obsolete"; $text["old_folder"] = "old folder"; $text["only_jpg_user_images"] = "ງŬх .JPG(JPEG) ᭅ"; $text["op_finished"] = "Ʌ"; $text["operation_not_allowed"] = "鿇䆼Ʉ"; $text["override_content_status"] = "Override Status"; $text["override_content_status_complete"] = "Override Status Complete"; $text["override_privilege_insufficient"] = "Access denied. Privileges insufficient to override the status of this document."; $text["overview"] = "Overview"; $text["owner"] = "dž넦"; $text["password"] = ""; $text["pending_approval"] = "Documents pending approval"; $text["pending_review"] = "Documents pending review"; $text["personal_default_keywords"] = "촅"; $text["previous_versions"] = "Previous Versions"; $text["rejected"] = "Rejected"; $text["released"] = "Released"; $text["remove_document_link"] = "ꬉ"; $text["remove_member"] = "ꬉɅ"; $text["removed_approver"] = "has been removed from the list of approvers."; $text["removed_reviewer"] = "has been removed from the list of reviewers."; $text["removing_default_keyword_category"] = "ꬉ..."; $text["removing_default_keywords"] = "ꬉ촅..."; $text["removing_document"] = "ꬉ..."; $text["removing_document_link"] = "ꬉ燢..."; $text["removing_folder"] = "ꬉօ..."; $text["removing_group"] = "ꬉ..."; $text["removing_member"] = "䄹ꬉɅ..."; $text["removing_user"] = "ꬉ..."; $text["removing_version"] = "ꆣ [version] ..."; $text["review_document"] = "Review Document"; $text["review_document_complete"] = "Review Document: Complete"; $text["review_document_complete_records_updated"] = "Document review completed and records updated"; $text["review_group"] = "Review Group"; $text["review_status"] = "Review Status"; $text["review_summary"] = "Review Summary"; $text["review_update_failed"] = "Error updating review status. Update failed."; $text["reviewer_added"] = "added as a reviewer"; $text["reviewer_already_assigned"] = "is already assigned as a reviewer"; $text["reviewer_already_removed"] = "has already been removed from review process or has already submitted a review"; $text["reviewer_no_privilege"] = "is not sufficiently privileged to review this document"; $text["reviewer_removed"] = "removed from review process"; $text["reviewers"] = "Reviewers"; $text["rm_default_keyword_category"] = "ꬉ񈨙"; $text["rm_default_keywords"] = "ꬉ촅"; $text["rm_document"] = "ꬉ"; $text["rm_folder"] = "ꬉօ"; $text["rm_group"] = "ꬉ"; $text["rm_user"] = "ꬉ"; $text["rm_version"] = "ꆣ"; $text["root_folder"] = "᠈օ"; $text["save"] = "䙅"; $text["search"] = "ɣ"; $text["search_in"] = "ɣ䅣"; $text["search_in_all"] = "džօ"; $text["search_in_current"] = "Ŭ([foldername]) ɽɈօ"; $text["search_mode"] = "ɣ텭"; $text["search_mode_and"] = "dž䈨"; $text["search_mode_or"] = "憣넹Dž"; $text["search_no_results"] = "Ɔ놬ꇼꆖш󥄩"; $text["search_query"] = "ɣ"; $text["search_report"] = " [count] ꇼꆖш󥄩\"; $text["search_result_pending_approval"] = "status 'pending approval'"; $text["search_result_pending_review"] = "status 'pending review'"; $text["search_results"] = "ɣɆ"; $text["search_results_access_filtered"] = "Search results may contain content to which access has been denied."; $text["search_time"] = "ш鏭 [time] ƃ"; $text["select_one"] = "ൄ"; $text["selected_document"] = "䆬"; $text["selected_folder"] = "օ"; $text["selection"] = "Selection"; $text["seq_after"] = "\"[prevname]\""; $text["seq_end"] = "DžDž"; $text["seq_keep"] = "섻쇻"; $text["seq_start"] = "Dž"; $text["sequence"] = "щ兦"; $text["set_default_access"] = "Set Default Access Mode"; $text["set_expiry"] = "Set Expiry"; $text["set_owner"] = "܆dž넦"; $text["set_reviewers_approvers"] = "Assign Reviewers and Approvers"; $text["setting_expires"] = "܉Ǿ..."; $text["setting_owner"] = "܆dž넦..."; $text["setting_user_image"] = "
馄܇ງ..."; $text["show_all_versions"] = "Show All Revisions"; $text["show_current_versions"] = "Show Current"; $text["start"] = ""; $text["status"] = "Status"; $text["status_approval_rejected"] = "Draft rejected"; $text["status_approved"] = "Approved"; $text["status_approver_removed"] = "Approver removed from process"; $text["status_change_summary"] = "Document revision changed from status '[oldstatus]' to status '[newstatus]'."; $text["status_changed_by"] = "Status changed by"; $text["status_not_approved"] = "Not approved"; $text["status_not_reviewed"] = "Not reviewed"; $text["status_reviewed"] = "Reviewed"; $text["status_reviewer_rejected"] = "Draft rejected"; $text["status_reviewer_removed"] = "Reviewer removed from process"; $text["status_unknown"] = "Unknown"; $text["subfolder_list"] = "Ɉօ"; $text["submit_approval"] = "Submit approval"; $text["submit_login"] = "Sign in"; $text["submit_review"] = "Submit review"; $text["theme"] = "֯"; $text["unable_to_add"] = "Unable to add"; $text["unable_to_remove"] = "Unable to remove"; $text["under_folder"] = "օ"; $text["unknown_command"] = "Command not recognized."; $text["unknown_group"] = "Unknown group id"; $text["unknown_keyword_category"] = "Unknown category"; $text["unknown_owner"] = "Unknown owner id"; $text["unknown_user"] = "Unknown user id"; $text["unlock_cause_access_mode_all"] = "馆鿆녡\"all\"鿄䵅ůц醢܅笅"; $text["unlock_cause_locking_user"] = "馆鿄܄Ǐ鿄䵅ůц醢܅笅"; $text["unlock_document"] = ""; $text["unlocking_denied"] = "鿇䆼Ʉ숵ш"; $text["unlocking_document"] = "ꈺ..."; $text["update"] = "Update"; $text["update_approvers"] = "Update List of Approvers"; $text["update_document"] = ""; $text["update_info"] = "Update Information"; $text["update_locked_msg"] = "܇dž"; $text["update_reviewers"] = "Update List of Reviewers"; $text["update_reviewers_approvers"] = "Update List of Reviewers and Approvers"; $text["updated_by"] = "Updated by"; $text["updating_document"] = "ꆢ..."; $text["upload_date"] = "ц"; $text["uploaded"] = "Uploaded"; $text["uploaded_by"] = "Ʉ"; $text["uploading_failed"] = "燫"; $text["use_default_keywords"] = "Ʌꅫ܇촅"; $text["user"] = ""; $text["user_already_approved"] = "User has already submitted an approval of this document version"; $text["user_already_reviewed"] = "User has already submitted a review of this document version"; $text["user_approval_not_required"] = "No document approval required of user at this time."; $text["user_exists"] = "User already exists."; $text["user_image"] = "ງ"; $text["user_info"] = "User Information"; $text["user_list"] = ""; $text["user_login"] = "֖"; $text["user_management"] = ""; $text["user_name"] = "࿅"; $text["user_removed_approver"] = "User has been removed from the list of individual approvers."; $text["user_removed_reviewer"] = "User has been removed from the list of individual reviewers."; $text["user_review_not_required"] = "No document review required of user at this time."; $text["users"] = ""; $text["version"] = "ꆣ"; $text["version_info"] = "Version Information"; $text["version_under_approval"] = "Version under approval"; $text["version_under_review"] = "Version under review"; $text["view_document"] = "View Document"; $text["view_online"] = "܄ň"; $text["warning"] = "Warning"; $text["wrong_pwd"] = "숨"; $text["yes"] = ""; $text["already_subscribed"] = "Target is already subscribed."; // New as of 1.7.1. Require updated translation. $text["documents"] = "Documents"; $text["folders"] = "Folders"; $text["no_folders"] = "No folders"; $text["notification_summary"] = "Notification Summary"; // New as of 1.7.2 $text["all_pages"] = "All"; $text["results_page"] = "Results Page"; // New $text["sign_out"] = "sign out"; $text["signed_in_as"] = "Signed in as"; $text["assign_reviewers"] = "Assign Reviewers"; $text["assign_approvers"] = "Assign Approvers"; $text["override_status"] = "Override Status"; $text["change_status"] = "Change Status"; $text["change_assignments"] = "Change Assignments"; $text["no_user_docs"] = "There are currently no documents owned by the user"; $text["disclaimer"] = "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the english and international laws."; $text["backup_tools"] = "Backup tools"; $text["versioning_file_creation"] = "Versioning file creation"; $text["archive_creation"] = "Archive creation"; $text["files_deletion"] = "Files deletion"; $text["folder"] = "Folder"; $text["unknown_id"] = "unknown id"; $text["help"] = "Help"; $text["versioning_info"] = "Versioning info"; $text["versioning_file_creation_warning"] = "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder."; $text["archive_creation_warning"] = "With this operation you can create achive containing the files of entire DMS folders. After the creation the archive will be saved in the data folder of your server.
WARNING: an archive created as human readable will be unusable as server backup."; $text["files_deletion_warning"] = "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["backup_list"] = "Existings backup list"; $text["backup_remove"] = "Remove backup file"; $text["confirm_rm_backup"] = "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["document_deleted"] = "Document deleted"; $text["linked_files"] = "Attachments"; $text["invalid_file_id"] = "Invalid file ID"; $text["rm_file"] = "Remove file"; $text["confirm_rm_file"] = "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["edit_comment"] = "Edit comment"; // new from 1.9 $text["is_hidden"] = "Hide from users list"; $text["log_management"] = "Log files management"; $text["confirm_rm_log"] = "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["include_subdirectories"] = "Include subdirectories"; $text["include_documents"] = "Include documents"; $text["manager"] = "Manager"; $text["toggle_manager"] = "Toggle manager"; // new from 2.0 $text["calendar"] = "Calendar"; $text["week_view"] = "Week view"; $text["month_view"] = "Month view"; $text["year_view"] = "Year View"; $text["add_event"] = "Add event"; $text["edit_event"] = "Edit event"; $text["january"] = "January"; $text["february"] = "February"; $text["march"] = "March"; $text["april"] = "April"; $text["may"] = "May"; $text["june"] = "June"; $text["july"] = "July"; $text["august"] = "August"; $text["september"] = "September"; $text["october"] = "October"; $text["november"] = "November"; $text["december"] = "December"; $text["sunday"] = "Sunday"; $text["monday"] = "Monday"; $text["tuesday"] = "Tuesday"; $text["wednesday"] = "Wednesday"; $text["thursday"] = "Thursday"; $text["friday"] = "Friday"; $text["saturday"] = "Saturday"; $text["from"] = "From"; $text["to"] = "To"; $text["event_details"] = "Event details"; $text["confirm_rm_event"] = "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["dump_creation"] = "DB dump creation"; $text["dump_creation_warning"] = "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "Existings dump files"; $text["dump_remove"] = "Remove dump file"; $text["confirm_rm_dump"] = "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["human_readable"] = "Human readable archive"; $text["email_header"] = "This is an automatic message from the DMS server."; $text["email_footer"] = "You can always change your e-mail settings using 'My Account' functions"; $text["add_multiple_files"] = "Add multiple files (will use filename as document name)"; // new from 2.0.1 $text["max_upload_size"] = "Maximum upload size for each file"; // new from 2.0.2 $text["space_used_on_data_folder"] = "Space used on data folder"; $text["assign_user_property_to"] = "Assign user's properties to"; ?> letodms-3.3.11+dfsg.1/languages/Chinese_ZH_TW/help.htm0000644000175000017500000000002412040235120023006 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Italian/0000755000175000017500000000000012040235120020340 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Italian/lang.inc0000644000175000017500000010600112040235120021752 0ustar franciscofranciscoAttenzione: un archivio creato per uso esterno non è utilizzabile come backup del server."; $text["assign_approvers"] = "Assegna Approvatori"; $text["assign_reviewers"] = "Assegna Revisori"; $text["assign_user_property_to"] = "Assegna le proprietà dell'utente a"; $text["assumed_released"] = "Rilascio Acquisito"; $text["august"] = "Agosto"; $text["automatic_status_update"] = "Modifica automatica dello stato"; $text["back"] = "Ritorna"; $text["backup_list"] = "Lista dei backup presenti"; $text["backup_remove"] = "Elimina file di backup"; $text["backup_tools"] = "Strumenti di backup"; $text["between"] = "tra"; $text["calendar"] = "Calendario"; $text["cancel"] = "Annulla"; $text["cannot_assign_invalid_state"] = "Non è possibile modificare le assegnazioni di un documento già in stato finale"; $text["cannot_change_final_states"] = "Attenzione: Non si può modificare lo stato dei documenti rifiutati, scaduti o in lavorazione"; //$text["cannot_delete_yourself"] = "Cannot delete yourself"; $text["cannot_move_root"] = "Impossibile spostare la cartella di root"; $text["cannot_retrieve_approval_snapshot"] = "Impossibile visualizzare lo stato di approvazione per questa versione di documento"; $text["cannot_retrieve_review_snapshot"] = "Impossibile visualizzare lo stato di revisione per questa versione di documento"; $text["cannot_rm_root"] = "Impossibile cancellare la cartella di root"; $text["category"] = "Category"; $text["category_filter"] = "Only categories"; $text["category_in_use"] = "This category is currently used by documents."; $text["categories"] = "Categories"; $text["change_assignments"] = "Modifica le Assegnazioni"; $text["change_status"] = "Modifica lo Stato"; $text["choose_category"] = "Seleziona"; $text["choose_group"] = "--Seleziona gruppo--"; $text["choose_target_category"] = "Choose category"; $text["choose_target_document"] = "Seleziona documento"; $text["choose_target_folder"] = "Seleziona cartella"; $text["choose_user"] = "--Seleziona utente--"; $text["comment_changed_email"] = "Commento cambiato"; $text["comment"] = "Commento"; $text["comment_for_current_version"] = "Commento per la versione"; $text["confirm_create_fulltext_index"] = "Yes, I would like to recreate the fulltext index!"; $text["confirm_pwd"] = "Conferma Password"; $text["confirm_rm_backup"] = "Vuoi davvero rimuovere il file \"[arkname]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_document"] = "Vuoi veramente eliminare il documento \"[documentname]\"?
Attenzione: L'operazione è irreversibile"; $text["confirm_rm_dump"] = "Vuoi davvero rimuovere il file \"[dumpname]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_event"] = "Vuoli davvero rimuovere l'evento \"[name]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_file"] = "Vuoi veramente eliminare il file \"[name]\" del documento \"[documentname]\"?
Attenzione: L'operazione è irreversibile"; $text["confirm_rm_folder"] = "Vuoi veramente eliminare la cartella \"[foldername]\" e tutto il suo contenuto?
Attenzione: L'operazione è irreversibile"; $text["confirm_rm_folder_files"] = "Vuoi davvero rimuovere tutti i file dalla cartella \"[foldername]\" e dalle sue sottocartelle?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_group"] = "Vuoi davvero rimuovere il gruppo \"[groupname]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_log"] = "Vuoi davvero rimuovere il file di log \"[logname]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_user"] = "Vuoi davvero rimuovere l'utente \"[username]\"?
Attenzione: Questa operazione non può essere annullata."; $text["confirm_rm_version"] = "Vuoi veramente eliminare la versione [version] del documento \"[documentname]\"?
Attenzione: L'operazione è irreversibile"; $text["content"] = "Cartelle"; $text["continue"] = "Continua"; $text["create_fulltext_index"] = "Create fulltext index"; $text["create_fulltext_index_warning"] = "You are to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation."; $text["creation_date"] = "Data creazione"; $text["current_version"] = "Ultima versione"; $text["daily"] = "Daily"; $text["databasesearch"] = "Database search"; $text["december"] = "Dicembre"; $text["default_access"] = "Permesso di default"; $text["default_keywords"] = "Parole chiave disponibili"; $text["delete"] = "Cancella"; $text["details"] = "Dettagli"; $text["details_version"] = "Dettagli versione: [version]"; $text["disclaimer"] = "Questa è un'area riservata. L'accesso è consentito solo al personale autorizzato. Qualunque violazione sarà perseguita a norma delle leggi italiane ed internazionali."; $text["document_already_locked"] = "Questo documento è già bloccato"; $text["document_deleted"] = "Documento rimosso"; $text["document_deleted_email"] = "Documento cancellato"; $text["document"] = "Documento"; $text["document_infos"] = "Informazioni documento"; $text["document_is_not_locked"] = "Questo documento non è bloccato"; $text["document_link_by"] = "Collegato da"; $text["document_link_public"] = "Pubblico"; $text["document_moved_email"] = "Documento spostato"; $text["document_renamed_email"] = "Documento rinominato"; $text["documents"] = "Documenti"; $text["documents_in_process"] = "Documenti in lavorazione"; $text["documents_locked_by_you"] = "Documenti bloccati da te"; $text["document_status_changed_email"] = "Modifica stato del documento"; $text["documents_to_approve"] = "Documenti in attesa della tua approvazione"; $text["documents_to_review"] = "Documenti in attesa della tua revisione"; $text["documents_user_requiring_attention"] = "Tuoi documenti in attesa di revisione o approvazione"; $text["document_title"] = "Documento '[documentname]'"; $text["document_updated_email"] = "Documento aggiornato"; $text["does_not_expire"] = "Nessuna scadenza"; $text["does_not_inherit_access_msg"] = "Imposta permessi ereditari"; $text["download"] = "Scarica"; $text["draft_pending_approval"] = "Bozza in approvazione"; $text["draft_pending_review"] = "Bozza in revisione"; $text["dump_creation"] = "Creazione DB dump"; $text["dump_creation_warning"] = "Con questa operazione è possibile creare un file di dump del contenuto del database. Dopo la creazione il file viene salvato nella cartella dati del server."; $text["dump_list"] = "List dei dump presenti"; $text["dump_remove"] = "Cancella il dump file"; $text["edit_comment"] = "Modifica il commento"; $text["edit_default_keywords"] = "Modifica parole chiave"; $text["edit_document_access"] = "Modifica permessi"; $text["edit_document_notify"] = "Lista di notifica file"; $text["edit_document_props"] = "Gestione documento"; $text["edit"] = "modifica"; $text["edit_event"] = "Modifica evento"; $text["edit_existing_access"] = "Gestione permessi"; $text["edit_existing_notify"] = "Gestione lista di notifica"; $text["edit_folder_access"] = "Modifica permessi"; $text["edit_folder_notify"] = "Lista di notifica cartelle"; $text["edit_folder_props"] = "Modifica cartella"; $text["edit_group"] = "Modifica gruppo"; $text["edit_user_details"] = "Gestione dettagli utente"; $text["edit_user"] = "Modifica utente"; $text["email"] = "Email"; $text["email_footer"] = "Puoi cambiare le tue preferenze utilizzando le funzioni del menu 'Account personale'"; $text["email_header"] = "Questo è un messaggio automatico inviato dal server DMS"; $text["empty_notify_list"] = "Nessun record"; $text["error_no_document_selected"] = "No document selected"; $text["error_no_folder_selected"] = "No folder selected"; $text["error_occured"] = "Si verificato un errore"; $text["event_details"] = "Dettagli evento"; $text["expired"] = "Scaduto"; $text["expires"] = "Scadenza"; $text["expiry_changed_email"] = "Scadenza cambiata"; $text["february"] = "Febbraio"; $text["file"] = "File"; $text["files_deletion"] = "Cancellazione file"; $text["files_deletion_warning"] = "Con questa operazione è possible cancellare i file di intere cartelle. Dopo la cancellazione le informazioni di versionamento resteranno disponibili."; $text["files"] = "Files"; $text["file_size"] = "Grandezza"; $text["folder_contents"] = "Contenuto cartella"; $text["folder_deleted_email"] = "Cartella cancellata"; $text["folder"] = "Cartella"; $text["folder_infos"] = "Informazioni cartella"; $text["folder_moved_email"] = "Cartella spostata"; $text["folder_renamed_email"] = "Cartella rinominata"; $text["folders_and_documents_statistic"] = "Visualizzazione generale"; $text["folders"] = "Cartelle"; $text["folder_title"] = "Cartella '[foldername]'"; $text["friday"] = "Venerdì"; $text["from"] = "Da"; $text["fullsearch"] = "Full text search"; $text["fullsearch_hint"] = "Use fulltext index"; $text["fulltext_info"] = "Fulltext index info"; $text["global_default_keywords"] = "Categorie parole chiave globali"; $text["global_document_categories"] = "Categories"; $text["group_approval_summary"] = "Dettaglio approvazioni di gruppo"; $text["group_exists"] = "Il gruppo è già esistente"; $text["group"] = "Gruppo"; $text["group_management"] = "Amministrazione gruppi"; $text["group_members"] = "Membri del gruppo"; $text["group_review_summary"] = "Dettaglio revisioni di gruppo"; $text["groups"] = "Gruppi"; $text["guest_login_disabled"] = "Login ospite è disabilitato"; $text["guest_login"] = "Login come ospite"; $text["help"] = "Aiuto"; $text["hourly"] = "Hourly"; $text["human_readable"] = "Archivio per uso esterno"; $text["include_documents"] = "Includi documenti"; $text["include_subdirectories"] = "Includi sottocartelle"; $text["individuals"] = "Singoli"; $text["inherits_access_msg"] = "E' impostato il permesso ereditario."; $text["inherits_access_copy_msg"] = "Modifica la lista degli accessi ereditati"; $text["inherits_access_empty_msg"] = "Riimposta una lista di permessi vuota"; $text["internal_error_exit"] = "Errore interno. Impossibile completare la richiesta. Uscire."; $text["internal_error"] = "Errore interno"; $text["invalid_access_mode"] = "Permessi non validi"; $text["invalid_action"] = "Azione non valida"; $text["invalid_approval_status"] = "Stato di approvazione non valido"; $text["invalid_create_date_end"] = "Fine data non valida per la creazione di un intervallo temporale"; $text["invalid_create_date_start"] = "Inizio data non valida per la creazione di un intervallo temporale"; $text["invalid_doc_id"] = "ID documento non valido"; $text["invalid_file_id"] = "ID del file non valido"; $text["invalid_folder_id"] = "ID cartella non valido"; $text["invalid_group_id"] = "ID gruppo non valido"; $text["invalid_link_id"] = "ID di collegamento non valido"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Stato revisione non valido"; $text["invalid_sequence"] = "Valore di sequenza non valido"; $text["invalid_status"] = "Stato del documento non valido"; $text["invalid_target_doc_id"] = "ID documento selezionato non valido"; $text["invalid_target_folder"] = "ID cartella selezionata non valido"; $text["invalid_user_id"] = "ID utente non valido"; $text["invalid_version"] = "Versione documento non valida"; $text["is_hidden"] = "Nascondi dalla lista utenti"; $text["january"] = "Gennaio"; $text["js_no_approval_group"] = "Si prega di selezionare un gruppo di approvazione"; $text["js_no_approval_status"] = "Si prega di selezionare lo stato di approvazione"; $text["js_no_comment"] = "Non ci sono commenti"; $text["js_no_email"] = "Scrivi nel tuo indirizzo di Email"; $text["js_no_file"] = "Per favore seleziona un file"; $text["js_no_keywords"] = "Specifica alcune parole chiave"; $text["js_no_login"] = "Il campo ID utente é necessario"; $text["js_no_name"] = "Il nome é necessario"; $text["js_no_override_status"] = "E' necessario selezionare un nuovo stato"; $text["js_no_pwd"] = "La password è necessaria"; $text["js_no_query"] = "Scrivi nella query"; $text["js_no_review_group"] = "Per favore seleziona un gruppo di revisori"; $text["js_no_review_status"] = "Per favore seleziona lo stato di revisione"; $text["js_pwd_not_conf"] = "Password e passwords-di conferma non corrispondono"; $text["js_select_user_or_group"] = "Selezionare almeno un utente o un gruppo"; $text["js_select_user"] = "Per favore seleziona un utente"; $text["july"] = "Luglio"; $text["june"] = "Giugno"; $text["keyword_exists"] = "Parola chiave già presente"; $text["keywords"] = "Parole chiave"; $text["language"] = "Lingua"; $text["last_update"] = "Ultima modifica"; $text["link_alt_updatedocument"] = "If you would like to upload files bigger than the current maximum upload size, please use the alternative upload page."; $text["linked_documents"] = "Documenti collegati"; $text["linked_files"] = "File allegati"; $text["local_file"] = "File locale"; $text["locked_by"] = "Locked by"; $text["lock_document"] = "Blocca"; $text["lock_message"] = "Questo documento è bloccato da [username]. Solo gli utenti autorizzati possono sbloccare questo documento."; $text["lock_status"] = "Stato"; $text["login_error_text"] = "Errore nel login. ID utente o passord errati."; $text["login_error_title"] = "Errore di login"; $text["login_not_given"] = "Non è stato inserito il nome utente"; $text["login_ok"] = "Login eseguito"; $text["log_management"] = "Amministrazione log file"; $text["logout"] = "Logout"; $text["manager"] = "Manager"; $text["march"] = "Marzo"; $text["max_upload_size"] = "Dimensione massima caricabile per ogni file"; $text["may"] = "Maggio"; $text["monday"] = "Lunedì"; $text["month_view"] = "Vista mese"; $text["monthly"] = "Monthly"; $text["move_document"] = "Sposta documento"; $text["move_folder"] = "Sposta cartella"; $text["move"] = "Sposta"; $text["my_account"] = "Account personale"; $text["my_documents"] = "Documenti personali"; $text["name"] = "Nome"; $text["new_default_keyword_category"] = "Aggiungi categoria"; $text["new_default_keywords"] = "Aggiungi parole chiave"; $text["new_document_category"] = "Add category"; $text["new_document_email"] = "Nuovo documento"; $text["new_file_email"] = "Nuovo file allegato"; //$text["new_folder"] = "New folder"; $text["new"] = "Nuovo"; $text["new_subfolder_email"] = "Nuova sottocartella"; $text["new_user_image"] = "Nuova immagine"; $text["no_action"] = "Non è richiesto alcun intervento"; $text["no_approval_needed"] = "No approval pending."; $text["no_attached_files"] = "No attached files"; $text["no_default_keywords"] = "Nessuna parola chiave disponibile"; //$text["no_docs_locked"] = "No documents locked."; //$text["no_docs_to_approve"] = "There are currently no documents that require approval."; //$text["no_docs_to_look_at"] = "No documents that need attention."; //$text["no_docs_to_review"] = "There are currently no documents that require review."; $text["no_group_members"] = "Questo gruppo non ha membri"; $text["no_groups"] = "Nessun gruppo"; $text["no"] = "No"; $text["no_linked_files"] = "No linked files"; $text["no_previous_versions"] = "Nessun'altra versione trovata"; $text["no_review_needed"] = "No review pending."; $text["notify_added_email"] = "Sei stato aggiunto alla lista di notifica"; $text["notify_deleted_email"] = "Sei stato eliminato dalla lista di notifica"; $text["no_update_cause_locked"] = "Non è quindi possible aggiornarlo."; $text["no_user_image"] = "Nessuna immagine trovata"; $text["november"] = "Novembre"; $text["obsolete"] = "Obsoleto"; $text["october"] = "Ottobre"; $text["old"] = "Vecchio"; $text["only_jpg_user_images"] = "Possono essere utilizzate solo immagini di tipo jpeg"; $text["owner"] = "Proprietario"; $text["ownership_changed_email"] = "Proprietario cambiato"; $text["password"] = "Password"; $text["personal_default_keywords"] = "Parole chiave personali"; $text["previous_versions"] = "Versioni precedenti"; $text["refresh"] = "Refresh"; $text["rejected"] = "Rifiutato"; $text["released"] = "Rilasciato"; $text["removed_approver"] = "Rimosso dalla lista degli approvatori."; $text["removed_file_email"] = "Rimosso file allegato"; $text["removed_reviewer"] = "Rimosso dalla lista dei revisori."; $text["results_page"] = "Pagina dei risultati"; $text["review_deletion_email"] = "Cancellata la richiesta di revisione"; $text["reviewer_already_assigned"] = "già è assegnato come revisore"; $text["reviewer_already_removed"] = "già rimosso dal processo di revisione oppure già inserito come revisione"; $text["reviewers"] = "Revisori"; $text["review_group"] = "Gruppo revisori"; $text["review_request_email"] = "Richiesta di revisione"; $text["review_status"] = "Stato revisioni"; $text["review_submit_email"] = "Sottoposta revisione"; $text["review_summary"] = "Dettaglio revisioni"; $text["review_update_failed"] = "Errore nella variazione della revisione. Aggiornamento fallito."; $text["rm_default_keyword_category"] = "Cancella categoria"; $text["rm_document"] = "Rimuovi documento"; $text["rm_document_category"] = "Delete category"; $text["rm_file"] = "Rimuovi file"; $text["rm_folder"] = "Rimuovi cartella"; $text["rm_group"] = "Rimuovi questo gruppo"; $text["rm_user"] = "Rimuovi questo utente"; $text["rm_version"] = "Rimuovi versione"; //$text["role_admin"] = "Administrator"; //$text["role_guest"] = "Guest"; $text["role_user"] = "User"; //$text["role"] = "Role"; $text["saturday"] = "Sabato"; $text["save"] = "Salva"; $text["search_fulltext"] = "Search in fulltext"; $text["search_in"] = "Cerca in"; $text["search_mode_and"] = "tutte le parole"; $text["search_mode_or"] = "almeno una parola"; $text["search_no_results"] = "Non ci sono documenti che contengano la vostra ricerca"; $text["search_query"] = "Cerca per"; $text["search_report"] = "Trovati [count] documenti"; $text["search_results_access_filtered"] = "La ricerca può produrre contenuti il cui accesso è negato."; $text["search_results"] = "Risultato ricerca"; //$text["search"] = "Search"; $text["search_time"] = "Tempo trascorso: [time] sec."; $text["selection"] = "Selezione"; $text["select_one"] = "Seleziona uno"; $text["september"] = "Settembre"; $text["seq_after"] = "Dopo \"[prevname]\""; $text["seq_end"] = "Alla fine"; $text["seq_keep"] = "Mantene Posizione"; $text["seq_start"] = "Prima posizione"; $text["sequence"] = "Posizione"; $text["set_expiry"] = "Regola la scadenza"; //$text["set_owner_error"] = "Error setting owner"; $text["set_owner"] = "Conferma proprietario"; $text["settings_activate_module"] = "Activate module"; $text["settings_activate_php_extension"] = "Activate PHP extension"; $text["settings_adminIP"] = "Admin IP"; $text["settings_adminIP_desc"] = "If enabled admin can login only by specified IP addres, leave empty to avoid the control. NOTE: works only with local autentication (no LDAP)"; $text["settings_ADOdbPath"] = "ADOdb Path"; $text["settings_ADOdbPath_desc"] = "Path to adodb. This is the directory containing the adodb directory"; $text["settings_Advanced"] = "Advanced"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Authentication settings"; $text["settings_Calendar"] = "Calendar settings"; $text["settings_calendarDefaultView"] = "Calendar Default View"; $text["settings_calendarDefaultView_desc"] = "Calendar default view"; $text["settings_contentDir"] = "Content directory"; $text["settings_contentDir_desc"] = "Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "To work around limitations in the underlying file system, a new directory structure has been devised that exists within the content directory (Content Directory). This requires a base directory from which to begin. Usually leave this to the default setting, 1048576, but can be any number or string that does not already exist within (Content Directory)"; $text["settings_coreDir"] = "Core letoDMS directory"; $text["settings_coreDir_desc"] = "Path to LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS directory"; $text["settings_luceneClassDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene index directory"; $text["settings_luceneDir_desc"] = "Path to Lucene index"; $text["settings_createdatabase"] = "Create database"; $text["settings_createdirectory"] = "Create directory"; $text["settings_currentvalue"] = "Current value"; $text["settings_Database"] = "Database settings"; $text["settings_dbDatabase"] = "Database"; $text["settings_dbDatabase_desc"] = "The name for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbDriver"] = "Database Type"; $text["settings_dbDriver_desc"] = "The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database perhaps due to changing hosts. Type of DB-Driver used by adodb (see adodb-readme)"; $text["settings_dbHostname_desc"] = "The hostname for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbHostname"] = "Server name"; $text["settings_dbPass_desc"] = "The password for access to your database entered during the installation process."; $text["settings_dbPass"] = "Password"; $text["settings_dbUser_desc"] = "The username for access to your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbUser"] = "Username"; $text["settings_delete_install_folder"] = "To use LetoDMS, you must delete the install directory"; $text["settings_disableSelfEdit_desc"] = "If checked user cannot edit his own profile"; $text["settings_disableSelfEdit"] = "Disable Self Edit"; $text["settings_Display"] = "Display settings"; $text["settings_Edition"] = "Edition settings"; $text["settings_enableAdminRevApp_desc"] = "Uncheck to don't list administrator as reviewer/approver"; $text["settings_enableAdminRevApp"] = "Enable Admin Rev App"; $text["settings_enableCalendar_desc"] = "Enable/disable calendar"; $text["settings_enableCalendar"] = "Enable Calendar"; $text["settings_enableConverting_desc"] = "Enable/disable converting of files"; $text["settings_enableConverting"] = "Enable Converting"; $text["settings_enableEmail_desc"] = "Enable/disable automatic email notification"; $text["settings_enableEmail"] = "Enable E-mail"; $text["settings_enableFolderTree_desc"] = "False to don't show the folder tree"; $text["settings_enableFolderTree"] = "Enable Folder Tree"; $text["settings_enableFullSearch"] = "Enable Full text search"; $text["settings_enableGuestLogin_desc"] = "If you want anybody to login as guest, check this option. Note: guest login should be used only in a trusted environment"; $text["settings_enableGuestLogin"] = "Enable Guest Login"; $text["settings_enableUserImage_desc"] = "Enable users images"; $text["settings_enableUserImage"] = "Enable User Image"; $text["settings_enableUsersView_desc"] = "Enable/disable group and user view for all users"; $text["settings_enableUsersView"] = "Enable Users View"; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expand Folder Tree"; $text["settings_expandFolderTree"] = "Expand Folder Tree"; $text["settings_expandFolderTree_val0"] = "start with tree hidden"; $text["settings_expandFolderTree_val1"] = "start with tree shown and first level expanded"; $text["settings_expandFolderTree_val2"] = "start with tree shown fully expanded"; $text["settings_firstDayOfWeek_desc"] = "First day of the week"; $text["settings_firstDayOfWeek"] = "First day of the week"; $text["settings_footNote_desc"] = "Message to display at the bottom of every page"; $text["settings_footNote"] = "Foot Note"; $text["settings_guestID_desc"] = "ID of guest-user used when logged in as guest (mostly no need to change)"; $text["settings_guestID"] = "Guest ID"; $text["settings_httpRoot_desc"] = "The relative path in the URL, after the domain part. Do not include the http:// prefix or the web host name. e.g. If the full URL is http://www.example.com/letodms/, set '/letodms/'. If the URL is http://www.example.com/, set '/'"; $text["settings_httpRoot"] = "Http Root"; $text["settings_installADOdb"] = "Install ADOdb"; $text["settings_install_success"] = "The installation is completed successfully"; $text["settings_language"] = "Default language"; $text["settings_language_desc"] = "Default language (name of a subfolder in folder \"languages\")"; $text["settings_logFileEnable_desc"] = "Enable/disable log file"; $text["settings_logFileEnable"] = "Log File Enable"; $text["settings_logFileRotation_desc"] = "The log file rotation"; $text["settings_logFileRotation"] = "Log File Rotation"; $text["settings_luceneDir"] = "Directory for full text index"; $text["settings_maxDirID_desc"] = "Maximum number of sub-directories per parent directory. Default: 32700."; $text["settings_maxDirID"] = "Max Directory ID"; $text["settings_maxExecutionTime_desc"] = "This sets the maximum time in seconds a script is allowed to run before it is terminated by the parse"; $text["settings_maxExecutionTime"] = "Max Execution Time (s)"; $text["settings_more_settings"] = "Configure more settings. Default login: admin/admin"; $text["settings_notfound"] = "Not found"; $text["settings_partitionSize"] = "Size of partial files uploaded by jumploader"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "If true the disclaimer message the lang.inc files will be print on the bottom of the page"; $text["settings_printDisclaimer"] = "Print Disclaimer"; $text["settings_restricted_desc"] = "Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Restricted access"; $text["settings_rootDir_desc"] = "Path to where letoDMS is located"; $text["settings_rootDir"] = "Root directory"; $text["settings_rootFolderID_desc"] = "ID of root-folder (mostly no need to change)"; $text["settings_rootFolderID"] = "Root Folder ID"; $text["settings_SaveError"] = "Configuration file save error"; $text["settings_Server"] = "Server settings"; $text["settings"] = "Settings"; $text["settings_siteDefaultPage_desc"] = "Default page on login. If empty defaults to out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Site Default Page"; $text["settings_siteName_desc"] = "Name of site used in the page titles. Default: letoDMS"; $text["settings_siteName"] = "Site Name"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server port, default 25"; $text["settings_smtpPort"] = "SMTP Server port"; $text["settings_smtpSendFrom_desc"] = "Send from"; $text["settings_smtpSendFrom"] = "Send from"; $text["settings_smtpServer_desc"] = "SMTP Server hostname"; $text["settings_smtpServer"] = "SMTP Server hostname"; $text["settings_SMTP"] = "SMTP Server settings"; $text["settings_stagingDir"] = "Directory for partial uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Strict Form Check"; $text["settings_suggestionvalue"] = "Suggestion value"; $text["settings_System"] = "System"; $text["settings_theme"] = "Default theme"; $text["settings_theme_desc"] = "Default style (name of a subfolder in folder \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "The name of the versioning info file created by the backup tool"; $text["settings_versioningFileName"] = "Versioning FileName"; $text["settings_viewOnlineFileTypes_desc"] = "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)"; $text["settings_viewOnlineFileTypes"] = "View Online File Types"; $text["signed_in_as"] = "Utente"; $text["sign_in"] = "sign in"; $text["sign_out"] = "Esci"; $text["space_used_on_data_folder"] = "Spazio utilizzato dai dati"; $text["status_approval_rejected"] = "Bozza rifiutata"; $text["status_approved"] = "Approvato"; $text["status_approver_removed"] = "Approvatore rimosso dal processo"; $text["status_not_approved"] = "Non ancora approvato"; $text["status_not_reviewed"] = "Non ancora revisionato"; $text["status_reviewed"] = "Revisionato"; $text["status_reviewer_rejected"] = "Bozza rifiutata"; $text["status_reviewer_removed"] = "Revisore rimosso dal processo"; $text["status"] = "Stato"; $text["status_unknown"] = "Sconosciuto"; $text["storage_size"] = "Dimensione totale"; $text["submit_approval"] = "Approvazione documento"; $text["submit_login"] = "Login"; $text["submit_review"] = "Revisione documento"; $text["sunday"] = "Domenica"; $text["theme"] = "Tema"; $text["thursday"] = "Giovedì"; $text["toggle_manager"] = "Manager"; $text["to"] = "A"; $text["tuesday"] = "Martedì"; $text["under_folder"] = "Nella cartella"; $text["unknown_command"] = "Commando non riconosciuto."; $text["unknown_document_category"] = "Unknown category"; $text["unknown_group"] = "ID gruppo sconosciuto"; $text["unknown_id"] = "identificativo sconosciuto"; $text["unknown_keyword_category"] = "Categoria sconosciuta"; $text["unknown_owner"] = "ID proprietario sconosciuto"; $text["unknown_user"] = "ID utente sconosciuto"; $text["unlock_cause_access_mode_all"] = "Puoi ancora aggiornarlo, perchè hai il permesso \"all\". Il blocco sarà rimosso automaticamente."; $text["unlock_cause_locking_user"] = "Puoi ancora aggiornarlo, perchè sei l'utente che ha eseguito il blocco. Il blocco sarà rimosso automaticamente."; $text["unlock_document"] = "Sblocca"; $text["update_approvers"] = "Aggiornamento lista approvatori"; $text["update_document"] = "Aggiorna"; $text["update_fulltext_index"] = "Update fulltext index"; $text["update_info"] = "Aggiorna informazioni"; $text["update_locked_msg"] = "Questo documento è bloccato."; $text["update_reviewers"] = "Aggiornamento lista revisori"; $text["update"] = "Aggiorna"; $text["uploaded_by"] = "Caricato da"; $text["uploading_failed"] = "Upload fallito. Sei pregato di contattare l'amministratore."; $text["use_default_categories"] = "Use predefined categories"; $text["use_default_keywords"] = "Usa le parole chiave predefinite"; $text["user_exists"] = "Utente esistente"; $text["user_image"] = "Immagine"; $text["user_info"] = "Informazioni utente"; $text["user_list"] = "Lista utenti"; $text["user_login"] = "ID utente"; $text["user_management"] = "Amministrazione utenti"; $text["user_name"] = "Nome e Cognome"; $text["users"] = "Utenti"; $text["user"] = "Utente"; $text["version_deleted_email"] = "Versione cancellata"; $text["version_info"] = "Informazioni versione"; $text["versioning_file_creation"] = "Creazione file di versionamento"; $text["versioning_file_creation_warning"] = "Con questa operazione è possibile creare un file di backup delle informazioni di versionamento dei documenti di una intera cartella. Dopo la creazione ogni file viene salvato nella cartella del relativo documento."; $text["versioning_info"] = "Informazioni di versionamento"; $text["version"] = "Versione"; $text["view_online"] = "Visualizza"; $text["warning"] = "Attenzione"; $text["wednesday"] = "Mercoledì"; $text["week_view"] = "Vista settimana"; $text["year_view"] = "Vista anno"; $text["yes"] = "Si"; ?> letodms-3.3.11+dfsg.1/languages/Italian/help.htm0000644000175000017500000001542712040235120022013 0ustar franciscofrancisco

Note generali

Un DMS (Document Management System) ha lo scopo di permettere la condivisione di documenti controllandone il flusso di lavoro, i permessi di accesso e l'organizzazione in generale.

Tramite il menu di primo livello è possibile accedere ai vari documenti memorizzati:

  • Cartelle: permette di sfogliare i documenti come si farebbe con un normale file manager.
  • Documenti personali: presenta diverse voci per accedere rapidamente ai documenti di interesse personale:
    • Documenti in lavorazione: lista dei documenti in attesa di revisione o approvazione da parte dell'utente, dei documenti di proprietà dell'utente che attendono approvazione o revisione e dei documenti attualmente bloccati dall'utente.
    • Tutti i documenti: lista di tutti i documenti di proprietà dell'utente.
    • Dettaglio revisioni: lista tutti i documenti già revisionati o in attesa di revisione da parte dell'utente.
    • Dettaglio approvazioni: lista tutti i documenti già approvati o in attesa di approvazione da parte dell'utente.

Il presente DMS mette a disposizione anche un calendario che ha la funzione di bacheca virtuale per condividere note, appuntamenti, scadenze ed impegni.

Permessi

L'utente autorizzato può stabilire se e come gli altri utenti del sistema potranno accedere alle varie cartelle e documenti presenti.

Livelli di permesso

I livelli di accesso possibili sono:

  • Permessi totali: l'utente può effettuare qualsiasi operazione.
  • Lettura e scrittura: l'utente può aggiornare documenti e aggiungere contenuti alle cartelle.
  • Solo lettura: l'utente può visualizzare il contenuto delle cartelle e scaricare i documenti.
  • Nessun accesso: non è possibile visualizzare il contenuto delle cartelle o i singoli documenti.

Per default gli utenti amministratori hanno permessi di massimo livello su ogni documento e cartella del sistema. Analogamente il proprietario del documento ha permessi totali sui propri documenti.

Solo gli utenti amministratori possono cambiare il proprietario di un documento.

Gestione dei permessi

Per ogni cartella o documento i permessi sono gestiti tramite due dispositivi diversi:

  • I permessi di default valgono in mancanza di ulteriori specifiche.
  • La lista dei permessi consente di specificare eccezioni ai permessi di default.

Permessi ereditari

I permessi di cartelle e documenti possono essere impostati come ereditari. In tal caso i documenti e le cartelle ereditano i medesimi permessi della cartella che li contiene.

Flusso di lavoro

Il sistema gestisce automaticamente il flusso di lavoro per ogni documento e memorizza variazioni, versionamento, commenti effettuati, ecc.

Ciclo di validazione dei documenti

Il normale flusso di lavoro prevede che, al caricamento di un nuovo documento o di una nuova versione, vengano indicati alcuni utenti o gruppi di utenti, a titolo di revisori e/o approvatori. Gli utenti indicati come revisori e approvatori sono tenuti ad esplicitare la propria approvazione al documento. Quando tale operazione viene ultimata, ovvero tutti gli utenti indicati hanno effettuato la propria revisione/approvazione, il documento passa nello stato di 'rilasciato'.

L'utente revisore/approvatore può negare la propria approvazione al documento. In tal caso il documento passa nello stato di 'rifutato'.

Un documento per il quale non vengano impostate revisioni e approvazioni assume immediatamente lo stato di 'rilasciato'.

Come approvatori/revisori è possibile indicare anche gruppi di utenti. In tal caso si intende che la revisione/approvazione dovrà essere effettuata da uno qualsiasi degli utenti appartenenti al gruppo.

L'utente proprietario del documento può in ogni momento modificare la lista dei revisori e degli approvatori.

Stato dei documenti

Gli stati possibili per un documento sono:

  • Bozza in attesa di approvazione: uno o più degli approvatori indicati non ha ancora espresso la propria approvazione.
  • Bozza in attesa di revisione: uno o più dei revisori indicati non ha ancora espresso la propria revisione.
  • Rilasciato: il documento ha terminato positivamente il proprio ciclo di validazione.
  • Rifiutato: il documento ha interrotto negativamente il proprio ciclo di validazione.
  • Scaduto: è stata superata la data limite per il completamento del ciclo di validazione del documento.
  • Obsoleto: lo stato di un documento rilasciato può essere modificato in obsoleto. Tale modifica è intesa come alternativa alla cancellazione dello stesso documento. Lo stato di obsoleto è reversibile.

Scadenza

Per ogni documento in lavorazione può essere impostata una data di scadenza. Una volta sorpassato il giorno impostato non sono più possibili revisioni o approvazioni ed il documento passa nello stato di 'scaduto'.

La scadenza viene considerata solo per l'ultima versione del documento ed ha effetto solo sui documenti in lavorazione.

Altre caratteristiche

Funzione di blocco

La funzione di blocco ha lo scopo di segnalare agli altri utenti che un certo documento è in lavorazione. L'utente con permessi totali sul documento può comunque ignorare il blocco e procedere ad una modifica del documento.

Notifiche

Ogni utente può richiedere notifica su documenti e cartelle. Aggiungendo un documento o una cartella nella propria lista di notifiche si riceverà segnalazione delle operazioni effettuate da altri utenti.

Solo il Manager di un gruppo può decidere se inserire o meno il gruppo nella lista di notifica di documenti e cartelle. Una volta inserito, le notifiche arrivano a tutti i membri del gruppo.

Parole chiave e ricerca

Ogni documento permette l'inserimento di una descrizione e di alcune parole chiave. Tali informazioni vengono utilizzate per la ricerca documenti.

Nel menù del proprio account personale ogni utente può memorizzare una serie di parole chiave raggruppate per categorie, in modo da velocizzarne la compilazione al momento del caricamento dei documenti.

Premendo il pulsante di ricerca senza inserire alcuna parola si accede alla pagina di ricerca avanzata.

Calendario

Sono possibili tre viste: per settimana, per mese, per anno. Gli eventi sono visualizzati in ordine di inserimento nel calendario.

Una volta inseriti, gli eventi sono pubblici e visibili a tutti. Solo l'amministratore e chi ha inserito l'evento possono modificarlo successivamente.

letodms-3.3.11+dfsg.1/languages/Swedish/0000755000175000017500000000000012040235120020365 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Swedish/lang.inc0000644000175000017500000011752012040235120022007 0ustar franciscofranciscoOBS: skapas ett arkiv som är läsbart för människor, kan det inte användas för att återställa systemet."; $text["assign_approvers"] = "Ge uppdrag till personer/grupper som behöver godkänna dokumentet"; $text["assign_reviewers"] = "Ge uppdrag till personer/grupper som behöver granska dokumentet"; $text["assign_user_property_to"] = "Sätt användarens egenskaper till"; $text["assumed_released"] = "Antas klart för användning"; $text["august"] = "augusti"; $text["automatic_status_update"] = "Automatisk ändring av status"; $text["back"] = "Tillbaka"; $text["backup_list"] = "Existerande backup-lista"; $text["backup_remove"] = "Ta bort backup-fil"; $text["backup_tools"] = "Backup-verktyg"; $text["between"] = "mellan"; $text["calendar"] = "Kalender"; $text["cancel"] = "Avbryt"; $text["cannot_assign_invalid_state"] = "Kan inte ändra ett dokument som har gått ut eller har avvisats"; $text["cannot_change_final_states"] = "OBS: Du kan inte ändra statusen för ett dokument som har avvisats eller som har gått ut eller som väntar på att bli godkänt."; $text["cannot_delete_yourself"] = "Du kan inte att ta bort dig själv"; $text["cannot_move_root"] = "Fel: Det går inte att flytta root-katalogen."; $text["cannot_retrieve_approval_snapshot"] = "Det är inte möjligt att få en snapshot av godkännande-statusen för denna version av dokumentet."; $text["cannot_retrieve_review_snapshot"] = "Det är inte möjligt att få en snapshot för denna version av dokumentet."; $text["cannot_rm_root"] = "Fel: Det går inte att ta bort root-katalogen."; $text["category"] = "Kategori"; $text["category_exists"] = "Kategorin finns redan."; $text["category_filter"] = "Bara kategorier"; $text["category_in_use"] = "Denna kategori används av dokument."; $text["category_noname"] = "Inget kategorinamn angivet"; $text["categories"] = "Kategorier"; $text["change_assignments"] = "Ändra uppdrag"; $text["change_password"] = "Ändra lösenord"; $text["change_password_message"] = "Ditt lösenord har ändrats."; $text["change_status"] = "Ändra status"; $text["choose_category"] = "Välj"; $text["choose_group"] = "Välj grupp"; $text["choose_target_category"] = "Välj kategori"; $text["choose_target_document"] = "Välj dokument"; $text["choose_target_folder"] = "Välj katalog"; $text["choose_user"] = "Välj användare"; $text["comment_changed_email"] = "Ändrat kommentar"; $text["comment"] = "Kommentar"; $text["comment_for_current_version"] = "Kommentar till versionen"; $text["confirm_create_fulltext_index"] = "Ja, jag vill återskapa fulltext-sökindex !"; $text["confirm_pwd"] = "Bekräfta lösenord"; $text["confirm_rm_backup"] = "Vill du verkligen ta bort filen \"[arkname]\"?
OBS: Om filen tas bort, kan den inte återskapas!"; $text["confirm_rm_document"] = "Vill du verkligen ta bort dokumentet \"[documentname]\"?
OBS: Om dokumentet tas bort, kan det inte återskapas!"; $text["confirm_rm_dump"] = "Vill du verkligen ta bort filen \"[dumpname]\"?
OBS: Om filen tas bort, kan den inte återskapas!"; $text["confirm_rm_event"] = "Vill du verkligen ta bort händelsen \"[name]\"?
OBS: Om händelsen tas bort, kan den inte återskapas!"; $text["confirm_rm_file"] = "Vill du verkligen ta bort filen \"[name]\" av dokumentet \"[documentname]\"?
OBS: Om filen tas bort, kan den inte återskapas!"; $text["confirm_rm_folder"] = "Vill du verkligen ta bort katalogen \"[foldername]\" och katalogens innehåll?
OBS: Katalogen och innehållet kan inte återskapas!"; $text["confirm_rm_folder_files"] = "Vill du verkligen ta bort alla filer i katalogen \"[foldername]\" och i katalogens undermappar?
OBS: Filerna kan inte återskapas!"; $text["confirm_rm_group"] = "Vill du verkligen ta bort gruppen \"[groupname]\"?
OBS: Gruppen kan inte återskapas!"; $text["confirm_rm_log"] = "Vill du verkligen ta bort loggfilen \"[logname]\"?
OBS: Loggfilen kan inte återskapas!"; $text["confirm_rm_user"] = "Vill du verkligen ta bort användaren \"[username]\"?
OBS: Användaren kan inte återskapas!"; $text["confirm_rm_version"] = "Vill du verkligen ta bort versionen [version] av dokumentet \"[documentname]\"?
OBS: Versionen kan inte återskapas!"; $text["content"] = "Innehåll"; $text["continue"] = "Fortsätt"; $text["create_fulltext_index"] = "Skapa fulltext-sökindex"; $text["create_fulltext_index_warning"] = "Du håller på att återskapa fulltext-sökindex. Detta kan ta mycket lång tid och sakta ner den allmänna systemprestandan. Om du verkligen vill återskapa indexet, bekräfta åtgärden."; $text["creation_date"] = "Skapat"; $text["current_version"] = "Aktuell version"; $text["daily"] = "dagligen"; $text["databasesearch"] = "Sök databas"; $text["december"] = "december"; $text["default_access"] = "Standardrättigheter"; $text["default_keywords"] = "Möjliga nyckelord"; $text["delete"] = "Ta bort"; $text["details"] = "Detalj"; $text["details_version"] = "Detaljer för version: [version]"; $text["disclaimer"] = "Detta är ett sekretessbelagt område. Bara auktoriserad personal äger tillträde. Vid överträdelse kommer åtal att väckas i enlighet med nationella och internationella lagar."; $text["do_object_repair"] = "Försök att laga kataloger och dokument."; $text["document_already_locked"] = "Detta dokument är redan låst"; $text["document_deleted"] = "Dokument har raderats"; $text["document_deleted_email"] = "Dokument har raderats"; $text["document"] = "Dokument"; $text["document_infos"] = "Dokumentinformation"; $text["document_is_not_locked"] = "Detta dokument är inte låst"; $text["document_link_by"] = "Länkat av"; $text["document_link_public"] = "Offentlig länk"; $text["document_moved_email"] = "Dokument flyttat"; $text["document_renamed_email"] = "Dokument har bytt namn"; $text["documents"] = "Dokument"; $text["documents_in_process"] = "Dokument i bearbetning"; $text["documents_locked_by_you"] = "Dokument som du har låst"; $text["document_status_changed_email"] = "Dokumentstatus ändrad"; $text["documents_to_approve"] = "Dokument som du behöver godkänna"; $text["documents_to_review"] = "Dokument som du behöver granska"; $text["documents_user_requiring_attention"] = "Dokument som du äger och som behöver din uppmärksamhet"; $text["document_title"] = "Dokument '[documentname]'"; $text["document_updated_email"] = "Dokument uppdaterat"; $text["does_not_expire"] = "Löper aldrig ut"; $text["does_not_inherit_access_msg"] = "Ärva behörighet"; $text["download"] = "Ladda ner"; $text["draft_pending_approval"] = "Utkast - väntar på godkännande"; $text["draft_pending_review"] = "Utkast - väntar på granskning"; $text["dump_creation"] = "Skapa DB-dump"; $text["dump_creation_warning"] = "Med denna funktion kan du skapa en dumpfil av innehållet i din databas. När dumpfilen har skapats, kommer den att sparas i datamappen på servern."; $text["dump_list"] = "Existerande dumpfiler"; $text["dump_remove"] = "Ta bort dumpfil"; $text["edit_comment"] = "Ändra kommentar"; $text["edit_default_keywords"] = "Ändra nyckelord"; $text["edit_document_access"] = "Ändra behörighet"; $text["edit_document_notify"] = "Dokument-meddelandelista"; $text["edit_document_props"] = "Ändra dokumentet"; $text["edit"] = "Ändrat"; $text["edit_event"] = "Ändra händelse"; $text["edit_existing_access"] = "Ändra lista med behörigheter"; $text["edit_existing_notify"] = "Ändra lista med meddelanden"; $text["edit_folder_access"] = "Ändra behörighet"; $text["edit_folder_notify"] = "Katalog-meddelandelista"; $text["edit_folder_props"] = "Ändra katalog"; $text["edit_group"] = "Ändra grupp"; $text["edit_user_details"] = "Ändra användarens information"; $text["edit_user"] = "Ändra användare"; $text["email"] = "E-post"; $text["email_error_title"] = "E-post saknas"; $text["email_footer"] = "Du kan alltid ändra dina e-postinställningar genom att gå till 'Min Sida'"; $text["email_header"] = "Detta meddelande skapades automatiskt från dokumentservern."; $text["email_not_given"] = "Skriv in en giltig e-postadress."; $text["empty_notify_list"] = "Inga meddelanden"; $text["error"] = "Fel"; $text["error_no_document_selected"] = "Inget dokument har valts"; $text["error_no_folder_selected"] = "Ingen katalog har valts"; $text["error_occured"] = "Ett fel har inträffat."; $text["event_details"] = "Händelseinställningar"; $text["expired"] = "Har gått ut"; $text["expires"] = "Kommer att gå ut"; $text["expiry_changed_email"] = "Utgångsdatum ändrat"; $text["february"] = "februari"; $text["file"] = "Fil"; $text["files_deletion"] = "Borttagning av filer"; $text["files_deletion_warning"] = "Med detta alternativ kan du ta bort alla filer i dokumentkataloger. Versionsinformationen kommer att fortsätta visas."; $text["files"] = "Filer"; $text["file_size"] = "Filstorlek"; $text["folder_contents"] = "Kataloginnehåll"; $text["folder_deleted_email"] = "Katalog borttagen"; $text["folder"] = "Katalog"; $text["folder_infos"] = "Kataloginformation"; $text["folder_moved_email"] = "Katalog har flyttats"; $text["folder_renamed_email"] = "Katalog har bytt namn"; $text["folders_and_documents_statistic"] = "Innehållsöversikt"; $text["folders"] = "Kataloger"; $text["folder_title"] = "Katalog '[foldername]'"; $text["friday"] = "fredag"; $text["from"] = "från"; $text["fullsearch"] = "Fulltext-sökning"; $text["fullsearch_hint"] = "Använd fulltext-index"; $text["fulltext_info"] = "Fulltext-indexinfo"; $text["global_default_keywords"] = "Globala nyckelord"; $text["global_document_categories"] = "Kategorier"; $text["group_approval_summary"] = "Sammanfattning av gruppgodkännande"; $text["group_exists"] = "Grupp finns redan."; $text["group"] = "Grupp"; $text["group_management"] = "Grupphantering"; $text["group_members"] = "Gruppmedlemmar"; $text["group_review_summary"] = "Sammanfattning av gruppgranskning"; $text["groups"] = "Grupper"; $text["guest_login_disabled"] = "Gästinloggningen är inaktiverad."; $text["guest_login"] = "Gästinloggning"; $text["help"] = "Hjälp"; $text["hourly"] = "timvis"; $text["human_readable"] = "Arkiv som är läsbart av människor"; $text["include_documents"] = "Inkludera dokument"; $text["include_subdirectories"] = "Inkludera under-kataloger"; $text["individuals"] = "Personer"; $text["inherits_access_msg"] = "Behörighet har ärvts."; $text["inherits_access_copy_msg"] = "Kopiera behörighetsarvslista"; $text["inherits_access_empty_msg"] = "Börja med tom behörighetslista"; $text["internal_error_exit"] = "Internt fel. Förfrågan kunde inte utföras. Avslutar."; $text["internal_error"] = "Internt fel"; $text["invalid_access_mode"] = "Ogiltig behörighetsnivå"; $text["invalid_action"] = "Ogiltig handling"; $text["invalid_approval_status"] = "Ogiltig godkännandestatus"; $text["invalid_create_date_end"] = "Ogiltigt slutdatum för intervall."; $text["invalid_create_date_start"] = "Ogiltigt startdatum för intervall."; $text["invalid_doc_id"] = "Ogiltigt dokument-ID"; $text["invalid_file_id"] = "Ogiltigt fil-ID"; $text["invalid_folder_id"] = "Ogiltigt katalog-ID"; $text["invalid_group_id"] = "Ogiltigt grupp-ID"; $text["invalid_link_id"] = "Ogiltigt länk-ID"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Ogiltig granskningsstatus"; $text["invalid_sequence"] = "Ogiltigt sekvensvärde"; $text["invalid_status"] = "Ogiltig dokumentstatus"; $text["invalid_target_doc_id"] = "Ogiltigt ID för måldokumentet"; $text["invalid_target_folder"] = "Ogiltigt ID för målkatalogen"; $text["invalid_user_id"] = "Ogiltigt användar-ID"; $text["invalid_version"] = "Ogiltig dokumentversion"; $text["is_hidden"] = "Dölj från listan med användare"; $text["january"] = "januari"; $text["js_no_approval_group"] = "Välj en grupp som ska godkänna"; $text["js_no_approval_status"] = "Välj godkännandestatus"; $text["js_no_comment"] = "Det finns inga kommentarer"; $text["js_no_email"] = "Ange din e-postadress"; $text["js_no_file"] = "Välj en fil"; $text["js_no_keywords"] = "Skriv några nyckelord"; $text["js_no_login"] = "Skriv ett användarnamn"; $text["js_no_name"] = "Skriv ett namn"; $text["js_no_override_status"] = "Välj ny [override] status"; $text["js_no_pwd"] = "Du måste ange ditt lösenord"; $text["js_no_query"] = "Skriv en fråga"; $text["js_no_review_group"] = "Välj en grupp som ska utföra granskningen"; $text["js_no_review_status"] = "Välj status för granskningen"; $text["js_pwd_not_conf"] = "Lösenord och bekräftat lösenord stämmer inte överens"; $text["js_select_user_or_group"] = "Välj minst en användare eller en grupp"; $text["js_select_user"] = "Välj en användare"; $text["july"] = "juli"; $text["june"] = "juni"; $text["keyword_exists"] = "Nyckelord finns redan"; $text["keywords"] = "Nyckelord"; $text["language"] = "Språk"; $text["last_update"] = "Senast uppdaterat"; $text["link_alt_updatedocument"] = "Om du vill ladda upp filer som är större än den aktuella största tillåtna storleken, använd dig av den alternativa metoden att ladda upp filer Alternativ uppladdning."; $text["linked_documents"] = "Relaterade dokument"; $text["linked_files"] = "Bilagor"; $text["local_file"] = "Lokal fil"; $text["locked_by"] = "Låst av"; $text["lock_document"] = "Lås dokumentet"; $text["lock_message"] = "Detta dokument har låsts av [username]. Bara auktoriserade användare kan låsa upp dokumentet."; $text["lock_status"] = "Status"; $text["login"] = "Inloggning"; $text["login_error_text"] = "Fel vid inloggningen. Användar-ID eller lösenord är felaktigt."; $text["login_error_title"] = "Fel vid inloggningen"; $text["login_not_given"] = "Användarnamn saknas"; $text["login_ok"] = "Inloggningen lyckades"; $text["log_management"] = "Loggfilshantering"; $text["logout"] = "Logga ut"; $text["manager"] = "Manager"; $text["march"] = "mars"; $text["max_upload_size"] = "Maximal storlek för uppladdning"; $text["may"] = "maj"; $text["monday"] = "måndag"; $text["month_view"] = "månadsvisning"; $text["monthly"] = "månadsvis"; $text["move_document"] = "Flytta dokumentet"; $text["move_folder"] = "Flytta katalog"; $text["move"] = "Flytta"; $text["my_account"] = "Min Sida"; $text["my_documents"] = "Mina dokument"; $text["name"] = "Namn"; $text["new_default_keyword_category"] = "Lägg till dokument"; $text["new_default_keywords"] = "Lägg till nyckelord"; $text["new_document_category"] = "Lägg till kategori"; $text["new_document_email"] = "Nytt dokument"; $text["new_file_email"] = "Ny bilaga"; $text["new_folder"] = "Ny katalog"; $text["new"] = "Ny"; $text["new_subfolder_email"] = "Ny katalog"; $text["new_user_image"] = "Ny bild"; $text["no_action"] = "Ingen åtgärd behövs"; $text["no_approval_needed"] = "Inga meddelanden"; $text["no_attached_files"] = "Inga filer har bifogats"; $text["no_default_keywords"] = "Inga nyckelord tillgängliga"; $text["no_docs_locked"] = "Inga dokument är låsta."; $text["no_docs_to_approve"] = "Det finns inga dokument som du behöver godkänna."; $text["no_docs_to_look_at"] = "Det finns inga dokument som behöver din uppmärksamhet."; $text["no_docs_to_review"] = "Det finns inga dokument som du behöver granska."; $text["no_group_members"] = "Denna grupp har inga medlemmar"; $text["no_groups"] = "Inga grupper"; $text["no"] = "Nej"; $text["no_linked_files"] = "Inga länkade filer"; $text["no_previous_versions"] = "Inga andra versioner hittades"; $text["no_review_needed"] = "Det finns inga dokument som du behöver granska."; $text["notify_added_email"] = "Du har lagts till för att få meddelanden"; $text["notify_deleted_email"] = "Du har tagits bort från att få meddelanden"; $text["no_update_cause_locked"] = "Därför kan du inte uppdatera detta dokument. Ta kontakt med användaren som låst dokumentet."; $text["no_user_image"] = "Ingen bild hittades"; $text["november"] = "november"; $text["objectcheck"] = "Katalog/Dokument-kontroll"; $text["obsolete"] = "Föråldrat"; $text["october"] = "oktober"; $text["old"] = "gammal"; $text["only_jpg_user_images"] = "Bara .jpg-bilder kan användas som användarbild"; $text["owner"] = "Ägare"; $text["ownership_changed_email"] = "Ägare ändrad"; $text["password"] = "Lösenord"; $text["password_repeat"] = "Upprepa lösenord"; $text["password_forgotten"] = "Glömt lösenord"; $text["password_forgotten_email_subject"] = "Glömt lösenord"; $text["password_forgotten_email_body"] = "Bästa användare av dokumenthanteringssystemet,\n\nvi fick en förfrågan om att ändra ditt lösenord.\n\nDu kan göra det genom att klicka på följande länk:\n\n###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH###\n\nOm du fortfarande har problem med inloggningen, kontakta administratören."; $text["password_forgotten_send_hash"] = "En beskrivning av vad du måste göra nu har skickats till din e-postadress."; $text["password_forgotten_text"] = "Fyll i formuläret nedan och följ instruktionerna som skickas till din e-postadress."; $text["password_forgotten_title"] = "Lösenord har skickats"; $text["personal_default_keywords"] = "Personlig nyckelordslista"; $text["previous_versions"] = "Föregående versioner"; $text["refresh"] = "Uppdatera"; $text["rejected"] = "Avvisat"; $text["released"] = "Klart för användning"; $text["removed_approver"] = "har tagits bort från listan med personer som ska godkänna dokumentet."; $text["removed_file_email"] = "Borttagen bilaga"; $text["removed_reviewer"] = "har tagits bort från listan med personer som ska granska dokumentet."; $text["repairing_objects"] = "Förbereder dokument och kataloger."; $text["results_page"] = "Resultatsida"; $text["review_deletion_email"] = "Förfrågan om granskning borttagen"; $text["reviewer_already_assigned"] = "ska redan granska dokumentet"; $text["reviewer_already_removed"] = "har redan tagits bort från granskningen eller har redan skickat en granskning"; $text["reviewers"] = "Personer som granskar"; $text["review_group"] = "Grupp som granskar"; $text["review_request_email"] = "Förfrågan om granskning"; $text["review_status"] = "Status för granskningen"; $text["review_submit_email"] = "Skickat granskning"; $text["review_summary"] = "Sammanfattning av granskningen"; $text["review_update_failed"] = "Fel vid uppdatering av granskningsstatus. Kunde inte uppdatera."; $text["rm_default_keyword_category"] = "Ta bort kategori"; $text["rm_document"] = "Ta bort dokumentet"; $text["rm_document_category"] = "Ta bort kategori"; $text["rm_file"] = "Ta bort fil"; $text["rm_folder"] = "Ta bort katalog"; $text["rm_group"] = "Ta bort denna grupp"; $text["rm_user"] = "Ta bort denna användare"; $text["rm_version"] = "Ta bort version"; $text["role_admin"] = "Administratör"; $text["role_guest"] = "Gäst"; $text["role_user"] = "Användare"; $text["role"] = "Roll"; $text["saturday"] = "lördag"; $text["save"] = "Spara"; $text["search_fulltext"] = "Fulltext-sökning"; $text["search_in"] = "Sök i"; $text["search_mode_and"] = "alla ord"; $text["search_mode_or"] = "minst ett ord"; $text["search_no_results"] = "Det finns inga dokument som matchar din sökning"; $text["search_query"] = "Sök efter"; $text["search_report"] = "Hittat [doccount] dokument och [foldercount] kataloger"; $text["search_report_fulltext"] = "Hittat [doccount] dokument"; $text["search_results_access_filtered"] = "Sökresultatet kan innehålla innehåll som du inte har behörighet att öppna."; $text["search_results"] = "Sökresultat"; $text["search"] = "Sök"; $text["search_time"] = "Förfluten tid: [time] sek"; $text["selection"] = "Urval"; $text["select_one"] = "Välj"; $text["september"] = "september"; $text["seq_after"] = "efter \"[prevname]\""; $text["seq_end"] = "på slutet"; $text["seq_keep"] = "behåll positionen"; $text["seq_start"] = "första positionen"; $text["sequence"] = "Position"; $text["set_expiry"] = "Sätt utgångstid"; $text["set_owner_error"] = "Fel vid val av ägare"; $text["set_owner"] = "Ange dokumentägare"; $text["settings_install_welcome_title"] = "Välkommen till installationen av letoDMS"; $text["settings_install_welcome_text"] = "

Innan du börjar installationen av letoDMS, se till att du har skapat en fil med namnet 'ENABLE_INSTALL_TOOL' i konfigurationsmappen, annars kommer installationen inte att fungera. På Unix-System kan detta göras med 'touch conf/ENABLE_INSTALL_TOOL'. När du har avslutat installationen måste filen tas bort.

letoDMS har bara minimala krav. Du behöver en mysql-databas och php måste finnas på din webbserver. För lucene fulltext-sökning måste du lägga Zend framework på servern, så att det kan hittas av php. Från och med version 3.2.0 av letoDMS, är ADOdb inte längre del av distributionen. En kopia kan laddas ner från http://adodb.sourceforge.net. Installera detta. Sökvägen kan sättas senare i samband med installationsprocessen.

Om du vill skapa en databas innan du börjar installationen, kan den skapas manuellt med ett valfritt verktyg. Alternativt, skapa en databas med en användare som har tillgång till databasen och importera en av databasdumparna som ligger i konfigurationsmappen. Installationsskriptet kan göra detta automatiskt, men den behöver tillgång till databasen och tillräckliga rättigheter för att skapa databasen.

"; $text["settings_start_install"] = "Börja installationen"; $text["settings_activate_module"] = "Aktivera module"; $text["settings_activate_php_extension"] = "Aktivera PHP-extension"; $text["settings_adminIP"] = "Admin-IP"; $text["settings_adminIP_desc"] = "Om den har satts, kan administratorn bara logga in från den angivna IP-adressen. Lämna denna uppgift tom för att undvika begränsningar. OBS: fungerar bara med lokal autentisering (ingen LDAP)"; $text["settings_ADOdbPath"] = "ADOdb Sökväg"; $text["settings_ADOdbPath_desc"] = "Sökväg till adodb. Detta är mappen som innehåller adodb-mappen"; $text["settings_Advanced"] = "Avancerat"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Autentiseringsinställningar"; $text["settings_Calendar"] = "Kalenderinställningar"; $text["settings_calendarDefaultView"] = "Standardvy kalender"; $text["settings_calendarDefaultView_desc"] = "Standardvy kalender"; $text["settings_contentDir"] = "Mapp för innehållet"; $text["settings_contentDir_desc"] = "Mappen där alla uppladdade filer kommer att sparas (Det bästa är att välja en mapp som inte är tillgänglig via webb-servrar)"; $text["settings_contentOffsetDir"] = "Innehåll offset-mapp"; $text["settings_contentOffsetDir_desc"] = "För att undvika begränsningar i det underliggande filsystemet har en ny mappstruktur skapats inom innehållsmappen (Content Directory). Detta behöver en bas-mapp att utgå ifrån. Vanligtvis är default-inställningen, 1048576, men det kan vara vilket nummer eller sträng som helst som inte redan finns i mappen (Content Directory)"; $text["settings_coreDir"] = "LetoDMS_Core mapp"; $text["settings_coreDir_desc"] = "Sökväg till LetoDMS_Core (valfritt)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS-mapp"; $text["settings_luceneClassDir_desc"] = "Sökväg till LetoDMS_Lucene (valfritt)"; $text["settings_luceneDir"] = "Lucene index-mapp"; $text["settings_luceneDir_desc"] = "Sökväg till Lucene-index"; $text["settings_cannot_disable"] = "Filen ENABLE_INSTALL_TOOL kunde inte tas bort"; $text["settings_install_disabled"] = "Filen ENABLE_INSTALL_TOOL har tagits bort. Du kan nu logga in till LetoDMS och göra ytterligare inställningar."; $text["settings_createdatabase"] = "Skapa databastabeller"; $text["settings_createdirectory"] = "Skapa katalog"; $text["settings_currentvalue"] = "Aktuellt värde"; $text["settings_Database"] = "Databasinställningar"; $text["settings_dbDatabase"] = "Databas"; $text["settings_dbDatabase_desc"] = "Namnet på din databas som angavs under installationsprocessen. Ändra inte om det inte är nödvändigt, t.ex. om databasen har flyttats."; $text["settings_dbDriver"] = "Databastyp"; $text["settings_dbDriver_desc"] = "Typ av databas som används. Har angetts under installationsprocessen. Ändra inte om det inte är nödvändigt. Typ av DB-drivrutin som används av adodb (se adodb-readme)"; $text["settings_dbHostname_desc"] = "Host-namnet för databasen som angavs under installationsprocessen. Ändra inte om det inte är nödvändigt."; $text["settings_dbHostname"] = "Servernamn"; $text["settings_dbPass_desc"] = "Lösenordet för tillgång till databasen. Lösenordet angavs in under installationsprocessen."; $text["settings_dbPass"] = "Lösenord"; $text["settings_dbUser_desc"] = "Användarnamnet för tillgång till databasen. Användarnamnet angavs under installationsprocessen."; $text["settings_dbUser"] = "Användarnamn"; $text["settings_dbVersion"] = "Databasschemat för gammalt"; $text["settings_delete_install_folder"] = "För att kunna använda LetoDMS måste du ta bort filen ENABLE_INSTALL_TOOL som finns i konfigurationsmappen"; $text["settings_disable_install"] = "Ta bort filen ENABLE_INSTALL_TOOL, om det är möjligt"; $text["settings_disableSelfEdit_desc"] = "Om utvald, kan användare inte ändra sin egen profil"; $text["settings_disableSelfEdit"] = "Inaktivera av själveditering"; $text["settings_Display"] = "Display-inställningar"; $text["settings_Edition"] = "Edition-inställningar"; $text["settings_enableAdminRevApp_desc"] = "Ta bort utval, så att administratorn inte visas som person som granskar/godkänner"; $text["settings_enableAdminRevApp"] = "Visa Admin i granskning/godkänn"; $text["settings_enableCalendar_desc"] = "Aktivera/Inaktivera kalendar"; $text["settings_enableCalendar"] = "Aktivera kalendern"; $text["settings_enableConverting_desc"] = "Aktivera/Inaktivera konvertering av filer"; $text["settings_enableConverting"] = "Aktivera filkonvertering"; $text["settings_enableEmail_desc"] = "Aktivera/Inaktivera automatiska e-postmeddelanden"; $text["settings_enableEmail"] = "Använd e-postmeddelanden"; $text["settings_enableFolderTree_desc"] = "Av för att inte visa katalogernas trädstruktur"; $text["settings_enableFolderTree"] = "Visa katalogers trädstruktur"; $text["settings_enableFullSearch"] = "Aktivera fulltext-sökning"; $text["settings_enableFullSearch_desc"] = "Sätt på fulltext-sökning"; $text["settings_enableGuestLogin_desc"] = "Om du vill att alla ska kunna logga in som gäst, aktivera denna option. OBS: Gästinloggning bör endast användas i en säker omgivning"; $text["settings_enableGuestLogin"] = "Aktivera gästinloggning"; $text["settings_enableLargeFileUpload_desc"] = "Om aktiverad, kan filer laddas upp via javaapplet med namnet jumploader, utan begränsningar i filstorlek. Flera filer kan även laddas upp samtidigt i ett steg."; $text["settings_enableLargeFileUpload"] = "Aktivera uppladdning av stora filer"; $text["settings_enablePasswordForgotten_desc"] = "Om du vill tillåta att användare kan få nytt lösenord genom att skicka e-post, aktivera denna option."; $text["settings_enablePasswordForgotten"] = "Aktivera glömt lösenord"; $text["settings_enableUserImage_desc"] = "Aktivera användarbilder"; $text["settings_enableUserImage"] = "Aktivera användarbilder"; $text["settings_enableUsersView_desc"] = "Aktivera/Inaktivera visning av grupp och användare för alla användare"; $text["settings_enableUsersView"] = "Aktivera visning av användare"; $text["settings_error"] = "Fel"; $text["settings_expandFolderTree_desc"] = "Expandera katalogträd"; $text["settings_expandFolderTree"] = "Expandera katalogträd"; $text["settings_expandFolderTree_val0"] = "Börja med dolt träd"; $text["settings_expandFolderTree_val1"] = "Börja med att visa trädet och första nivån"; $text["settings_expandFolderTree_val2"] = "Börja med att visa hela trädet"; $text["settings_firstDayOfWeek_desc"] = "Första dagen i veckan"; $text["settings_firstDayOfWeek"] = "Första dagen i veckan"; $text["settings_footNote_desc"] = "Meddelande som visas på slutet av varje sida"; $text["settings_footNote"] = "Fotnot"; $text["settings_guestID_desc"] = "ID som används för inloggad gästanvändare (behöver oftast inte ändras)"; $text["settings_guestID"] = "Gäst-ID"; $text["settings_httpRoot_desc"] = "Den relativa sökvägen i URL, efter domänen. Ta inte med http:// eller web host-namnet. t.ex. om hela URLen är http://www.example.com/letodms/, sätt '/letodms/'. Om URLen är http://www.example.com/, sätt '/'"; $text["settings_httpRoot"] = "Http-Root"; $text["settings_installADOdb"] = "Installera ADOdb"; $text["settings_install_success"] = "Installationen har avslutats utan problem."; $text["settings_install_pear_package_log"] = "Installera Pear-paketet 'Log'"; $text["settings_install_pear_package_webdav"] = "Installera Pear-paketet 'HTTP_WebDAV_Server', om du tänker använda webdav-gränssnittet"; $text["settings_install_zendframework"] = "Installera Zend Framework, om du tänker använda fulltext-sökningen"; $text["settings_language"] = "Standardspråk"; $text["settings_language_desc"] = "Standardspråk (namn på sub-mappen i mappen \"languages\")"; $text["settings_logFileEnable_desc"] = "Aktivera/Inaktivera loggfil"; $text["settings_logFileEnable"] = "Aktivera loggfil"; $text["settings_logFileRotation_desc"] = "Loggfils-rotation"; $text["settings_logFileRotation"] = "Loggfils-rotation"; $text["settings_luceneDir"] = "Mapp för fulltext-index"; $text["settings_maxDirID_desc"] = "Högsta antal under-mappar per överliggande mapp. Standard: 32700."; $text["settings_maxDirID"] = "Max. mapp-ID"; $text["settings_maxExecutionTime_desc"] = "Detta sätter hösta tillåtna tiden i sekunder som ett skript får på sig att utföras innan det avslutas"; $text["settings_maxExecutionTime"] = "Max. exekveringstid (s)"; $text["settings_more_settings"] = "Konfigurera flera inställningar. Standard-inloggning: admin/admin"; $text["settings_no_content_dir"] = "Mapp för innehåll"; $text["settings_notfound"] = "Hittades inte"; $text["settings_notwritable"] = "Konfigurationen kunde inte sparas, eftersom konfigurationsfilen är inte skrivbar."; $text["settings_partitionSize"] = "Uppdelad filstorlek"; $text["settings_partitionSize_desc"] = "Storlek hos uppdelade filer i bytes som laddades upp med jumploader. Sätt inte ett värde som är större än den högsta tillåtna storleken på servern."; $text["settings_perms"] = "Behörigheter"; $text["settings_pear_log"] = "Pear-paketet : Logg"; $text["settings_pear_webdav"] = "Pear-paketet : HTTP_WebDAV_Server"; $text["settings_php_dbDriver"] = "PHP-extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP-extension : php_gd2"; $text["settings_php_mbstring"] = "PHP-extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "Om denna inställning sätts till ja, används meddelande som finns i lang.inc-filen och skrivs ut på slutet av sidan"; $text["settings_printDisclaimer"] = "Visa disclaimer-meddelande"; $text["settings_restricted_desc"] = "Tillåt användare att logga in bara om det finns en inloggning för användaren i den lokala databasen (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Begränsad behörighet"; $text["settings_rootDir_desc"] = "Sökväk där letoDMS befinner sig"; $text["settings_rootDir"] = "Root-mapp"; $text["settings_rootFolderID_desc"] = "ID för root-mappen (oftast behövs ingen ändring här)"; $text["settings_rootFolderID"] = "ID för root-mappen"; $text["settings_SaveError"] = "Fel när konfigurationsfilen sparades"; $text["settings_Server"] = "Server-inställningar"; $text["settings"] = "Inställningar"; $text["settings_siteDefaultPage_desc"] = "Standardsida efter inloggning. Om fältet är tomt, används standard-out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Standardsida"; $text["settings_siteName_desc"] = "Sidans namn som visas i sid-huvud. Standard: letoDMS"; $text["settings_siteName"] = "Sidans namn"; $text["settings_Site"] = "Sida"; $text["settings_smtpPort_desc"] = "SMTP server-port, default 25"; $text["settings_smtpPort"] = "SMTP server-port"; $text["settings_smtpSendFrom_desc"] = "Skickat från"; $text["settings_smtpSendFrom"] = "Skickat från"; $text["settings_smtpServer_desc"] = "SMTP server-hostname"; $text["settings_smtpServer"] = "SMTP server-hostname"; $text["settings_SMTP"] = "SMTP server-inställningar"; $text["settings_stagingDir"] = "Mapp för i delar uppladdade filer"; $text["settings_strictFormCheck_desc"] = "Noggrang format-kontroll. Om ja, kontrolleras alla fält i ett formulär på att de innehåller ett värde. Om nej, blir de flesta kommentar- och nyckelordsfält frivilliga. Kommentarer måste alltid anges när en granskning skickas eller när dokumentstatus skrivs över"; $text["settings_strictFormCheck"] = "Noggrang format-kontroll"; $text["settings_suggestionvalue"] = "Föreslå ett värde"; $text["settings_System"] = "System"; $text["settings_theme"] = "Standardtema"; $text["settings_theme_desc"] = "Standardtema (namn på under-mappar i mappen \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Speciallösning för sidor med titlar som går över två rader."; $text["settings_titleDisplayHack"] = "Titelvisningshack"; $text["settings_updateDatabase"] = "Kör schemauppdateringsskript på databasen"; $text["settings_updateNotifyTime_desc"] = "Användare meddelas om att ändringar i dokumentet har genomförts inom de senaste 'Uppdateringsmeddelandetid' sekunder"; $text["settings_updateNotifyTime"] = "Uppdateringsmeddelandetid"; $text["settings_versioningFileName_desc"] = "Namnet på versionsinfo-fil som skapas med backup-verktyget"; $text["settings_versioningFileName"] = "Versionsinfo-filnamn"; $text["settings_viewOnlineFileTypes_desc"] = "Filer av en av de följande filtyperna kan visas online (ANVÄND BARA SMÅ BOKSTÄVER)"; $text["settings_viewOnlineFileTypes"] = "Visa online-filtyper"; $text["settings_zendframework"] = "Zend Framework"; $text["signed_in_as"] = "Inloggad som"; $text["sign_in"] = "logga in"; $text["sign_out"] = "logga ut"; $text["space_used_on_data_folder"] = "Plats använd i datamappen"; $text["status_approval_rejected"] = "Utkast avvisat"; $text["status_approved"] = "Godkänt"; $text["status_approver_removed"] = "Person som godkänner har tagits bort från processen"; $text["status_not_approved"] = "Ej godkänt"; $text["status_not_reviewed"] = "Ej granskat"; $text["status_reviewed"] = "Granskat"; $text["status_reviewer_rejected"] = "Utkast avvisat"; $text["status_reviewer_removed"] = "Person som granskar har tagits bort från processen"; $text["status"] = "Status"; $text["status_unknown"] = "Okänd"; $text["storage_size"] = "Platsstorlek"; $text["submit_approval"] = "Skicka godkännande"; $text["submit_login"] = "Logga in"; $text["submit_password"] = "Sätt nytt lösenord"; $text["submit_password_forgotten"] = "Starta process"; $text["submit_review"] = "Skicka granskning"; $text["sunday"] = "söndag"; $text["theme"] = "Visningstema"; $text["thursday"] = "torsdag"; $text["toggle_manager"] = "Byt manager"; $text["to"] = "till"; $text["tuesday"] = "tisdag"; $text["under_folder"] = "I katalogen"; $text["unknown_command"] = "Okänt kommando."; $text["unknown_document_category"] = "Okänd kategori"; $text["unknown_group"] = "Okänt grupp-ID"; $text["unknown_id"] = "okänt ID"; $text["unknown_keyword_category"] = "Okänd kategori"; $text["unknown_owner"] = "Okänt ägar-ID"; $text["unknown_user"] = "Okänt användar-ID"; $text["unlock_cause_access_mode_all"] = "Du kan fortfarande uppdatera, eftersom du har behörighetnivå \"all\". Låsningen kommer automatiskt att tas bort."; $text["unlock_cause_locking_user"] = "Du kan fortfarande uppdatera, eftersom du är samma person som låste dokumentet. Låsningen kommer automatiskt att tas bort."; $text["unlock_document"] = "Lås upp"; $text["update_approvers"] = "Uppdatera lista med personer som godkänner"; $text["update_document"] = "Uppdatera dokument"; $text["update_fulltext_index"] = "Uppdatera fulltext-index"; $text["update_info"] = "Uppdatera information"; $text["update_locked_msg"] = "Dokumentet är låst."; $text["update_reviewers"] = "Uppdatera listan med personer som granskar"; $text["update"] = "Uppdatera"; $text["uploaded_by"] = "Uppladdat av"; $text["uploading_failed"] = "Fel vid uppladdningen. Kontakta administratorn."; $text["use_default_categories"] = "Använd fördefinerade kategorier"; $text["use_default_keywords"] = "Använd fördefinerade nyckelord"; $text["user_exists"] = "Användaren finns redan."; $text["user_image"] = "Bild"; $text["user_info"] = "Användarinformation"; $text["user_list"] = "Lista med användare"; $text["user_login"] = "Användarnamn"; $text["user_management"] = "Användar-management"; $text["user_name"] = "Fullt namn"; $text["users"] = "Användare"; $text["user"] = "Användare"; $text["version_deleted_email"] = "Version borttagen"; $text["version_info"] = "Versionsinformation"; $text["versioning_file_creation"] = "Skapa versionsfil"; $text["versioning_file_creation_warning"] = "Med denna funktion kan du skapa en fil som innehåller versionsinformationen för hela DMS-mappen. Efter skapandet kommer alla filer att sparas inom dokumentets mapp."; $text["versioning_info"] = "Versionsinformation"; $text["version"] = "Version"; $text["view_online"] = "Visa online"; $text["warning"] = "Varning"; $text["wednesday"] = "onsdag"; $text["week_view"] = "veckovy"; $text["year_view"] = "årsvy"; $text["yes"] = "Ja"; ?> letodms-3.3.11+dfsg.1/languages/Swedish/help.htm0000644000175000017500000001531112040235120022030 0ustar franciscofrancisco

Allmän information

Ett DMS (Document Management System - Dokumenthanteringssystem) är utformat för att göra det möjligt att dela dokument i ett kontrollerat arbetsflöde, med tillgångsrättigheter och på ett organiserat sätt.

Vid användning av första nivåns meny har användaren möjlighet att få tillgång till information som lagras i systemet:

  • Innehåll: dokument kan sökas igenom som i en Utforskare.
  • Mina dokument: har ett flertal valmöjligheter för att få tillgång till dokument som är intressanta för dig:
    • Dokument i bearbetning: lista med dokument som väntar på att bli granskade och godkända av användaren, dokument som användaren har skapats och som väntar på att bli godkända eller granskade, dokument som har låsts av användaren.
    • Alla dokument: lista med alla dokument som har skapats av avändaren.
    • Sammanfattning granskningar: lista med alla dokument som har granskats eller väntar på att bli granskade av användaren.
    • Sammanfattning godkännande: lista med alla dokument som har godkänts eller som väntar på att bli godkända.

Detta DMS tillhandahåller en kalender, som fungerar som en virtuell anslagstavla för att dela meddelanden, möten, deadlines och åtaganden.

Rättigheter

Auktoriserade användare kan ställa in om och hur andra användare har tillgång till olika mappar och dokument.

Rättighetsnivåer

Möjliga rättighetsnivåer är:

  • Fulla rättigheter: användaren kan utföra alla funktioner.
  • Läs och skriv-rättigheter: användaren kan uppdatera dokument och lägga till nya dokument till mapparna.
  • Läsrättighet: användaren kan se innehållet i mapparna och ladda ner dokument.
  • Ingen tillgång: användaren kan inte se innehållet i mappar eller enskilda dokument.

Som standard, har administratörer fulla rättigheter till alla dokument och mappar i systemet. På samma sätt har skaparen av ett dokument fulla rättigheter till sitt eget dokument.

Bara administratörer kan ändra ägaren (personen som skapade dokumentet) till ett dokument.

Inställning av rättigheter

För alla mappar och dokument ställs rättigheter in genom två olika inställningar

  • Standardrättigheterna används om inga specifika rättigheter har angetts
  • I listan med rättigheter kan undantag till standardrättigheterna anges

Ärva rättigheter

Rättigheterna till mappar och dokument kan anges som ett arv. Om man gör detta, så ärver filer och mappar rättigheterna hos den mapp där de befinner sig.

Arbetsflöde med dokument

Systemet hanterar automatiskt arbetsflödet för varje dokument och sparar ändringar, versionsnummer, kommentarer osv.

Valideringscykel

När man laddar upp ett nytt dokument eller en ny verision, kräver det normala arbetsflödet att några användare eller grupper av användare väljs ut för att granska och/eller godkänna dokumentet. Användare, som ska granska och godkänna andra användares dokument, måste förklara varför ett dokument har godkänts. När denna operation är avslutad och alla listade användare har gjort sin granskning eller godkänt dokumentet, ändras statusen på dokumentet till 'klart för användning'.

Personen som granskar/godkänner kan vägra att godkänna dokumentet. Då blir dokumentets status satt till 'avvisat'.

För dokument, där inga personer har angetts för granskning eller godkännande, får dokumentet direkt statusen 'klart för användning'.

För att granska/godkänna dokument, kan antingen specifika användare eller grupper av användare väljas. Väljer man en grupp av personer, måste varje person genomföra granskningen och sedan godkänna dokumentet.

Dokumentägaren (personen som skapade dokumentet) har alltid möjlighet att ändra listan av personer som ska granska.

Dokumentstatus

Följande status för dokument är möjliga:

  • Utkast som väntar på godkännande: en eller flera personer som ska godkänna dokumentet har inte gjort det ännu.
  • Utkast som väntar på granskning: en eller flera personer som ska granska dokumentet har inte gjort det ännu.
  • Klart för användning: granskningen av dokumentet har genomförts och den har godkänts av alla inblandade personer.
  • Avvisat: dokumentet har inte godkänts.
  • Har gått ut: deadline för att få klart granskning/godkännande har överskridits.
  • Föråldrat: statusen hos ett dokument som har fått status klart för användning kan ändras till föråldrat. Detta är ett alternativ till att avbryta hanteringen av ett dokument. Statusen föråldrat kan ändras till annan status.

Har gått ut

För varje dokument som befinner sig i produktion kan det sättas ett datum för när det ska vara avslutat. Överskrids denna tidpunkt, sätts dokumentet till status "har gått ut" och dokumentet kan inte längre granskas eller godkännas.

Deadline används bara för den senaste versionen av ett dokument och det kan bara användas när dokument bearbetas.

Andra funktioner

Låsfunktion

Låsfunktionen har skapats för att visa andra användare att ett visst dokument håller på att bearbetas. Användare som har fulla rättigheter till dokumentet kan dock ta bort låsningen och fortsätta att göra ändringar på dokumentet.

Meddelanden

Varje användare kan begära att få meddelanden angående dokument och mappar. Lägger man till en fil eller mapp i sin egen lista över meddelanden, skickas en rapport som innehåller information om ändringar via e-post.

Bara administratören i en grupp har möjlighet att begära att gruppen ska få meddelanden vid ändring av dokument eller mappar. När det har angetts att gruppen ska få meddelanden, skickas ett meddelande till alla medlemmar i gruppen.

Nyckelord och sök

För varje dokument kan en beskrivning och en samling av nyckelord anges. Denna information används för sök-funktionen.

I den personliga menyn, kan varje användare lägga till och spara nyckelord som kan grupperas enligt kategorier, för att det ska gå snabbare att fylla i information när dokument laddas upp.

När man trycker på sök-knappen kommer man automatiskt till sidan för avancerad sökning.

Kalender

Det finns tre olika visningsmöjligheter för kalendern: per vecka, månad, år. Händelser visas i den ordningen som de har lagts till i kalendern.

Alla inlägg är offentliga och synliga för alla användare. Bara administratören och personen som har lagt upp händelsen kan ändra den.

letodms-3.3.11+dfsg.1/languages/Russian/0000755000175000017500000000000012040235120020403 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Russian/lang.inc0000644000175000017500000014460112040235120022025 0ustar franciscofranciscoВНИМАНИЕ: Архив созданый как понятный человеку, будет не пригоден в качестве бекапа!"; $text["assign_approvers"] = "Назначить утверждающих"; $text["assign_reviewers"] = "Назначить рецензентов"; $text["assign_user_property_to"] = "Назначить свойства пользователя"; $text["assumed_released"] = "Утвержден"; $text["august"] = "Август"; $text["automatic_status_update"] = "Автоматическое изменения статуса"; $text["back"] = "Назад"; $text["backup_list"] = "Список бекапов"; $text["backup_remove"] = "Удалить бекап"; $text["backup_tools"] = "Иструменты бекапа"; $text["between"] = "между"; $text["calendar"] = "Календарь"; $text["cancel"] = "Отмена"; $text["cannot_assign_invalid_state"] = "Невозможно изменить устаревший или отклоненный документ"; $text["cannot_change_final_states"] = "Нельзя изменять статус у отклоненного, просроченого или ожидающего рецензии или утверждения"; $text["cannot_delete_yourself"] = "Нельзя удалить себя"; $text["cannot_move_root"] = "Нельзя переместить корневую папку"; $text["cannot_retrieve_approval_snapshot"] = "Невозможно получить утверждающий снимок для этой версии документа"; $text["cannot_retrieve_review_snapshot"] = "Невозможно получить рецензирующий снимок для этой версии документа"; $text["cannot_rm_root"] = "Нельзя удалить корневую папку"; $text["category"] = "Категория"; $text["category_exists"] = "Категория существует"; $text["category_filter"] = "Только категории"; $text["category_in_use"] = "Эта категория используется документами"; $text["category_noname"] = "Введите название категории"; $text["categories"] = "Категории"; $text["change_assignments"] = "Изменить назначения"; $text["change_password"] = "Изменить пароль"; $text["change_password_message"] = "Пароль изменен"; $text["change_status"] = "Сменить статус"; $text["choose_category"] = "Выберите"; $text["choose_group"] = "Выберите группу"; $text["choose_target_category"] = "Выберите категорию"; $text["choose_target_document"] = "Выберите документ"; $text["choose_target_folder"] = "Выберите папку"; $text["choose_user"] = "Выберите пользователя"; $text["comment_changed_email"] = "Коментарий изменен"; $text["comment"] = "Коментарий"; $text["comment_for_current_version"] = "Коментарий версии"; $text["confirm_create_fulltext_index"] = "Да, пересоздать полнотекстовый индекс!"; $text["confirm_pwd"] = "Подтвердите пароль"; $text["confirm_rm_backup"] = "Удалить файл \"[arkname]\"?
Действие перманентно"; $text["confirm_rm_document"] = "Удалить документ \"[documentname]\"?
Действие перманентно"; $text["confirm_rm_dump"] = "Удалить файл \"[dumpname]\"?
Действие перманентно"; $text["confirm_rm_event"] = "Удалить событие \"[name]\"?
Действие перманентно"; $text["confirm_rm_file"] = "Удалить файл \"[name]\" документа \"[documentname]\"?
Действие перманентно"; $text["confirm_rm_folder"] = "Удалить папку \"[foldername]\" и ее содержимое?
Действие перманентно"; $text["confirm_rm_folder_files"] = "Удалить все файлы в папке \"[foldername]\" и ее подпапок?
Действие перманентно"; $text["confirm_rm_group"] = "Удалить группу \"[groupname]\"?
Действие перманентно"; $text["confirm_rm_log"] = "Удалить лог \"[logname]\"?
Дествие перманентно"; $text["confirm_rm_user"] = "Удалить пользователя \"[username]\"?
Действие перманентно"; $text["confirm_rm_version"] = "Удалить версию [version] документа \"[documentname]\"?
Действие перманентно"; $text["content"] = "Содержимое"; $text["continue"] = "Продолжить"; $text["create_fulltext_index"] = "Создать полнотекстовый индекс"; $text["create_fulltext_index_warning"] = "Вы хотите пересодать полнотекстовый индекс. Это займет время и снизит производительность. Продолжить?"; $text["creation_date"] = "Создан"; $text["current_version"] = "Текущая версия"; $text["daily"] = "Ежедневно"; $text["databasesearch"] = "Поиск по БД"; $text["december"] = "Декабрь"; $text["default_access"] = "Доступ по-умолчанию"; $text["default_keywords"] = "Доступные теги"; $text["delete"] = "Удалить"; $text["details"] = "Детали"; $text["details_version"] = "Детали версии: [version]"; $text["disclaimer"] = "Работаем аккуратно и вдумчиво. От этого зависит будущее нашей с вами страны и благополучие народа. Даешь пятилетку за три года!"; $text["do_object_repair"] = "Исправить все папки и документы"; $text["document_already_locked"] = "Документ уже заблокирован"; $text["document_deleted"] = "Документ удален"; $text["document_deleted_email"] = "Документ удален"; $text["document"] = "Документ"; $text["document_infos"] = "Информацию о документе"; $text["document_is_not_locked"] = "Документ не заблокирован"; $text["document_link_by"] = "Связан"; $text["document_link_public"] = "Публичный"; $text["document_moved_email"] = "Документ перемещен"; $text["document_renamed_email"] = "Документ переименован"; $text["documents"] = "Документы"; $text["documents_in_process"] = "Документы в работе"; $text["documents_locked_by_you"] = "Документы, заблокированые Вами"; $text["document_status_changed_email"] = "Статус документа изменен"; $text["documents_to_approve"] = "Документы, ожидающие Вашего утверждения"; $text["documents_to_review"] = "Документы, ожидающие Вашей рецензии"; $text["documents_user_requiring_attention"] = "Ваши документы, требующие внимания"; $text["document_title"] = "Документ '[documentname]'"; $text["document_updated_email"] = "Документ обновлен"; $text["does_not_expire"] = "Без срока"; $text["does_not_inherit_access_msg"] = "Наследовать уровень доступа"; $text["download"] = "Скачать"; $text["draft_pending_approval"] = "Черновик - ожидает утверждения"; $text["draft_pending_review"] = "Черновик - ожидает рецензии"; $text["dump_creation"] = "Создание дампа БД"; $text["dump_creation_warning"] = "Эта операция создаст дамп базы данных. После создания, файл будет сохранен в каталоге данных сервера."; $text["dump_list"] = "Соществующие дампы"; $text["dump_remove"] = "Удалить дамп"; $text["edit_comment"] = "Редактировать коментарий"; $text["edit_default_keywords"] = "Редактировать теги"; $text["edit_document_access"] = "Редактировать доступ"; $text["edit_document_notify"] = "Список уведомления документа"; $text["edit_document_props"] = "Редактировать документ"; $text["edit"] = "РЕдактировать"; $text["edit_event"] = "Редактировать событие"; $text["edit_existing_access"] = "Редактироват список доступа"; $text["edit_existing_notify"] = "Редактироват список уведомления"; $text["edit_folder_access"] = "РЕдактировать доступ"; $text["edit_folder_notify"] = "Список уведомления папки"; $text["edit_folder_props"] = "Редактировать папку"; $text["edit_group"] = "Редактировать группу"; $text["edit_user_details"] = "Редактировать данные пользователя"; $text["edit_user"] = "Редаткировать пользователя"; $text["email"] = "Email"; $text["email_error_title"] = "Email не указан"; $text["email_footer"] = "Вы всегда можете изменить e-mail исползуя функцию 'Моя учетка'"; $text["email_header"] = "Это автоматическое уведомление сервера документооборота"; $text["email_not_given"] = "Введите настоящий email."; $text["empty_notify_list"] = "Нет записей"; $text["error"] = "Ошибка"; $text["error_no_document_selected"] = "Нет выбраных документов"; $text["error_no_folder_selected"] = "Нет выбраных папок"; $text["error_occured"] = "Произошла ошибка"; $text["event_details"] = "Детали события"; $text["expired"] = "Истек"; $text["expires"] = "Истекает"; $text["expiry_changed_email"] = "Дата истечения изменена"; $text["february"] = "Февраль"; $text["file"] = "Файл"; $text["files_deletion"] = "Удаление файлов"; $text["files_deletion_warning"] = "Эта операция удалит все файлы во всех папках. Информация о версиях останется доступна"; $text["files"] = "Файлы"; $text["file_size"] = "Размер"; $text["folder_contents"] = "Содержимое папки"; $text["folder_deleted_email"] = "Папка удалена"; $text["folder"] = "Папка"; $text["folder_infos"] = "Информация о папке"; $text["folder_moved_email"] = "Папка перемещена"; $text["folder_renamed_email"] = "Папка переименована"; $text["folders_and_documents_statistic"] = "Обзор содержимого"; $text["folders"] = "Папки"; $text["folder_title"] = "Папка '[foldername]'"; $text["friday"] = "Пятница"; $text["from"] = "От"; $text["fullsearch"] = "Полнотекстовый поиск"; $text["fullsearch_hint"] = "Использовать полнотекстовый индекс"; $text["fulltext_info"] = "Информация о полнотекстовом индексе"; $text["global_default_keywords"] = "Глобальные теги"; $text["global_document_categories"] = "Категории"; $text["group_approval_summary"] = "Сводка по утверждению группы"; $text["group_exists"] = "Группа уже существует"; $text["group"] = "Группа"; $text["group_management"] = "Управление группами"; $text["group_members"] = "Члены группы"; $text["group_review_summary"] = "Сводка по рецензированию группы"; $text["groups"] = "Группы"; $text["guest_login_disabled"] = "Гостевой вход отключен"; $text["guest_login"] = "Войти как гость"; $text["help"] = "Помощь"; $text["hourly"] = "Ежечасно"; $text["human_readable"] = "Человекопонятный архив"; $text["include_documents"] = "Включить документы"; $text["include_subdirectories"] = "Включить подкаталоги"; $text["individuals"] = "Личности"; $text["inherits_access_msg"] = "Доступ унаследован."; $text["inherits_access_copy_msg"] = "Скопировать наследованный список"; $text["inherits_access_empty_msg"] = "Начать с пустова списка доступа"; $text["internal_error_exit"] = "Внутренняя ошибка. Невозможно выполнить запрос. Завершение."; $text["internal_error"] = "Внутренняя ошибка"; $text["invalid_access_mode"] = "Неверный уровень доступа"; $text["invalid_action"] = "Неверное действие"; $text["invalid_approval_status"] = "Неверный статус утверждения"; $text["invalid_create_date_end"] = "Неверная конечная дата для диапазаона даты создания"; $text["invalid_create_date_start"] = "Неверная начальная дата для диапазаона даты создания"; $text["invalid_doc_id"] = "Неверный идентификатор документа"; $text["invalid_file_id"] = "Неверный идентификатор файла"; $text["invalid_folder_id"] = "Неверный идентификатор папки"; $text["invalid_group_id"] = "Неверный идентификатор группы"; $text["invalid_link_id"] = "Неверный идентификатор ссылки"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Неверный статус рецензирования"; $text["invalid_sequence"] = "Неверное значение последовательности"; $text["invalid_status"] = "Неверный статус документа"; $text["invalid_target_doc_id"] = "Неверный идентификатор целевого документа"; $text["invalid_target_folder"] = "Неверный идентификатор целевой папки"; $text["invalid_user_id"] = "Неверный идентификатор пользователя"; $text["invalid_version"] = "Неверная версия документа"; $text["is_hidden"] = "Не показывать в списке пользователей"; $text["january"] = "Январь"; $text["js_no_approval_group"] = "Выберите утверждающую группу"; $text["js_no_approval_status"] = "Выберите статус утверждения"; $text["js_no_comment"] = "Нет коментария"; $text["js_no_email"] = "Введите свой Email"; $text["js_no_file"] = "Выберите файл"; $text["js_no_keywords"] = "Укажите теги"; $text["js_no_login"] = "Введите логин"; $text["js_no_name"] = "Введите имя"; $text["js_no_override_status"] = "Выберите новый [override] статус"; $text["js_no_pwd"] = "Введите пароль"; $text["js_no_query"] = "Введите запрос"; $text["js_no_review_group"] = "Выберите рецензирующую группу"; $text["js_no_review_status"] = "Выберите статус рецензии"; $text["js_pwd_not_conf"] = "Пароль и его подтверждение не совпадают"; $text["js_select_user_or_group"] = "Выберите хотя бы пользователя или группу"; $text["js_select_user"] = "Выберите пользователя"; $text["july"] = "Июль"; $text["june"] = "Июнь"; $text["keyword_exists"] = "Тег существует"; $text["keywords"] = "Теги"; $text["language"] = "Язык"; $text["last_update"] = "Последнее обновление"; $text["link_alt_updatedocument"] = "Если Вы хотите загрузить файлы больше текущего лимита, используйте другой способ."; $text["linked_documents"] = "Связаные документы"; $text["linked_files"] = "Приложения"; $text["local_file"] = "Локальный файл"; $text["locked_by"] = "Заблокирован"; $text["lock_document"] = "Заблокировать"; $text["lock_message"] = "Документ заблокирован [username]. Только имеющие права могут его разблокировать."; $text["lock_status"] = "Статус"; $text["login"] = "Логин"; $text["login_error_text"] = "Ошибка входа. Проверьте логин и пароль."; $text["login_error_title"] = "Ошибка входа"; $text["login_not_given"] = "Не указан пользователь"; $text["login_ok"] = "Вход успешен"; $text["log_management"] = "Управление логами"; $text["logout"] = "Выход"; $text["manager"] = "Менеджер"; $text["march"] = "Март"; $text["max_upload_size"] = "Лимит размера файла"; $text["may"] = "Май"; $text["monday"] = "Понедельник"; $text["month_view"] = "Вид месяца"; $text["monthly"] = "Ежемесячно"; $text["move_document"] = "Переместить документ"; $text["move_folder"] = "Переместить папку"; $text["move"] = "Переместить"; $text["my_account"] = "Моя учетка"; $text["my_documents"] = "Мои документы"; $text["name"] = "Имя"; $text["new_default_keyword_category"] = "Добавить категорию"; $text["new_default_keywords"] = "Добавить теги"; $text["new_document_category"] = "Добавить категорию"; $text["new_document_email"] = "Новый документ"; $text["new_file_email"] = "Новое приложение"; $text["new_folder"] = "Новая папка"; $text["new"] = "Новый"; $text["new_subfolder_email"] = "Новая папка"; $text["new_user_image"] = "Новое изображение"; $text["no_action"] = "Действие не требуется"; $text["no_approval_needed"] = "Утверждение не требуется"; $text["no_attached_files"] = "Нет прикрепленных файлов"; $text["no_default_keywords"] = "Нет тегов"; $text["no_docs_locked"] = "Нет заблокированых документов"; $text["no_docs_to_approve"] = "Нет документов, нуждающихся в утверждении"; $text["no_docs_to_look_at"] = "Нет документов, нуждающихся во внимании"; $text["no_docs_to_review"] = "Нет документов, нуждающихся в рецензии"; $text["no_group_members"] = "Группа не имеет членов"; $text["no_groups"] = "Нет групп"; $text["no"] = "Нет"; $text["no_linked_files"] = "Нет прикрепленных файлов"; $text["no_previous_versions"] = "Нет других версий"; $text["no_review_needed"] = "Рецензия не требуется"; $text["notify_added_email"] = "Вы добавлены в список уведомлений"; $text["notify_deleted_email"] = "Выудалены из списка уведомлений"; $text["no_update_cause_locked"] = "Вы не можете обновить документ. Свяжитесь с заблокировавшим пользователем."; $text["no_user_image"] = "Изображение не найдено"; $text["november"] = "Ноябрь"; $text["objectcheck"] = "Проверка Папки/Документа"; $text["obsolete"] = "Устарел"; $text["october"] = "Октябрь"; $text["old"] = "Старый"; $text["only_jpg_user_images"] = "Разрешены только .jpg-изображения"; $text["owner"] = "Владелец"; $text["ownership_changed_email"] = "Владелец изменен"; $text["password"] = "Пароль"; $text["password_repeat"] = "Повторите пароль"; $text["password_forgotten"] = "Забыл пароль"; $text["password_forgotten_email_subject"] = "Забыл пароль"; $text["password_forgotten_email_body"] = "Уважаемый юзверь,\n\nмы получили запрос на изменение Вашего пароля.\n\nЧто бы это сделать, перейдите по ссылке:\n\n###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH###\n\nЕсли вы и после этого не сможете войти, свяжитесь с админом."; $text["password_forgotten_send_hash"] = "Инструкции высланы на email"; $text["password_forgotten_text"] = "Заполниет форму и следуйте инструкциям в письме"; $text["password_forgotten_title"] = "Пароль выслан"; $text["personal_default_keywords"] = "Личный список тегов"; $text["previous_versions"] = "Предыдущие версии"; $text["refresh"] = "Обновить"; $text["rejected"] = "Отклонен"; $text["released"] = "Утвержден"; $text["removed_approver"] = "удален из списка утверждающих"; $text["removed_file_email"] = "Удалить приложение"; $text["removed_reviewer"] = "удален из списка рецензирующих"; $text["repairing_objects"] = "Восстановление папок и документов"; $text["results_page"] = "Страница результатов"; $text["review_deletion_email"] = "ЗАпрос на рецензию удален"; $text["reviewer_already_assigned"] = "уже назначет на рецензирование"; $text["reviewer_already_removed"] = "уже удален из списка рецензирующих или уже оставил рецензию"; $text["reviewers"] = "Рецензирующие"; $text["review_group"] = "Рецензирующая группа"; $text["review_request_email"] = "Запрос на рецензию"; $text["review_status"] = "Статус рецензии"; $text["review_submit_email"] = "Отправленная рецензия"; $text["review_summary"] = "Сводка по рецензии"; $text["review_update_failed"] = "Ошибка обновления статуса рецензии"; $text["rm_default_keyword_category"] = "Удалить категорию"; $text["rm_document"] = "Удалить документ"; $text["rm_document_category"] = "Удалить категорию"; $text["rm_file"] = "Удалить файл"; $text["rm_folder"] = "Удалить папку"; $text["rm_group"] = "Удалить группу"; $text["rm_user"] = "Удалить этого пользователя"; $text["rm_version"] = "Удалить версию"; $text["role_admin"] = "Админ"; $text["role_guest"] = "Гость"; $text["role_user"] = "Пользователь"; $text["role"] = "Роль"; $text["saturday"] = "Суббота"; $text["save"] = "Сохранить"; $text["search_fulltext"] = "Полнотекстовый поиск"; $text["search_in"] = "Поиск"; $text["search_mode_and"] = "все слова"; $text["search_mode_or"] = "хотя бы одно слово"; $text["search_no_results"] = "Нет документов, соответствующих запросу"; $text["search_query"] = "Искать"; $text["search_report"] = "Найдено [doccount] документов и [foldercount] папок"; $text["search_report_fulltext"] = "Найдено [doccount] документов"; $text["search_results_access_filtered"] = "Результаты поиска могут содержать объекты к которым у вас нет доступа"; $text["search_results"] = "Результаты поиска"; $text["search"] = "Поиск"; $text["search_time"] = "Прошло: [time] sec."; $text["selection"] = "Выбор"; $text["select_one"] = "Выбрать один"; $text["september"] = "Сентябрь"; $text["seq_after"] = "После \"[prevname]\""; $text["seq_end"] = "В конце"; $text["seq_keep"] = "Сохранить позицию"; $text["seq_start"] = "Первая позиция"; $text["sequence"] = "Последовательность"; $text["set_expiry"] = "Установить истечение"; $text["set_owner_error"] = "Ошибка при установке владельца"; $text["set_owner"] = "Установить владельца"; $text["settings_install_welcome_title"] = "Добро пожаловать в установку letoDMS"; $text["settings_install_welcome_text"] = "

Прежде чем начать, убедитесь что вы создали файл 'ENABLE_INSTALL_TOOL' в каталоге конфигурации, иначе установка не будет работать. На NIX-подобных это можно сделать командой 'touch conf/ENABLE_INSTALL_TOOL'. После установки удалите файл.

letoDMS имеет минимальные требования. Нужна mysql БД и веб-сервер с php. Для того что бы работал полнотекстовый поиск lucene, также необходима Zend framework, установленая там где ее видит php. Начиная с версии 3.2.0 letoDMS, ADOdb не будет частью дистрибутива. Скачайте ее с http://adodb.sourceforge.net и установите. Путь к ней может быть указан позднее при установке.

Если Вы хотите создать БД до установки, тогда создайте ее ручками (тут так и было написано)))), опционально создайте юзера с правами на бд и импортируйте дамп из папки конфигурации. Установочный скрипт это может сделать и сам, но понадобится доступ к БД с правами для создания базы данных.

"; $text["settings_start_install"] = "Начать установку"; $text["settings_activate_module"] = "Активировать модуль"; $text["settings_activate_php_extension"] = "Активировать расширение PHP"; $text["settings_adminIP"] = "Админский IP"; $text["settings_adminIP_desc"] = "Если установить, то админ сможет зайти только с этого IP. Оставьте пустым во избежании апокалипсиса. Не работает с LDAP"; $text["settings_ADOdbPath"] = "Путь к ADOdb"; $text["settings_ADOdbPath_desc"] = "Папка содержащая ПАПКУ ADOdb"; $text["settings_Advanced"] = "Дополнительно"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Настройки авторизации"; $text["settings_Calendar"] = "Настройки календаря"; $text["settings_calendarDefaultView"] = "Вид календаря по-умолчанию"; $text["settings_calendarDefaultView_desc"] = "Вид календаря по-умолчанию"; $text["settings_contentDir"] = "Каталог контента"; $text["settings_contentDir_desc"] = "Куда сохраняются загруженые файлы (лучше выбрать каталог, недоступный веб-серверу)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "Во избежании проблем с файловой системой была введена новая структура папок в каталоге контента. Необходима базовая папка, откуда начать. Впрочем оставьте тут все как есть, 1048576, но может быть любым числом или строкой, не существующей уже в папке контента"; $text["settings_coreDir"] = "Папка Core letoDMS"; $text["settings_coreDir_desc"] = "Путь к LetoDMS_Core (не обязательно)"; $text["settings_luceneClassDir"] = "Папка Lucene LetoDMS"; $text["settings_luceneClassDir_desc"] = "Путь к LetoDMS_Lucene (не обязательно)"; $text["settings_luceneDir"] = "Папка индекса Lucene"; $text["settings_luceneDir_desc"] = "Путь, куда Lucene будет писать свой индекс"; $text["settings_cannot_disable"] = "Невозможно удлить ENABLE_INSTALL_TOOL"; $text["settings_install_disabled"] = "ENABLE_INSTALL_TOOL удален. Теперь можно залогиниться для последующей конфигурации системы."; $text["settings_createdatabase"] = "Создать таблицы БД"; $text["settings_createdirectory"] = "Создать папку"; $text["settings_currentvalue"] = "Текущее значение"; $text["settings_Database"] = "Настройки БД"; $text["settings_dbDatabase"] = "БД"; $text["settings_dbDatabase_desc"] = "Название БД, введенное в ходе установки. Не изменять без необходимости, только, например, если БД перемещена."; $text["settings_dbDriver"] = "Тип БД"; $text["settings_dbDriver_desc"] = "Тип БД, введенный в ходе установки. Не изменять без необходимости, только, например, если БД изменила движок. Драйвер adodb (читать мануал adodb)"; $text["settings_dbHostname_desc"] = "Хост БД, введенный в ходе установки. Не изменять без необходимости, только, например, если БД перемещена."; $text["settings_dbHostname"] = "Хост"; $text["settings_dbPass_desc"] = "Пароль, введенный в ходе установки"; $text["settings_dbPass"] = "Пароль"; $text["settings_dbUser_desc"] = "Логин, введенный в ходе установки. Не изменять без необходимости, например если БД была перемещена."; $text["settings_dbUser"] = "Логин"; $text["settings_dbVersion"] = "Схема БД утсрала"; $text["settings_delete_install_folder"] = "Удалите ENABLE_INSTALL_TOOL в каталоге конфигурации, для того что бы начать использовать систему"; $text["settings_disable_install"] = "Удалить ENABLE_INSTALL_TOOL есди возможно"; $text["settings_disableSelfEdit_desc"] = "Если включить, пользователи не смогут редактировать свою информацию"; $text["settings_disableSelfEdit"] = "Отключить собстенное редактирование"; $text["settings_Display"] = "Отключить настройки"; $text["settings_Edition"] = "Настройки редакции"; $text["settings_enableAdminRevApp_desc"] = "Отключить, что бы скрыть админа из списка рецензирующих/утверждающих"; $text["settings_enableAdminRevApp"] = "Админ рулит)))"; $text["settings_enableCalendar_desc"] = "Включить/отключить календарь"; $text["settings_enableCalendar"] = "Включить календарь"; $text["settings_enableConverting_desc"] = "Включить/отключить конвертацию файлов"; $text["settings_enableConverting"] = "Включить конвертацию"; $text["settings_enableEmail_desc"] = "Включить/отключить автоматическое уведомление по email"; $text["settings_enableEmail"] = "Включить E-mail"; $text["settings_enableFolderTree_desc"] = "Отключено - не показывать дерево папок"; $text["settings_enableFolderTree"] = "Включить дерево папок"; $text["settings_enableFullSearch"] = "Включить полнотекстовы поиск"; $text["settings_enableFullSearch_desc"] = "Включить полнотекстовый поиск"; $text["settings_enableGuestLogin_desc"] = "Что бы разрешить гостевой вход, включите эту опцию. Гостевой вход должен использоваться только в довереной среде."; $text["settings_enableGuestLogin"] = "Включить гостевой вход"; $text["settings_enableLargeFileUpload_desc"] = "Если включено, загрузка файлов дуступна так же через ява-апплет, называемый jumploader, без лимита на размер файла. Это так же позволит загружать несколько файлов за раз."; $text["settings_enableLargeFileUpload"] = "Включить ява-загрузчик файлов"; $text["settings_enablePasswordForgotten_desc"] = "Если включено, разрешает юзерам восстанавливать пароль на email."; $text["settings_enablePasswordForgotten"] = "Включить восстановление пароля"; $text["settings_enableUserImage_desc"] = "Включить аватары пользователей"; $text["settings_enableUserImage"] = "Включить аватары"; $text["settings_enableUsersView_desc"] = "Включить/отключить просмотр групп/пользователей для всех пользователей"; $text["settings_enableUsersView"] = "Включить просмотр пользователей"; $text["settings_error"] = "Ошибка"; $text["settings_expandFolderTree_desc"] = "Разворачивать дерево папок"; $text["settings_expandFolderTree"] = "Разворачивать дерево папок"; $text["settings_expandFolderTree_val0"] = "начинать со свернутого дерева"; $text["settings_expandFolderTree_val1"] = "начинать с развернутого дерева с развернутым первым уровнем"; $text["settings_expandFolderTree_val2"] = "начинать с полностью развернутого дерева"; $text["settings_firstDayOfWeek_desc"] = "Первый день недели"; $text["settings_firstDayOfWeek"] = "Первый день недели"; $text["settings_footNote_desc"] = "Сообщение, показываемое внизу каждой страницы"; $text["settings_footNote"] = "Футер"; $text["settings_guestID_desc"] = "Идентификатор гостя (можно не изменять)"; $text["settings_guestID"] = "Идентификатор гостя"; $text["settings_httpRoot_desc"] = "Относительный путь в URL, после доменной части. Без http://. Например если полный URL http://www.example.com/letodms/, то нам нужно указать '/letodms/'. Если URL http://www.example.com/, то '/'"; $text["settings_httpRoot"] = "Корень Http"; $text["settings_installADOdb"] = "Установить ADOdb"; $text["settings_install_success"] = "Установка успешно завершена."; $text["settings_install_pear_package_log"] = "Установите пакет Pear 'Log'"; $text["settings_install_pear_package_webdav"] = "Установите пакет Pear 'HTTP_WebDAV_Server', если собираетесь использовать этот протокол"; $text["settings_install_zendframework"] = "Установите Zend Framework, если собираетесь использовать полнотекстовый поиск"; $text["settings_language"] = "Язык по-умолчанию"; $text["settings_language_desc"] = "Язык по-умолчанию (название подпапки в папке \"languages\")"; $text["settings_logFileEnable_desc"] = "Включить/отключить лог"; $text["settings_logFileEnable"] = "Включить лог"; $text["settings_logFileRotation_desc"] = "Прокрутка лога"; $text["settings_logFileRotation"] = "Прокрутка лога"; $text["settings_luceneDir"] = "Каталог для полнотекстового индекса"; $text["settings_maxDirID_desc"] = "Максимум подпапок в родительской папке. По-умолчанию: 32700."; $text["settings_maxDirID"] = "Максимальный ID папки"; $text["settings_maxExecutionTime_desc"] = "Устанавливает максимальное время выполнения скрипта, перед тем как он будет прибит парсером"; $text["settings_maxExecutionTime"] = "Максимальное время выполнения (с)"; $text["settings_more_settings"] = "Еще настройки. Дефолтный логин: admin/admin"; $text["settings_no_content_dir"] = "Каталог контента"; $text["settings_notfound"] = "Не найден"; $text["settings_notwritable"] = "Конфигурация не может быть сохранена, потому что файл конфигурации только для чтения."; $text["settings_partitionSize"] = "Частичный размер файла"; $text["settings_partitionSize_desc"] = "Размер частичных файлов в байтах, загружаемых через jumploader. Не устанавливать выше максимально возможного размера, установленного на сервере."; $text["settings_perms"] = "Разрешения"; $text["settings_pear_log"] = "Пакет Pear : Log"; $text["settings_pear_webdav"] = "Пакет Pear : HTTP_WebDAV_Server"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "Если включенно, то дисклаймер из lang.inc будет выводится внизу каждой страницы"; $text["settings_printDisclaimer"] = "Выводить дисклаймер"; $text["settings_restricted_desc"] = "Разрешать вход пользователям, только если у них есть соответствующая учетка в БД (независимо от успешного входа через LDAP)"; $text["settings_restricted"] = "Ограниченый доступ"; $text["settings_rootDir_desc"] = "Путь к letoDMS"; $text["settings_rootDir"] = "Корневая папка"; $text["settings_rootFolderID_desc"] = "ID каждой корневой папки (можно не менять)"; $text["settings_rootFolderID"] = "ID корневой папки"; $text["settings_SaveError"] = "Ошибка при сохранении конфигурации"; $text["settings_Server"] = "Настройки сервера"; $text["settings"] = "Настройки"; $text["settings_siteDefaultPage_desc"] = "Страница,показываемая после входа. Есди пусто, то out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Страница по-умолчанию"; $text["settings_siteName_desc"] = "Название сайта, используемое в заголовках. По-умолчанию: letoDMS"; $text["settings_siteName"] = "Название сайта"; $text["settings_Site"] = "Сайт"; $text["settings_smtpPort_desc"] = "Порт сервера SMTP, по-умолчанию 25"; $text["settings_smtpPort"] = "SMTP порт"; $text["settings_smtpSendFrom_desc"] = "Отправлено от"; $text["settings_smtpSendFrom"] = "От"; $text["settings_smtpServer_desc"] = "Хост SMTP"; $text["settings_smtpServer"] = "Хост SMTP"; $text["settings_SMTP"] = "Настройки SMTP"; $text["settings_stagingDir"] = "Папка для частичных загрузок"; $text["settings_strictFormCheck_desc"] = "Если включить, то все поля формы будут проверяться на заполненость. Если выключить, то коментарии и теги станут опциональными. Коментарий всегда обезателен при рецензировании или изменении статуса."; $text["settings_strictFormCheck"] = "Полная проверка форм"; $text["settings_suggestionvalue"] = "Предлагаемое значение"; $text["settings_System"] = "Система"; $text["settings_theme"] = "Тема по-умолчанию"; $text["settings_theme_desc"] = "Стиль по-умолчанию (подпапка в папке \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Костяль для заголовков длиннее двух строк"; $text["settings_titleDisplayHack"] = "Костыль для заголовков"; $text["settings_updateDatabase"] = "Запустить обновление схемы БД"; $text["settings_updateNotifyTime_desc"] = "Пользователи уведомляются об измененях в документах за последние 'Update Notify Time' секунд"; $text["settings_updateNotifyTime"] = "Вермя уведомлений об изменениях"; $text["settings_versioningFileName_desc"] = "Названия файла версий, создаваемого инструментом бекапа"; $text["settings_versioningFileName"] = "Название файла версий"; $text["settings_viewOnlineFileTypes_desc"] = "Файлы с одним из следующих расширений могут просматриваться онлайн (только маленькие буквы)"; $text["settings_viewOnlineFileTypes"] = "Типы файлов для просмотра онлайн"; $text["settings_zendframework"] = "Zend Framework"; $text["signed_in_as"] = "Вход под"; $text["sign_in"] = "вход"; $text["sign_out"] = "выход"; $text["space_used_on_data_folder"] = "Размер каталога данных"; $text["status_approval_rejected"] = "Черновик отклонен"; $text["status_approved"] = "Утвержден"; $text["status_approver_removed"] = "Утверждающий удален из процесса"; $text["status_not_approved"] = "Не утвержден"; $text["status_not_reviewed"] = "Не рецензирован"; $text["status_reviewed"] = "Рецензирован"; $text["status_reviewer_rejected"] = "Черновик отклонен"; $text["status_reviewer_removed"] = "Рецензирующий удален из процесса"; $text["status"] = "Статус"; $text["status_unknown"] = "Неизвестный"; $text["storage_size"] = "Размер хранилища"; $text["submit_approval"] = "Утвердить"; $text["submit_login"] = "Войти"; $text["submit_password"] = "Установить новый пароль"; $text["submit_password_forgotten"] = "Начать процесс"; $text["submit_review"] = "Рецензировать"; $text["sunday"] = "Воскресенье"; $text["theme"] = "Тема"; $text["thursday"] = "Четверг"; $text["toggle_manager"] = "Включить менеджер"; $text["to"] = "к"; $text["tuesday"] = "Вторник"; $text["under_folder"] = "В папке"; $text["unknown_command"] = "Команда не опознана."; $text["unknown_document_category"] = "Неизвестная категория"; $text["unknown_group"] = "Неизвестный идентификатор группы"; $text["unknown_id"] = "неизвестный идентификатор"; $text["unknown_keyword_category"] = "Неизвестная категория"; $text["unknown_owner"] = "Неизвестный идентификатор собственника"; $text["unknown_user"] = "Неизвестный идентификатор пользователя"; $text["unlock_cause_access_mode_all"] = "Вы все еще можете его обновить, потому что имеете уровень доступа \"all\". Блокировка будет снята автоматически."; $text["unlock_cause_locking_user"] = "Вы все еще можете его обновить, потому что вы один из тех кто его заблокировал. Блокировка будет снята автоматически."; $text["unlock_document"] = "Разблокировать"; $text["update_approvers"] = "Обновить список утверждающих"; $text["update_document"] = "Обновить документ"; $text["update_fulltext_index"] = "Обновить полнотекстовый индекс"; $text["update_info"] = "Обновить информацию"; $text["update_locked_msg"] = "Этот документ заблокирован"; $text["update_reviewers"] = "Обновить список рецензирующих"; $text["update"] = "Обновить"; $text["uploaded_by"] = "Загружен"; $text["uploading_failed"] = "Загрузка не удалась. Свяжитесь с админом"; $text["use_default_categories"] = "Использовать предопределенные категории"; $text["use_default_keywords"] = "Использовать предопределенные теги"; $text["user_exists"] = "Пользователь существует"; $text["user_image"] = "Изображение"; $text["user_info"] = "Информация о пользователе"; $text["user_list"] = "Список пользователей"; $text["user_login"] = "Идентификатор пользователя"; $text["user_management"] = "Управление пользователями"; $text["user_name"] = "Полное имя"; $text["users"] = "Пользователи"; $text["user"] = "Пользователь"; $text["version_deleted_email"] = "Версия удалена"; $text["version_info"] = "Информация о версии"; $text["versioning_file_creation"] = "Создание файла версий"; $text["versioning_file_creation_warning"] = "Эта операция создаст файл версий для всей папки. После создания файл будет сохранен в каталоге документов."; $text["versioning_info"] = "Информация о версиях"; $text["version"] = "Версия"; $text["view_online"] = "Просмотреть"; $text["warning"] = "Внимание"; $text["wednesday"] = "Среда"; $text["week_view"] = "Неделя"; $text["year_view"] = "Год"; $text["yes"] = "Да"; ?> letodms-3.3.11+dfsg.1/languages/Spanish/0000755000175000017500000000000012040235120020364 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Spanish/lang.inc0000644000175000017500000012574312040235120022014 0ustar franciscofrancisco for LetoDMS-3.0. 2-feb-2011 // Reviewed : 15-sept-2011. Francisco M. Garcia Claramonte // Reviewed (for 3.2.0) : 22-sept-2011. Francisco M. Garcia Claramonte // Reviewed (for 3.3.0) : 3-mar-2012. Francisco M. Garcia Claramonte // Reviewed (for 3.3.8) : 13 sept-2012. Francisco M. García Claramonte // 18 sept 2012. Francisco M. García Claramonte $text = array(); $text["accept"] = "Aceptar"; $text["access_denied"] = "Acceso denegado"; $text["access_inheritance"] = "Acceso heredado"; $text["access_mode"] = "Modo de acceso"; $text["access_mode_all"] = "Todos los permisos"; $text["access_mode_none"] = "No hay acceso"; $text["access_mode_read"] = "Leer"; $text["access_mode_readwrite"] = "Lectura-Escritura"; $text["access_permission_changed_email"] = "Permisos cambiados"; $text["actions"] = "Acciones"; $text["add"] = "Añadir"; $text["add_doc_reviewer_approver_warning"] = "Documentos N.B. se marcan automáticamente como publicados si no hay revisores o aprobadores asignados."; $text["add_document"] = "Añadir documento"; $text["add_document_link"] = "Añadir vínculo"; $text["add_event"] = "Añadir evento"; $text["add_group"] = "Añadir nuevo grupo"; $text["add_member"] = "Añadir miembro"; $text["add_multiple_documents"] = "Añadir múltiples documentos"; $text["add_multiple_files"] = "Añadir múltiples ficheros (Se usará el nombre de fichero como nombre de documento)"; $text["add_subfolder"] = "Añadir subdirectorio"; $text["add_user"] = "Añadir nuevo usuario"; $text["add_user_to_group"] = "Añadir usuario a grupo"; $text["admin"] = "Administrador"; $text["admin_tools"] = "Herramientas de administración"; $text["all_categories"] = "Todas las categorías"; $text["all_documents"] = "Todos los documentos"; $text["all_pages"] = "Todo"; $text["all_users"] = "Todos los usuarios"; $text["already_subscribed"] = "Ya está suscrito"; $text["and"] = "y"; $text["apply"] = "Aplicar"; $text["approval_deletion_email"] = "Petición de aprobación eliminada"; $text["approval_group"] = "Grupo aprobador"; $text["approval_request_email"] = "Petición de aprobación"; $text["approval_status"] = "Estado de aprobación"; $text["approval_submit_email"] = "Aprobación enviada"; $text["approval_summary"] = "Resumen de aprobación"; $text["approval_update_failed"] = "Error actualizando el estado de aprobación. Actualización fallida."; $text["approvers"] = "Aprobadores"; $text["april"] = "Abril"; $text["archive_creation"] = "Creación de archivo"; $text["archive_creation_warning"] = "Con esta operación usted puede crear un archivo que contenga los ficheros de las carpetas del DMS completo. Después de crearlo el archivo se guardará en la carpeta de datos de su servidor.
CUIDADO: un fichero creado como legible por humanos no podrá usarse como copia de seguridad del servidor."; $text["assign_approvers"] = "Asignar aprobadores"; $text["assign_reviewers"] = "Asignar revisores"; $text["assign_user_property_to"] = "Asignar propiedades de usuario a"; $text["assumed_released"] = "Supuestamente publicado"; $text["august"] = "Agosto"; $text["automatic_status_update"] = "Cambio automático de estado"; $text["back"] = "Atrás"; $text["backup_list"] = "Lista de copias de seguridad existentes"; $text["backup_remove"] = "Eliminar fichero de copia de seguridad"; $text["backup_tools"] = "Herramientas de copia de seguridad"; $text["between"] = "entre"; $text["calendar"] = "Calendario"; $text["cancel"] = "Cancelar"; $text["cannot_assign_invalid_state"] = "No se puede modificar un documento obsoleto o rechazado"; $text["cannot_change_final_states"] = "Cuidado: No se puede cambiar el estado de documentos que han sido rechazados, marcados como obsoletos o expirado."; $text["cannot_delete_yourself"] = "No es posible eliminarse a sí mismo"; $text["cannot_move_root"] = "Error: No es posible mover la carpeta raíz."; $text["cannot_retrieve_approval_snapshot"] = "No es posible recuperar la instantánea del estado de aprobación para esta versión de documento."; $text["cannot_retrieve_review_snapshot"] = "No es posible recuperar la instantánea de revisión para esta versión de documento."; $text["cannot_rm_root"] = "Error: No es posible eliminar la carpeta raíz."; $text["category"] = "Categoría"; $text["category_exists"] = "La categoría ya existe."; $text["category_filter"] = "Solo categorías"; $text["category_in_use"] = "Esta categoría está en uso por documentos."; $text["category_noname"] = "No ha proporcionado un nombre de categoría."; $text["categories"] = "Categorías"; $text["change_assignments"] = "Cambiar asignaciones"; $text["change_password"] = "Cambiar contraseña"; $text["change_password_message"] = "Su contraseña se ha modificado."; $text["change_status"] = "Cambiar estado"; $text["choose_category"] = "Seleccione categoría"; $text["choose_group"] = "Seleccione grupo"; $text["choose_target_category"] = "Seleccione categoría"; $text["choose_target_document"] = "Escoger documento"; $text["choose_target_folder"] = "Escoger directorio destino"; $text["choose_user"] = "Seleccione usuario"; $text["comment_changed_email"] = "Comentario modificado"; $text["comment"] = "Comentarios"; $text["comment_for_current_version"] = "Comentario de la versión actual"; $text["confirm_create_fulltext_index"] = "¡Sí, quiero regenerar el índice te texto completo¡"; $text["confirm_pwd"] = "Confirmar contraseña"; $text["confirm_rm_backup"] = "¿Desea realmente eliminar el fichero \"[arkname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_document"] = "¿Desea realmente eliminar el documento \"[documentname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_dump"] = "¿Desea realmente eliminar el fichero \"[dumpname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_event"] = "¿Desea realmente eliminar el evento \"[name]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_file"] = "¿Desea realmente eliminar el fichero \"[name]\" del documento \"[documentname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_folder"] = "¿Desea realmente eliminar el directorio \"[foldername]\" y su contenido?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_folder_files"] = "¿Desea realmente eliminar todos los ficheros de la carpeta \"[foldername]\" y de sus subcarpetas?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_group"] = "¿Desea realmente eliminar el grupo \"[groupname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_log"] = "¿Desea realmente eliminar el fichero de registro \"[logname]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_user"] = "¿Desea realmente eliminar el usuario \"[username]\"?
Atención: Esta acción no se puede deshacer."; $text["confirm_rm_version"] = "¿Desea realmente eliminar la versión [version] del documento \"[documentname]\"?
Atención: esta acción no se puede deshacer."; $text["content"] = "Contenido"; $text["continue"] = "Continuar"; $text["create_fulltext_index"] = "Crear índice de texto completo"; $text["create_fulltext_index_warning"] = "Usted va a regenerar el índice te texto completo. Esto puede tardar un tiempo considerable y consumir capacidad de su equipo. Si realmente quiere regenerar el índice, por favor confirme la operación."; $text["creation_date"] = "Creación"; $text["current_password"] = "Contraseña actual"; $text["current_version"] = "Versión actual"; $text["daily"] = "Diaria"; $text["databasesearch"] = "Búsqueda en base de datos"; $text["december"] = "Diciembre"; $text["default_access"] = "Modo de acceso predefinido"; $text["default_keyword_category"] = "Categorías predefinidas"; $text["default_keywords"] = "Palabras clave disponibles"; $text["delete"] = "Eliminar"; $text["details"] = "Detalles"; $text["details_version"] = "Detalles de la versión: [version]"; $text["disclaimer"] = "Esta es un área restringida. Se permite el acceso únicamente a personal autorizado. Cualquier intrusión se perseguirá conforme a las leyes internacionales."; $text["do_object_repair"] = "Reparar todas las carpetas y documentos."; $text["document_already_locked"] = "Este documento ya está bloqueado"; $text["document_deleted"] = "Documento eliminado"; $text["document_deleted_email"] = "Documento eliminado"; $text["document"] = "Documento"; $text["document_infos"] = "Informaciones"; $text["document_is_not_locked"] = "Este documento no está bloqueado"; $text["document_link_by"] = "Vinculado por"; $text["document_link_public"] = "Público"; $text["document_moved_email"] = "Documento reubicado"; $text["document_renamed_email"] = "Documento renombrado"; $text["documents"] = "Documentos"; $text["documents_in_process"] = "Documentos en proceso"; $text["documents_locked_by_you"] = "Documentos bloqueados por usted"; $text["document_status_changed_email"] = "Estado del documento modificado"; $text["documents_to_approve"] = "Documentos en espera de aprobación de usuarios"; $text["documents_to_review"] = "Documentos en espera de revisión de usuarios"; $text["documents_user_requiring_attention"] = "Documentos de su propiedad que requieren atención"; $text["document_title"] = "Documento '[documentname]'"; $text["document_updated_email"] = "Documento actualizado"; $text["does_not_expire"] = "No caduca"; $text["does_not_inherit_access_msg"] = "heredar el acceso"; $text["download"] = "Descargar"; $text["draft_pending_approval"] = "Borador - pendiente de aprobación"; $text["draft_pending_review"] = "Borrador - pendiente de revisión"; $text["dump_creation"] = "Creación de volcado de BDD"; $text["dump_creation_warning"] = "Con esta operación se creará un volcado a fichero del contenido de la base de datos. Después de la creación del volcado el fichero se guardará en la carpeta de datos de su servidor."; $text["dump_list"] = "Ficheros de volcado existentes"; $text["dump_remove"] = "Eliminar fichero de volcado"; $text["edit_comment"] = "Editar comentario"; $text["edit_default_keywords"] = "Editar palabras clave"; $text["edit_document_access"] = "Editar acceso"; $text["edit_document_notify"] = "Lista de notificación"; $text["edit_document_props"] = "Editar propiedades de documento"; $text["edit_document_props_again"] = "Editar documento otra vez"; $text["edit"] = "editar"; $text["edit_event"] = "Editar evento"; $text["edit_existing_access"] = "Editar lista de acceso"; $text["edit_existing_notify"] = "Editar lista de notificación"; $text["edit_folder_access"] = "Editar acceso"; $text["edit_folder_notify"] = "Lista de notificación"; $text["edit_folder_props"] = "Editar directorio"; $text["edit_group"] = "Editar grupo..."; $text["edit_user_details"] = "Editar detalles de usuario"; $text["edit_user"] = "Editar usuario..."; $text["email"] = "Email"; $text["email_error_title"] = "No ha introducido un correo"; $text["email_footer"] = "Siempre se puede cambiar la configuración de correo electrónico utilizando las funciones de «Mi cuenta»"; $text["email_header"] = "Este es un mensaje automático del servidor de DMS."; $text["email_not_given"] = "Por favor, introduzca una dirección de correo válida."; $text["empty_notify_list"] = "No hay entradas"; $text["error"] = "Error"; $text["error_no_document_selected"] = "Ningún documento seleccionado"; $text["error_no_folder_selected"] = "Ninguna carpeta seleccionada"; $text["error_occured"] = "Ha ocurrido un error"; $text["event_details"] = "Detalles del evento"; $text["expired"] = "Caducado"; $text["expires"] = "Caduca"; $text["expiry_changed_email"] = "Fecha de caducidad modificada"; $text["february"] = "Febrero"; $text["file"] = "Fichero"; $text["files_deletion"] = "Eliminación de ficheros"; $text["files_deletion_warning"] = "Con esta opción se puede eliminar todos los ficheros del DMS completo. La información de versionado permanecerá visible."; $text["files"] = "Ficheros"; $text["file_size"] = "Tamaño"; $text["folder_contents"] = "Carpetas"; $text["folder_deleted_email"] = "Carpeta eliminada"; $text["folder"] = "Carpeta"; $text["folder_infos"] = "Informaciones"; $text["folder_moved_email"] = "Carpeta reubicada"; $text["folder_renamed_email"] = "Carpeta renombrada"; $text["folders_and_documents_statistic"] = "Vista general de contenidos"; $text["folders"] = "Carpetas"; $text["folder_title"] = "Carpeta '[foldername]'"; $text["friday"] = "Viernes"; $text["from"] = "Desde"; $text["fullsearch"] = "Búsqueda en texto completo"; $text["fullsearch_hint"] = "Utilizar índice de texto completo"; $text["fulltext_info"] = "Información de índice de texto completo"; $text["global_default_keywords"] = "Palabras clave globales"; $text["global_document_categories"] = "Categorías"; $text["group_approval_summary"] = "Resumen del grupo aprobador"; $text["group_exists"] = "El grupo ya existe."; $text["group"] = "Grupo"; $text["group_management"] = "Grupos"; $text["group_members"] = "Miembros del grupo"; $text["group_review_summary"] = "Resumen del grupo revisor"; $text["groups"] = "Grupos"; $text["guest_login_disabled"] = "La cuenta de invitado está deshabilitada."; $text["guest_login"] = "Acceso como invitado"; $text["help"] = "Ayuda"; $text["hourly"] = "Horaria"; $text["human_readable"] = "Archivo legible por humanos"; $text["include_documents"] = "Incluir documentos"; $text["include_subdirectories"] = "Incluir subdirectorios"; $text["individuals"] = "Individuales"; $text["inherits_access_msg"] = "El acceso se ha heredado."; $text["inherits_access_copy_msg"] = "Copiar lista de acceso heredado"; $text["inherits_access_empty_msg"] = "Empezar con una lista de acceso vacía"; $text["internal_error_exit"] = "Error interno. No es posible terminar la solicitud. Terminado."; $text["internal_error"] = "Error interno"; $text["invalid_access_mode"] = "Modo de acceso no válido"; $text["invalid_action"] = "Acción no válida"; $text["invalid_approval_status"] = "Estado de aprobación no válido"; $text["invalid_create_date_end"] = "Fecha de fin no válida para creación de rango de fechas."; $text["invalid_create_date_start"] = "Fecha de inicio no válida para creación de rango de fechas."; $text["invalid_doc_id"] = "ID de documento no válida"; $text["invalid_file_id"] = "ID de fichero no válida"; $text["invalid_folder_id"] = "ID de carpeta no válida"; $text["invalid_group_id"] = "ID de grupo no válida"; $text["invalid_link_id"] = "Identificador de enlace no válido"; $text["invalid_request_token"] = "Token de solicitud no válido"; $text["invalid_review_status"] = "Estado de revisión no válido"; $text["invalid_sequence"] = "Valor de secuencia no válido"; $text["invalid_status"] = "Estado de documento no válido"; $text["invalid_target_doc_id"] = "ID de documento destino no válido"; $text["invalid_target_folder"] = "ID de carpeta destino no válido"; $text["invalid_user_id"] = "ID de usuario no válido"; $text["invalid_version"] = "Versión de documento no válida"; $text["is_hidden"] = "Ocultar de la lista de usuarios"; $text["january"] = "Enero"; $text["js_no_approval_group"] = "Por favor, seleccione grupo de aprobación"; $text["js_no_approval_status"] = "Por favor, seleccione el estado de aprobación"; $text["js_no_comment"] = "No hay comentarios"; $text["js_no_email"] = "Escriba su dirección de correo electrónico"; $text["js_no_file"] = "Por favor, seleccione un archivo"; $text["js_no_keywords"] = "Especifique palabras clave"; $text["js_no_login"] = "Por favor, escriba un nombre de usuario"; $text["js_no_name"] = "Por favor, escriba un nombre"; $text["js_no_override_status"] = "Por favor, seleccione el nuevo [override] estado"; $text["js_no_pwd"] = "Necesita escribir su contraseña"; $text["js_no_query"] = "Escriba una búsqueda"; $text["js_no_review_group"] = "Por favor, seleccione un grupo de revisión"; $text["js_no_review_status"] = "Por favor, seleccione el estado de revisión"; $text["js_pwd_not_conf"] = "La contraseña y la confirmación de la contraseña no coinciden"; $text["js_select_user_or_group"] = "Seleccione al menos un usuario o un grupo"; $text["js_select_user"] = "Por favor, seleccione un usuario"; $text["july"] = "Julio"; $text["june"] = "Junio"; $text["keyword_exists"] = "La palabra clave ya existe"; $text["keywords"] = "Palabras clave"; $text["language"] = "Lenguaje"; $text["last_update"] = "Última modificación"; $text["link_alt_updatedocument"] = "Si desea subir archivos mayores que el tamaño máximo actualmente permitido, por favor, utilice la página de subida alternativa."; $text["linked_documents"] = "Documentos relacionados"; $text["linked_files"] = "Adjuntos"; $text["local_file"] = "Archivo local"; $text["locked_by"] = "Bloqueado por"; $text["lock_document"] = "Bloquear"; $text["lock_message"] = "Este documento ha sido bloqueado por [username].
Solo usuarios autorizados pueden desbloquear este documento (vea el final de la página)."; $text["lock_status"] = "Estado"; $text["login"] = "Iniciar sesión"; $text["login_error_text"] = "Error de acceso. ID de usuario o contraseña incorrectos."; $text["login_error_title"] = "Error de acceso"; $text["login_not_given"] = "Nombre de usuario no facilitado."; $text["login_ok"] = "Acceso con éxito"; $text["log_management"] = "Gestión de ficheros de registro"; $text["logout"] = "Desconectar"; $text["manager"] = "Manager"; $text["march"] = "Marzo"; $text["max_upload_size"] = "Tamaño máximo de subida para cada fichero"; $text["may"] = "Mayo"; $text["monday"] = "Lunes"; $text["month_view"] = "Vista de Mes"; $text["monthly"] = "Mensual"; $text["move_document"] = "Mover documento"; $text["move_folder"] = "Mover directorio"; $text["move"] = "Mover"; $text["my_account"] = "Mi cuenta"; $text["my_documents"] = "Mis documentos"; $text["name"] = "Nombre"; $text["new_default_keyword_category"] = "Nueva categoría"; $text["new_default_keywords"] = "Agregar palabras claves"; $text["new_document_category"] = "Añadir categoría"; $text["new_document_email"] = "Nuevo documento"; $text["new_file_email"] = "Nuevo adjunto"; $text["new_folder"] = "Nueva carpeta"; $text["new"] = "Nuevo"; $text["new_subfolder_email"] = "Nueva carpeta"; $text["new_user_image"] = "Nueva imagen"; $text["no_action"] = "No es necesaria ninguna acción"; $text["no_approval_needed"] = "No hay aprobaciones pendientes."; $text["no_attached_files"] = "No hay ficheros adjuntos"; $text["no_default_keywords"] = "No hay palabras clave disponibles"; $text["no_docs_locked"] = "No hay documentos bloqueados."; $text["no_docs_to_approve"] = "Actualmente no hay documentos que necesiten aprobación."; $text["no_docs_to_look_at"] = "No hay documentos que necesiten atención."; $text["no_docs_to_review"] = "Actualmente no hay documentos que necesiten revisión."; $text["no_group_members"] = "Este grupo no tiene miembros"; $text["no_groups"] = "No hay grupos"; $text["no_linked_files"] = "No hay ficheros enlazados"; $text["no"] = "No"; $text["no_previous_versions"] = "No se han encontrado otras versiones"; $text["no_review_needed"] = "No hay revisiones pendientes."; $text["notify_added_email"] = "Se le ha añadido a la lista de notificación"; $text["notify_deleted_email"] = "Se le ha eliminado de la lista de notificación"; $text["no_update_cause_locked"] = "No puede actualizar este documento. Contacte con el usuario que lo bloqueó."; $text["no_user_image"] = "No se encontró imagen"; $text["november"] = "Noviembre"; $text["objectcheck"] = "Chequeo de carpeta/documento"; $text["obsolete"] = "Obsoleto"; $text["october"] = "Octubre"; $text["old"] = "Viejo"; $text["only_jpg_user_images"] = "Solo puede usar imágenes .jpg como imágenes de usuario"; $text["owner"] = "Propietario"; $text["ownership_changed_email"] = "Propietario cambiado"; $text["password"] = "Contraseña"; $text["password_repeat"] = "Repetir contraseña"; $text["password_forgotten"] = "Recordar contraseña"; $text["password_forgotten_email_subject"] = "Recordatorio de contraseña"; $text["password_forgotten_email_body"] = "Estimado usuario de LetoDMS,\n\nhemos recibido una petición para cambiar su contraseña.\n\nPuede modificarla haciendo click en el siguiente enlace:\n\n###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH###\n\nSi continua teniendo problemas de acceso, por favor contacte con el administrador del sistema."; $text["password_forgotten_send_hash"] = "Las instrucciones para proceder al cambio se han enviado a la dirección de correo de usuario"; $text["password_forgotten_text"] = "Rellene el siguiente formulario y siga las instrucciones del correo que se le enviará."; $text["password_forgotten_title"] = "Envío de contraseña"; $text["password_wrong"] = "Contraseña equivocada"; $text["personal_default_keywords"] = "Listas de palabras clave personales"; $text["previous_versions"] = "Versiones anteriores"; $text["refresh"] = "Actualizar"; $text["rejected"] = "Rechazado"; $text["released"] = "Publicado"; $text["removed_approver"] = "Ha sido eliminado de la lista de aprobadores."; $text["removed_file_email"] = "Adjuntos eliminados"; $text["removed_reviewer"] = "Ha sido eliminado de la lista de revisores."; $text["repairing_objects"] = "Reparando documentos y carpetas."; $text["results_page"] = "Página de resultados"; $text["review_deletion_email"] = "Petición de revisión eliminada"; $text["reviewer_already_assigned"] = "Ya está asignado como revisor"; $text["reviewer_already_removed"] = "Ya ha sido eliminado del proceso de revisión o ya ha enviado una revisión"; $text["reviewers"] = "Revisores"; $text["review_group"] = "Grupo de revisión"; $text["review_request_email"] = "Petición de revisión"; $text["review_status"] = "Estado de revisión"; $text["review_submit_email"] = "Revisión enviada"; $text["review_summary"] = "Resumen de revisión"; $text["review_update_failed"] = "Error actualizando el estado de la revisión. La actualización ha fallado."; $text["rm_default_keyword_category"] = "Eliminar categoría"; $text["rm_document"] = "Eliminar documento"; $text["rm_document_category"] = "Eliminar categoría"; $text["rm_file"] = "Eliminar fichero"; $text["rm_folder"] = "Eliminar carpeta"; $text["rm_group"] = "Eliminar este grupo"; $text["rm_user"] = "Eliminar este usuario"; $text["rm_version"] = "Eliminar versión"; $text["role_admin"] = "Administrador"; $text["role_guest"] = "Invitado"; $text["role_user"] = "Usuario"; $text["role"] = "Rol"; $text["saturday"] = "Sábado"; $text["save"] = "Guardar"; $text["search_fulltext"] = "Buscar en texto completo"; $text["search_in"] = "Buscar en"; $text["search_mode_and"] = "todas las palabras"; $text["search_mode_or"] = "al menos una palabra"; $text["search_no_results"] = "No hay documentos que coinciden con su búsqueda"; $text["search_query"] = "Buscar"; $text["search_report"] = "Encontrados [doccount] documentos y [foldercount] carpetas"; $text["search_report_fulltext"] = "Encontrados [doccount] documentos"; $text["search_results_access_filtered"] = "Los resultados de la búsqueda podrían incluir contenidos cuyo acceso ha sido denegado."; $text["search_results"] = "Resultados de la búsqueda"; $text["search"] = "Buscar"; $text["search_time"] = "Tiempo transcurrido: [time] seg."; $text["selection"] = "Selección"; $text["select_one"] = "Seleccionar uno"; $text["september"] = "Septiembre"; $text["seq_after"] = "Después \"[prevname]\""; $text["seq_end"] = "Al final"; $text["seq_keep"] = "Mantener posición"; $text["seq_start"] = "Primera posición"; $text["sequence"] = "Secuencia"; $text["set_default_access"] = "Establecer el modo de acceso por omisión"; $text["set_expiry"] = "Establecer caducidad"; $text["set_owner_error"] = "Error estableciendo propietario"; $text["set_owner"] = "Establecer propietario"; $text["settings_install_welcome_title"] = "Bienvenido a la instalación de letoDMS"; $text["settings_install_welcome_text"] = "

Antes de instalar letoDMS asegúrese de haber creado un archivo «ENABLE_INSTALL_TOOL» en su directorio de instalación, en otro caso la instalación no funcionará. En sistemas Unix puede hacerse fácilmente con «touch conf/ENABLE_INSTALL_TOOL». Después de terminar la instalación elimine el archivo.

letoDMS tiene unos requisitos mínimos. Necesitará una base de datos y un servidor web con soporte para php. Para la búsqueda de texto completo lucene, necesitará tener instalado también el framework Zend donde pueda ser utilizado por php. Desde la versión 3.2.0 de letoDMS ADObd ya no forma parte de la distribución. Consiga una copia de él desde http://adodb.sourceforge.net e instálelo. La ruta hacia él podrá ser establecida durante la instalación.

Si prefiere crear la base de datos antes de comenzar la instalación, simplemente créela manualmente con su herramienta preferida, opcionalmente cree un usuario de base de datos con acceso a esta base de datos e importe uno de los volcados del directorio de configuración. El script de instalación puede hacer esto también, pero necesitará acceso con privilegios suficientes para crear bases de datos.

"; $text["settings_start_install"] = "Comenzar instalación"; $text["settings_stopWordsFile"] = "Ruta del fichero de palabras vacías"; $text["settings_stopWordsFile_desc"] = "Si la búsqueda de texto completo está habilitada, este fichero contendrá las palabras vacías que no se indexarán"; $text["settings_activate_module"] = "Activar módulo"; $text["settings_activate_php_extension"] = "Activar extensión PHP"; $text["settings_adminIP"] = "IP de administración"; $text["settings_adminIP_desc"] = "Si establece que el administrador solo puede conectar desde una dirección IP específica, deje en blanco para evitar el control. NOTA: funciona únicamente con autenticación local (no LDAP)."; $text["settings_ADOdbPath"] = "Ruta de ADOdb"; $text["settings_ADOdbPath_desc"] = "Ruta a adodb. Este es el directorio que contiene el directorio de adodb"; $text["settings_Advanced"] = "Avanzado"; $text["settings_apache_mod_rewrite"] = "Apache - Módulo Rewrite"; $text["settings_Authentication"] = "Configuración de autenticación"; $text["settings_Calendar"] = "Configuración de calendario"; $text["settings_calendarDefaultView"] = "Vista por omisión de calendario"; $text["settings_calendarDefaultView_desc"] = "Vista por omisión de calendario"; $text["settings_contentDir"] = "Directorio de contenidos"; $text["settings_contentDir_desc"] = "Donde se almacenan los archivos subidos (es preferible seleccionar un directorio que no sea accesible a través del servidor web)"; $text["settings_contentOffsetDir"] = "Directorio de contenidos de desplazamiento"; $text["settings_contentOffsetDir_desc"] = "Para tratar las limitaciones del sistema de ficheros subyacente, se ha ideado una estructura de directorios dentro del directorio de contenido. Esto requiere un directorio base desde el que comenzar. Normalmente puede dejar este valor por omisión, 1048576, pero puede ser cualquier número o cadena que no exista ya dentro él (directorio de contenido)."; $text["settings_coreDir"] = "Directorio de letoDMS Core"; $text["settings_coreDir_desc"] = "Ruta hacia LetoDMS_Core (opcional)"; $text["settings_luceneClassDir"] = "Directorio de LetoDMS Lucene"; $text["settings_luceneClassDir_desc"] = "Ruta hacia LetoDMS_Lucene (opcional)"; $text["settings_luceneDir"] = "Directorio índice de Lucene"; $text["settings_luceneDir_desc"] = "Ruta hacia el índice Lucene"; $text["settings_cannot_disable"] = "No es posible eliminar el archivo ENABLE_INSTALL_TOOL"; $text["settings_install_disabled"] = "El archivo ENABLE_INSTALL_TOOL ha sido eliminado. Ahora puede conectarse a LetoDMS y seguir con la configuración."; $text["settings_createdatabase"] = "Crear tablas de base de datos"; $text["settings_createdirectory"] = "Crear directorio"; $text["settings_currentvalue"] = "Valor actual"; $text["settings_Database"] = "Configuración de Base de datos"; $text["settings_dbDatabase"] = "Base de datos"; $text["settings_dbDatabase_desc"] = "Nombre para su base de datos introducido durante el proceso de instalación. No edite este campo a menos que sea necesario, por ejemplo si la base de datos se traslada."; $text["settings_dbDriver"] = "Tipo de Base de datos"; $text["settings_dbDriver_desc"] = "Tipo de base de datos introducido durante el proceso de instalación. No edite este campo a menos que tenga que migrar a un tipo diferente de base de datos quizá cambiando de servidor. El tipo de DB-Driver lo utiliza adodb (lea adodb-readme)"; $text["settings_dbHostname_desc"] = "Servidor para su base de datos introducido durante el proceso de instalación. No edite este campo a menos que sea necesario, por ejemplo si la base de datos se transfiere a un nuevo servidor."; $text["settings_dbHostname"] = "Nombre de servidor"; $text["settings_dbPass_desc"] = "Contraseña para acceder a la base de datos introducida durante el proceso de instalación."; $text["settings_dbPass"] = "Contraseña"; $text["settings_dbUser_desc"] = "Nombre de usuario de acceso a su base de datos introducido durante el proceso de instalación. No edite este campo a menos que sea necesario, por ejemplo si la base de datos se transfiere a un nuevo servidor."; $text["settings_dbUser"] = "Nombre de usuario"; $text["settings_dbVersion"] = "Esquema de base de datos demasiado antiguo"; $text["settings_delete_install_folder"] = "Para utilizar LetoDMS, debe eliminar el archivo ENABLE_INSTALL_TOOL del directorio de configuración"; $text["settings_disable_install"] = "Eliminar el archivo ENABLE_INSTALL_TOOL se es posible"; $text["settings_disableSelfEdit_desc"] = "Si está seleccionado el usuario no podrá editar su propio perfil"; $text["settings_disableSelfEdit"] = "Deshabilitar autoedición"; $text["settings_Display"] = "Mostrar configuración"; $text["settings_Edition"] = "Configuración de edición"; $text["settings_enableAdminRevApp_desc"] = "Deseleccione para no mostrar al administrador como revisor/aprobador"; $text["settings_enableAdminRevApp"] = "Habilitar Administrador Rev Apr"; $text["settings_enableCalendar_desc"] = "Habilitar/Deshabilitar calendario"; $text["settings_enableCalendar"] = "Habilitar calendario"; $text["settings_enableConverting_desc"] = "Habilitar/Deshabilitar conversión de ficheros"; $text["settings_enableConverting"] = "Habilitar conversión"; $text["settings_enableEmail_desc"] = "Habilitar/Deshabilitar notificación automática por correo electrónico"; $text["settings_enableEmail"] = "Habilitar E-mail"; $text["settings_enableFolderTree_desc"] = "Falso para no mostrar el árbol de carpetas"; $text["settings_enableFolderTree"] = "Habilitar árbol de carpetas"; $text["settings_enableFullSearch"] = "Habilitar búsqueda de texto completo"; $text["settings_enableFullSearch_desc"] = "Habilitar búsqueda de texto completo"; $text["settings_enableGuestLogin_desc"] = "Si quiere que cualquiera acceda como invitado, chequee esta opción. Nota: El acceso de invitado debería permitirse solo en entornos de confianza"; $text["settings_enableGuestLogin"] = "Habilitar acceso de invitado"; $text["settings_enableLargeFileUpload_desc"] = "Si se habilita, la carga de ficheros también estará disponible a través de un applet java llamado jumploader, sin límite de tamaño de fichero fijado por el navegador. También permite la carga de múltiples ficheros de una sola vez."; $text["settings_enableLargeFileUpload"] = "Habilitar la carga de ficheros grandes"; $text["settings_enablePasswordForgotten_desc"] = "Si quiere permitir a los usuarios fijar una nueva contraseña recibiendo un correo electrónico, active esta opción."; $text["settings_enablePasswordForgotten"] = "Habilitar recordatorio de contraseña"; $text["settings_enableUserImage_desc"] = "Habilitar imágenes de usuario"; $text["settings_enableUserImage"] = "Habilitar imágenes de usuario"; $text["settings_enableUsersView_desc"] = "Habilitar/Deshabilitar vista de usuario y grupo por todos los usuarios"; $text["settings_enableUsersView"] = "Habilitar vista de usuarios"; $text["settings_encryptionKey"] = "Clave de cifrado"; $text["settings_encryptionKey_desc"] = "Esta cadena se utiliza para crear un identificador único que se añadirá como campo oculto a los formularios para prevenir ataques CSRF."; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expandir árbol de carpetas"; $text["settings_expandFolderTree"] = "Expandir árbol de carpetas"; $text["settings_expandFolderTree_val0"] = "Comenzar con el árbol oculto"; $text["settings_expandFolderTree_val1"] = "comentar con el árbol visible y el primer nivel de expansión"; $text["settings_expandFolderTree_val2"] = "comentar con el árbol visible y completamente expandido"; $text["settings_firstDayOfWeek_desc"] = "Primer día de la semana"; $text["settings_firstDayOfWeek"] = "Primer día de la semana"; $text["settings_footNote_desc"] = "Mensaje para mostrar en la parte inferior de cada página"; $text["settings_footNote"] = "Nota del pie"; $text["settings_guestID_desc"] = "ID del usuario invitado cuando se conecta como invitado (mayormente no necesita cambiarlo)"; $text["settings_guestID"] = "ID de invitado"; $text["settings_httpRoot_desc"] = "La ruta relativa de la URL, después de la parte del servidor. No incluir el prefijo http:// o el nombre del servidor. Por ejemplo, si la URL completa es http://www.example.com/letodms/, configure «/letodms/». Si la URL completa es http://www.example.com/, configure «/»"; $text["settings_httpRoot"] = "Raíz Http"; $text["settings_installADOdb"] = "Instalar ADOdb"; $text["settings_install_success"] = "La instalación ha terminado con éxito"; $text["settings_language"] = "Idioma por omisión"; $text["settings_language_desc"] = "Idioma por omisión (nombre de un subdirectorio en el directorio \"languages\")"; $text["settings_logFileEnable_desc"] = "Habilitar/Deshabilitar archivo de registro"; $text["settings_logFileEnable"] = "Archivo de registro habilitado"; $text["settings_logFileRotation_desc"] = "Rotación del archivo de registro"; $text["settings_logFileRotation"] = "Rotación del archivo de registro"; $text["settings_luceneDir"] = "Directorio del índice de texto completo"; $text["settings_maxDirID_desc"] = "Número máximo de subdirectorios por directorio padre. Por omisión: 32700."; $text["settings_maxDirID"] = "ID máximo de directorio"; $text["settings_maxExecutionTime_desc"] = "Esto configura el tiempo máximo en segundos que un script puede estar ejectutándose antes de que el analizador lo pare"; $text["settings_maxExecutionTime"] = "Tiempo máximo de ejecución (s)"; $text["settings_more_settings"] = "Configure más parámetros. Acceso por omisión: admin/admin"; $text["settings_no_content_dir"] = "Directorio de contenidos"; $text["settings_notfound"] = "No encontrado"; $text["settings_notwritable"] = "La configuración no se puede guardar porque el fichero de configuración no es escribible."; $text["settings_partitionSize"] = "Tamaño de fichero parcial"; $text["settings_partitionSize_desc"] = "Tamaño de ficheros parciales en bytes, subidos por jumploader. No configurar un valor mayor que el tamaño máximo de subida configurado en el servidor."; $text["settings_perms"] = "Permisos"; $text["settings_pear_log"] = "Paquete Pear : Log"; $text["settings_pear_webdav"] = "Paquete Pear : HTTP_WebDAV_Server"; $text["settings_php_dbDriver"] = "Extensión PHP : php_'vea el valor actual'"; $text["settings_php_gd2"] = "Extensión PHP : php_gd2"; $text["settings_php_mbstring"] = "Extensión PHP : php_mbstring"; $text["settings_printDisclaimer_desc"] = "Si es Verdadero el mensaje de renuncia de los ficheros lang.inc se mostratá al final de la página"; $text["settings_printDisclaimer"] = "Mostrar renuncia"; $text["settings_restricted_desc"] = "Solo permitir conectar a usuarios si tienen alguna entrada en la base de datos local (independientemente de la autenticación correcta con LDAP)"; $text["settings_restricted"] = "Acceso restringido"; $text["settings_rootDir_desc"] = "Ruta hacía la ubicación de letoDMS"; $text["settings_rootDir"] = "Directorio raíz"; $text["settings_rootFolderID_desc"] = "ID de la carpeta raíz (normalmente no es necesario cambiar)"; $text["settings_rootFolderID"] = "ID de la carpeta raíz"; $text["settings_SaveError"] = "Error guardando archivo de configuración"; $text["settings_Server"] = "Configuración del servidor"; $text["settings"] = "Configuración"; $text["settings_siteDefaultPage_desc"] = "Página por omisión al conectar. Si está vacío se dirige a out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Página por omisión del sitio"; $text["settings_siteName_desc"] = "Nombre del sitio usado en los títulos de página. Por omisión: letoDMS"; $text["settings_siteName"] = "Nombre del sitio"; $text["settings_Site"] = "Sitio"; $text["settings_smtpPort_desc"] = "Puerto del servidor SMTP, por omisión 25"; $text["settings_smtpPort"] = "Puerto del servidor SMTP"; $text["settings_smtpSendFrom_desc"] = "Enviar desde"; $text["settings_smtpSendFrom"] = "Enviar desde"; $text["settings_smtpServer_desc"] = "Nombre de servidor SMTP"; $text["settings_smtpServer"] = "Nombre de servidor SMTP"; $text["settings_SMTP"] = "Configuración del servidor SMTP"; $text["settings_stagingDir"] = "Directorio para descargas parciales"; $text["settings_strictFormCheck_desc"] = "Comprobación estricta de formulario. Si se configura como cierto, entonces se comprobará el valor de todos los campos del formulario. Si se configura como false, entonces (la mayor parte) de los comentarios y campos de palabras clave se convertirán en opcionales. Los comentarios siempre son obligatorios al enviar una revisión o sobreescribir el estado de un documento"; $text["settings_strictFormCheck"] = "Comprobación estricta de formulario"; $text["settings_suggestionvalue"] = "Valor sugerido"; $text["settings_System"] = "Sistema"; $text["settings_theme"] = "Tema por omisión"; $text["settings_theme_desc"] = "Estilo por omisión (nombre de una subcarpeta de la carpeta \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Solución para los títulos de página que tienen más de 2 lineas."; $text["settings_titleDisplayHack"] = "Arreglo para mostrar título"; $text["settings_updateDatabase"] = "Lanzar scripts de actualización de esquema en la base de datos"; $text["settings_updateNotifyTime_desc"] = "Se notificará a los usuarios sobre los cambios en documentos que tengan lugar en los próximos segundos de «Tiempo de notificación de actualización»"; $text["settings_updateNotifyTime"] = "Tiempo de notificación de actualización"; $text["settings_versioningFileName_desc"] = "Nombre de archivo de información de versionado creado por la herramienta de copia de respaldo"; $text["settings_versioningFileName"] = "Archivo de versionado"; $text["settings_viewOnlineFileTypes_desc"] = "Archivos con una de las siguientes extensiones se pueden visualizar en linea (UTILICE SOLAMENTE CARACTERES EN MINÚSCULA)"; $text["settings_viewOnlineFileTypes"] = "Ver en lineas las extensiones de fichero"; $text["settings_zendframework"] = "Zend Framework"; $text["signed_in_as"] = "Conectado como"; $text["sign_in"] = "Conectar"; $text["sign_out"] = "desconectar"; $text["space_used_on_data_folder"] = "Espacio usado en la carpeta de datos"; $text["status_approval_rejected"] = "Borrador rechazado"; $text["status_approved"] = "Aprobado"; $text["status_approver_removed"] = "Aprobador eliminado del proceso"; $text["status_not_approved"] = "Sin aprobar"; $text["status_not_reviewed"] = "Sin revisar"; $text["status_reviewed"] = "Revisado"; $text["status_reviewer_rejected"] = "Borrador rechazado"; $text["status_reviewer_removed"] = "Revisor eliminado del proceso"; $text["status"] = "Estado"; $text["status_unknown"] = "Desconocido"; $text["storage_size"] = "Tamaño de almacenamiento"; $text["subfolder_list"] = "Subdirectorio"; $text["submit_approval"] = "Enviar aprobación"; $text["submit_login"] = "Conectar"; $text["submit_password"] = "Fijar nueva contraseña"; $text["submit_password_forgotten"] = "Comenzar el proceso"; $text["submit_review"] = "Enviar revisión"; $text["sunday"] = "Domingo"; $text["theme"] = "Tema gráfico"; $text["thursday"] = "Jueves"; $text["toggle_manager"] = "Intercambiar mánager"; $text["to"] = "Hasta"; $text["tuesday"] = "Martes"; $text["under_folder"] = "En carpeta"; $text["unknown_command"] = "Orden no reconocida."; $text["unknown_document_category"] = "Categoría desconocida"; $text["unknown_group"] = "Id de grupo desconocido"; $text["unknown_id"] = "Id desconocido"; $text["unknown_keyword_category"] = "Categoría desconocida"; $text["unknown_owner"] = "Id de propietario desconocido"; $text["unknown_user"] = "ID de usuario desconocido"; $text["unlock_cause_access_mode_all"] = "Puede actualizarlo porque tiene modo de acceso \"all\". El bloqueo será automaticamente eliminado."; $text["unlock_cause_locking_user"] = "Puede actualizarlo porque fue quién lo bloqueó. El bloqueo será automáticamente eliminado."; $text["unlock_document"] = "Desbloquear"; $text["update_approvers"] = "Actualizar lista de aprobadores"; $text["update_document"] = "Actualizar documento"; $text["update_info"] = "Actualizar información"; $text["update_locked_msg"] = "Este documento está bloqueado."; $text["update_reviewers"] = "Actualizar lista de revisores"; $text["update"] = "Actualizar"; $text["update_fulltext_index"] = "Actualizar índice de texto completo"; $text["uploaded_by"] = "Enviado por"; $text["uploading_failed"] = "Envío (Upload) fallido. Por favor contacte con el Administrador."; $text["use_default_categories"] = "Utilizar categorías predefinidas"; $text["use_default_keywords"] = "Utilizar palabras claves por omisión"; $text["user_exists"] = "El usuario ya existe."; $text["user_image"] = "Imagen"; $text["user_info"] = "Información de usuario"; $text["user_list"] = "Lista de usuarios"; $text["user_login"] = "Nombre de usuario"; $text["user_management"] = "Usuarios"; $text["user_name"] = "Nombre completo"; $text["users"] = "Usuarios"; $text["user"] = "Usuario"; $text["version_deleted_email"] = "Versión eliminada"; $text["version_info"] = "Información de versión"; $text["versioning_file_creation"] = "Creación de fichero de versiones"; $text["versioning_file_creation_warning"] = "Con esta operación usted puede crear un fichero que contenga la información de versiones de una carpeta del DMS completa. Después de la creación todos los ficheros se guardarán en la carpeta de documentos."; $text["versioning_info"] = "Información de versiones"; $text["version"] = "Versión"; $text["view_online"] = "Ver online"; $text["warning"] = "Advertencia"; $text["wednesday"] = "Miércoles"; $text["week_view"] = "Vista de semana"; $text["year_view"] = "Vista de año"; $text["yes"] = "Sí"; ?> letodms-3.3.11+dfsg.1/languages/Spanish/help.htm0000644000175000017500000000002412040235120022022 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Catalan/0000755000175000017500000000000012040235120020322 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Catalan/lang.txt0000644000175000017500000010666512040235120022022 0ustar franciscofranciscoATENCIÓ: un fitxer creat com llegible per humans no es podrà usar com a còpia de seguretat del servidor."; $text["assign_approvers"] = "Assignar aprovadors"; $text["assign_reviewers"] = "Assignar revisors"; $text["assign_user_property_to"] = "Assignar propietats d'usuari a"; $text["assumed_released"] = "Se suposa com a publicat"; $text["august"] = "Agost"; $text["automatic_status_update"] = "Canvi automátic d'estat"; $text["back"] = "Endarrere"; $text["backup_list"] = "Llista de còpies de seguretat existents"; $text["backup_remove"] = "Eliminar fitxer de còpia de seguretat"; $text["backup_tools"] = "Eines de còpia de seguretat"; $text["between"] = "entre"; $text["calendar"] = "Calendari"; $text["cancel"] = "Cancel.lar"; $text["cannot_assign_invalid_state"] = "No es poden assignar nous revisors a un document que no està pendent de revisió o d'aprovació."; $text["cannot_change_final_states"] = "Atenció: No es pot canviar l'estat de documents que han estat rebutjats, marcats com a obsolets o expirats."; $text["cannot_delete_yourself"] = "No és possible eliminar-se un mateix"; $text["cannot_move_root"] = "Error: No és possible moure la carpeta root."; $text["cannot_retrieve_approval_snapshot"] = "No és possible recuperar la instantànea de l'estat d'aprovació per a aquesta versió de document."; $text["cannot_retrieve_review_snapshot"] = "No és possible recuperar la instantània de revisió per a aquesta versió de document."; $text["cannot_rm_root"] = "Error: No és possible eliminar la carpeta root."; $text["category"] = "Category"; $text["category_filter"] = "Only categories"; $text["category_in_use"] = "This category is currently used by documents."; $text["categories"] = "Categories"; $text["change_assignments"] = "Canviar assignacions"; $text["change_status"] = "Canviar estat"; $text["choose_category"] = "--Elegir categoria--"; $text["choose_group"] = "--Seleccionar grup--"; $text["choose_target_category"] = "Choose category"; $text["choose_target_document"] = "Escollir document"; $text["choose_target_folder"] = "Escollir directori de destinació"; $text["choose_user"] = "--Seleccionar usuari--"; $text["comment_changed_email"] = "Comentari modificat"; $text["comment"] = "Comentaris"; $text["comment_for_current_version"] = "Comentari de la versió actual"; $text["confirm_create_fulltext_index"] = "Yes, I would like to recreate the fulltext index!"; $text["confirm_pwd"] = "Confirmar contrasenya"; $text["confirm_rm_backup"] = "¿Vol realment eliminar el fitxer \"[arkname]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_document"] = "¿Vol realment eliminar el document \"[documentname]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_dump"] = "¿Vol realment eliminar el fitxer \"[dumpname]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_event"] = "¿Vol realment eliminar l'event \"[name]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_file"] = "¿Vol realment eliminar el fitxer \"[name]\" del document \"[documentname]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_folder"] = "¿Vol realment eliminar el directori \"[foldername]\" i tot el seu contingut?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_folder_files"] = "¿Vol realment eliminar tots els fitxers de la carpeta \"[foldername]\" i de les seves subcarpetes?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_group"] = "¿Vol realment eliminar el grup \"[groupname]\"?
atenció: aquesta acció no es pot desfer."; $text["confirm_rm_log"] = "¿Vol realment eliminar el fitxer de registre \"[logname]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_user"] = "¿Vol realment eliminar l'usuari \"[username]\"?
Atenció: aquesta acció no es pot desfer."; $text["confirm_rm_version"] = "¿Vol realment eliminar la versió [version] del document \"[documentname]\"?
Atenció: aquesta acció no es pot desfer."; $text["content"] = "Contingut"; $text["continue"] = "Continuar"; $text["create_fulltext_index"] = "Create fulltext index"; $text["create_fulltext_index_warning"] = "You are to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation."; $text["creation_date"] = "Creació"; $text["current_version"] = "Versió actual"; $text["daily"] = "Daily"; $text["databasesearch"] = "Database search"; $text["december"] = "Desembre"; $text["default_access"] = "Mode d'accés predeterminat"; $text["default_keyword_category"] = "Categories predeterminades"; $text["delete"] = "Eliminar"; $text["details"] = "Detalls"; $text["details_version"] = "Detalls de la versió: [version]"; $text["disclaimer"] = "Aquesta és una àrea restringida. Només es permet l'accés a usuaris autoritzats. Qualsevol intrusió es perseguirà d'acord amb les lleis internacionals."; $text["document_already_locked"] = "Aquest document ja està bloquejat"; $text["document_deleted"] = "Document eliminat"; $text["document_deleted_email"] = "Document eliminat"; $text["document"] = "Document"; $text["document_infos"] = "Informacions"; $text["document_is_not_locked"] = "Aquest document no està bloquejat"; $text["document_link_by"] = "Vinculat per"; $text["document_link_public"] = "Públic"; $text["document_moved_email"] = "Document reubicat"; $text["document_renamed_email"] = "Document reanomenat"; $text["documents"] = "Documents"; $text["documents_in_process"] = "Documents en procés"; $text["documents_locked_by_you"] = "Documents bloquejats per vostè"; $text["document_status_changed_email"] = "Estat del document modificat"; $text["documents_to_approve"] = "Documents en espera d'aprovació d'usuaris"; $text["documents_to_review"] = "Documents en espera de revisió d'usuaris"; $text["documents_user_requiring_attention"] = "Documents de la seva propietat que requereixen atenció"; $text["document_title"] = "Document '[documentname]'"; $text["document_updated_email"] = "Document actualizat"; $text["does_not_expire"] = "No caduca"; $text["does_not_inherit_access_msg"] = "heretar l'accés"; $text["download"] = "Descarregar"; $text["draft_pending_approval"] = "Esborrany - pendent d'aprovació"; $text["draft_pending_review"] = "Esborrany - pendent de revisió"; $text["dump_creation"] = "Creació de bolcat de BDD"; $text["dump_creation_warning"] = "Amb aquesta operació es crearà un bolcat a fitxer del contingut de la base de dades. Després de la creació del bolcat, el fitxer es guardarà a la carpeta de dades del seu servidor."; $text["dump_list"] = "Fitxers de bolcat existents"; $text["dump_remove"] = "Eliminar fitxer de bolcat"; $text["edit_comment"] = "Editar comentari"; $text["edit_default_keywords"] = "Editar mots clau"; $text["edit_document_access"] = "Editar accés"; $text["edit_document_notify"] = "Llista de notificació"; $text["edit_document_props"] = "Editar document"; $text["edit"] = "editar"; $text["edit_event"] = "Editar event"; $text["edit_existing_access"] = "Editar llista d'accés"; $text["edit_existing_notify"] = "Editar llista de notificació"; $text["edit_folder_access"] = "Editar accés"; $text["edit_folder_notify"] = "Llista de notificació"; $text["edit_folder_props"] = "Editar directori"; $text["edit_group"] = "Editar grup..."; $text["edit_user_details"] = "Editar detalls d'usuari"; $text["edit_user"] = "Editar usuari..."; $text["email"] = "Email"; $text["email_footer"] = "Sempre es pot canviar la configuració de correu electrònic utilitzant les funcions de «El meu compte»"; $text["email_header"] = "Aquest es un missatge automàtic del servidor de DMS."; $text["empty_notify_list"] = "No hi ha entrades"; $text["error_no_document_selected"] = "No document selected"; $text["error_no_folder_selected"] = "No folder selected"; $text["error_occured"] = "Ha succeït un error"; $text["event_details"] = "Detalls de l'event"; $text["expired"] = "Caducat"; $text["expires"] = "Caduca"; $text["expiry_changed_email"] = "Data de caducitat modificada"; $text["february"] = "Febrer"; $text["file"] = "Fitxer"; $text["files_deletion"] = "Eliminació de fitxers"; $text["files_deletion_warning"] = "Amb aquesta opció es poden eliminar tots els fitxers del DMS complet. La informació de versionat romandrà visible."; $text["files"] = "Fitxers"; $text["file_size"] = "Mida"; $text["folder_contents"] = "Carpetes"; $text["folder_deleted_email"] = "Carpeta eliminada"; $text["folder"] = "Carpeta"; $text["folder_infos"] = "Informacions"; $text["folder_moved_email"] = "Carpeta reubicada"; $text["folder_renamed_email"] = "Carpeta reanomenada"; $text["folders_and_documents_statistic"] = "Vista general de continguts"; $text["folders"] = "Carpetes"; $text["folder_title"] = "Carpeta '[foldername]'"; $text["friday"] = "Divendres"; $text["from"] = "Des de"; $text["fullsearch"] = "Full text search"; $text["fullsearch_hint"] = "Use fulltext index"; $text["fulltext_info"] = "Fulltext index info"; $text["global_default_keywords"] = "Mots clau globals"; $text["global_document_categories"] = "Categories"; $text["group_approval_summary"] = "Resum del grup aprovador"; $text["group_exists"] = "El grup ja existeix"; $text["group"] = "Grup"; $text["group_management"] = "Grups"; $text["group_members"] = "Membres del grup"; $text["group_review_summary"] = "Resum del grup revisor"; $text["groups"] = "Grups"; $text["guest_login_disabled"] = "El compte d'invitat està deshabilitat."; $text["guest_login"] = "Accés com a invitat"; $text["help"] = "Ajuda"; $text["hourly"] = "Hourly"; $text["human_readable"] = "Arxiu llegible per humans"; $text["include_documents"] = "Incloure documents"; $text["include_subdirectories"] = "Incloure subdirectoris"; $text["individuals"] = "Individuals"; $text["inherits_access_msg"] = "Accés heretat"; $text["inherits_access_copy_msg"] = "Copiar llista d'accés heretat"; $text["inherits_access_empty_msg"] = "Començar amb una llista d'accés buida"; $text["internal_error_exit"] = "Error intern. No és possible acabar la sol.licitud. Acabat."; $text["internal_error"] = "Error intern"; $text["invalid_access_mode"] = "No és valid el mode d'accés"; $text["invalid_action"] = "L'acció no és vàlida"; $text["invalid_approval_status"] = "L'estat d'aprovació no és válid"; $text["invalid_create_date_end"] = "La data de final no és vàlida per a la creació de rangs de dates."; $text["invalid_create_date_start"] = "La data d'inici no és vàlida per a la creació de rangs de dates."; $text["invalid_doc_id"] = "ID de document no vàlid"; $text["invalid_file_id"] = "ID de fitxer no vàlid"; $text["invalid_folder_id"] = "ID de carpeta no vàlid"; $text["invalid_group_id"] = "ID de grup no vàlid"; $text["invalid_link_id"] = "L'identificador d'enllaç no és válid"; $text["invalid_review_status"] = "L'estat de revisió no és válid"; $text["invalid_sequence"] = "El valor de seqüència no és válid"; $text["invalid_status"] = "L'estat del document no és vàlid"; $text["invalid_target_doc_id"] = "ID de document destinació no válid"; $text["invalid_target_folder"] = "ID de carpeta destinació no válid"; $text["invalid_user_id"] = "ID d'usuari no vàlid"; $text["invalid_version"] = "La versión de documento no és vàlida"; $text["is_hidden"] = "Amagar de la llista d'usuaris"; $text["january"] = "Gener"; $text["js_no_approval_group"] = "Si us plau, seleccioneu grup d'aprovació"; $text["js_no_approval_status"] = "Si us plau, seleccioneu l'estat d'aprovació"; $text["js_no_comment"] = "No hi ha comentaris"; $text["js_no_email"] = "Si us plau, escriviu la vostra adreça de correu electrònic"; $text["js_no_file"] = "Si us plau, seleccioneu un arxiu"; $text["js_no_keywords"] = "Si us plau, especifiqueu mots clau"; $text["js_no_login"] = "Si us plau, escriviu un nom d'usuari"; $text["js_no_name"] = "Si us plau, escriviu un nom"; $text["js_no_override_status"] = "Si us plau, seleccioneu el nou [override] estat"; $text["js_no_pwd"] = "Si us plau, escriviu la vostra contrasenya"; $text["js_no_query"] = "Si us plau, escriviu una cerca"; $text["js_no_review_group"] = "Si us plau, seleccioneu un grup de revisió"; $text["js_no_review_status"] = "Si us plau, seleccioneu l'estat de revisió"; $text["js_pwd_not_conf"] = "La contrasenya i la confirmació de la contrasenya no coincideixen"; $text["js_select_user_or_group"] = "Seleccioneu, si més no, un usuari o un grup"; $text["js_select_user"] = "Si us plau, seleccioneu un usuari"; $text["july"] = "Juliol"; $text["june"] = "Juny"; $text["keyword_exists"] = "El mot clau ja existeix"; $text["keywords"] = "Mots clau"; $text["language"] = "Llenguatge"; $text["last_update"] = "Última modificació"; $text["link_alt_updatedocument"] = "If you would like to upload files bigger than the current maximum upload size, please use the alternative upload page."; $text["linked_documents"] = "Documents relacionats"; $text["linked_files"] = "Adjunts"; $text["local_file"] = "Arxiu local"; $text["locked_by"] = "Locked by"; $text["lock_document"] = "Bloquejar"; $text["lock_message"] = "Aquest document ha estat bloquejat per [username].
Només els usuaris autoritzats poden desbloquejar aquest document (vegeu al final de la pàgina)."; $text["lock_status"] = "Estat"; $text["login_error_text"] = "Error d'accés. ID d'usuari o contrasenya incorrectes."; $text["login_error_title"] = "Error d'accés"; $text["login_not_given"] = "Nom d'usuari no facilitat."; $text["login_ok"] = "Accés amb èxit"; $text["log_management"] = "Gestió de fitxers de registre"; $text["logout"] = "Desconnectar"; $text["manager"] = "Manager"; $text["march"] = "Març"; $text["max_upload_size"] = "Mida màxima de pujada de cada fitxer"; $text["may"] = "Maig"; $text["monday"] = "Dilluns"; $text["month_view"] = "Vista de mes"; $text["monthly"] = "Monthly"; $text["move_document"] = "Moure document"; $text["move_folder"] = "Moure directori"; $text["move"] = "Moure"; $text["my_account"] = "El meu compte"; $text["my_documents"] = "Els meus documents"; $text["name"] = "Nom"; $text["new_default_keyword_category"] = "Nova categoria"; $text["new_default_keywords"] = "Afegir mots clau"; $text["new_document_category"] = "Add category"; $text["new_document_email"] = "Nou document"; $text["new_file_email"] = "Nou adjunt"; $text["new_folder"] = "Nova carpeta"; $text["new"] = "Nou"; $text["new_subfolder_email"] = "Nova subcarpeta"; $text["new_user_image"] = "Nova imatge"; $text["no_action"] = "No és necessària cap acció"; $text["no_approval_needed"] = "No hi ha aprovacions pendents."; $text["no_attached_files"] = "No hi ha fitxers adjunts"; $text["no_default_keywords"] = "No hi ha mots clau disponibles"; $text["no_docs_locked"] = "No hi ha documents bloquejats."; $text["no_docs_to_approve"] = "Actualmente no hi ha documents que necessitin aprovació."; $text["no_docs_to_look_at"] = "No hi ha documents que necessitin atenció."; $text["no_docs_to_review"] = "Actualmente no hi ha documents que necessitin revisió."; $text["no_group_members"] = "Aquest grup no té membres"; $text["no_groups"] = "No hi ha grups"; $text["no"] = "No"; $text["no_linked_files"] = "No hi ha fitxers enllaçats"; $text["no_previous_versions"] = "No s'han trobat altres versions"; $text["no_review_needed"] = "No hi ha revisions pendents."; $text["notify_added_email"] = "Se us ha afegit a la llista de notificació"; $text["notify_deleted_email"] = "Se us ha eliminat de la llista de notificació"; $text["no_update_cause_locked"] = "Aquest document no es pot actualitzar. Si us plau, contacteu amb l'usuari que l'ha bloquejat."; $text["no_user_image"] = "No es troba la imatge"; $text["november"] = "Novembre"; $text["obsolete"] = "Obsolet"; $text["october"] = "Octubre"; $text["old"] = "Vell"; $text["only_jpg_user_images"] = "Només pot utilitzar imatges .jpg com imatges d'usuari"; $text["owner"] = "Propietari/a"; $text["ownership_changed_email"] = "Propietari/a canviat"; $text["password"] = "Contrasenya"; $text["personal_default_keywords"] = "Mots clau personals"; $text["previous_versions"] = "Versions anteriors"; $text["refresh"] = "Refresh"; $text["rejected"] = "Rebutjat"; $text["released"] = "Publicat"; $text["removed_approver"] = "Ha estat eliminat de la llista d'aprovadors."; $text["removed_file_email"] = "Adjunts eliminats"; $text["removed_reviewer"] = "Ha estat eliminat de la llista de revisors"; $text["results_page"] = "Pàgina de resultats"; $text["review_deletion_email"] = "Petició de revisió eliminada"; $text["reviewer_already_assigned"] = "Ja està asignat com revisor"; $text["reviewer_already_removed"] = "Ja ha estat eliminat del procés de revisió o ja ha enviat una revisió"; $text["reviewers"] = "Revisors"; $text["review_group"] = "Grup de revisió"; $text["review_request_email"] = "Petició de revisió"; $text["review_status"] = "Estat de revisió"; $text["review_submit_email"] = "Revisió enviada"; $text["review_summary"] = "Resum de revisió"; $text["review_update_failed"] = "Error actualitzant l'estat de la revisió. L'actualizació ha fallat."; $text["rm_default_keyword_category"] = "Eliminar categoria"; $text["rm_document"] = "Eliminar document"; $text["rm_document_category"] = "Delete category"; $text["rm_file"] = "Eliminar fitxer"; $text["rm_folder"] = "Eliminar carpeta"; $text["rm_group"] = "Eliminar aquest grup"; $text["rm_user"] = "Eliminar aquest usuari"; $text["rm_version"] = "Eliminar versió"; $text["role_admin"] = "Administrador"; $text["role_guest"] = "Invitat"; $text["role_user"] = "User"; $text["role"] = "Rol"; $text["saturday"] = "Dissabte"; $text["save"] = "Guardar"; $text["search_fulltext"] = "Search in fulltext"; $text["search_in"] = "Buscar a"; $text["search_mode_and"] = "tots els mots"; $text["search_mode_or"] = "si més no, un mot"; $text["search_no_results"] = "No hi ha documents que coincideixn amb la seva cerca"; $text["search_query"] = "Cercar"; $text["search_report"] = "Trobats [count] documents"; $text["search_results_access_filtered"] = "Els resultats de la cerca podrien incloure continguts amb l'accés denegat."; $text["search_results"] = "Resultats de la cerca"; $text["search"] = "Cercar"; $text["search_time"] = "Temps transcorregut: [time] seg."; $text["selection"] = "Selecció"; $text["select_one"] = "Seleccionar un"; $text["september"] = "Setembre"; $text["seq_after"] = "Després \"[prevname]\""; $text["seq_end"] = "Al final"; $text["seq_keep"] = "Mantenir posició"; $text["seq_start"] = "Primera posició"; $text["sequence"] = "Seqüència"; $text["set_expiry"] = "Establir caducitad"; $text["set_owner_error"] = "Error a l'establir el propietari/a"; $text["set_owner"] = "Establir propietari/a"; $text["settings_activate_module"] = "Activate module"; $text["settings_activate_php_extension"] = "Activate PHP extension"; $text["settings_adminIP"] = "Admin IP"; $text["settings_adminIP_desc"] = "If enabled admin can login only by specified IP addres, leave empty to avoid the control. NOTE: works only with local autentication (no LDAP)"; $text["settings_ADOdbPath"] = "ADOdb Path"; $text["settings_ADOdbPath_desc"] = "Path to adodb. This is the directory containing the adodb directory"; $text["settings_Advanced"] = "Advanced"; $text["settings_apache_mod_rewrite"] = "Apache - Module Rewrite"; $text["settings_Authentication"] = "Authentication settings"; $text["settings_Calendar"] = "Calendar settings"; $text["settings_calendarDefaultView"] = "Calendar Default View"; $text["settings_calendarDefaultView_desc"] = "Calendar default view"; $text["settings_contentDir"] = "Content directory"; $text["settings_contentDir_desc"] = "Where the uploaded files are stored (best to choose a directory that is not accessible through your web-server)"; $text["settings_contentOffsetDir"] = "Content Offset Directory"; $text["settings_contentOffsetDir_desc"] = "To work around limitations in the underlying file system, a new directory structure has been devised that exists within the content directory (Content Directory). This requires a base directory from which to begin. Usually leave this to the default setting, 1048576, but can be any number or string that does not already exist within (Content Directory)"; $text["settings_coreDir"] = "Core letoDMS directory"; $text["settings_coreDir_desc"] = "Path to LetoDMS_Core (optional)"; $text["settings_luceneClassDir"] = "Lucene LetoDMS directory"; $text["settings_luceneClassDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_luceneDir"] = "Lucene letoDMS directory"; $text["settings_luceneDir_desc"] = "Path to LetoDMS_Lucene (optional)"; $text["settings_createdatabase"] = "Create database"; $text["settings_createdirectory"] = "Create directory"; $text["settings_currentvalue"] = "Current value"; $text["settings_Database"] = "Database settings"; $text["settings_dbDatabase"] = "Database"; $text["settings_dbDatabase_desc"] = "The name for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbDriver"] = "Database Type"; $text["settings_dbDriver_desc"] = "The type of database in use entered during the installation process. Do not edit this field unless you are having to migrate to a different type of database perhaps due to changing hosts. Type of DB-Driver used by adodb (see adodb-readme)"; $text["settings_dbHostname_desc"] = "The hostname for your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbHostname"] = "Server name"; $text["settings_dbPass_desc"] = "The password for access to your database entered during the installation process."; $text["settings_dbPass"] = "Password"; $text["settings_dbUser_desc"] = "The username for access to your database entered during the installation process. Do not edit field unless absolutely necessary, for example transfer of the database to a new Host."; $text["settings_dbUser"] = "Username"; $text["settings_delete_install_folder"] = "To use LetoDMS, you must delete the install directory"; $text["settings_disableSelfEdit_desc"] = "If checked user cannot edit his own profile"; $text["settings_disableSelfEdit"] = "Disable Self Edit"; $text["settings_Display"] = "Display settings"; $text["settings_Edition"] = "Edition settings"; $text["settings_enableAdminRevApp_desc"] = "Uncheck to don't list administrator as reviewer/approver"; $text["settings_enableAdminRevApp"] = "Enable Admin Rev App"; $text["settings_enableCalendar_desc"] = "Enable/disable calendar"; $text["settings_enableCalendar"] = "Enable Calendar"; $text["settings_enableConverting_desc"] = "Enable/disable converting of files"; $text["settings_enableConverting"] = "Enable Converting"; $text["settings_enableEmail_desc"] = "Enable/disable automatic email notification"; $text["settings_enableEmail"] = "Enable E-mail"; $text["settings_enableFolderTree_desc"] = "False to don't show the folder tree"; $text["settings_enableFolderTree"] = "Enable Folder Tree"; $text["settings_enableFullSearch"] = "Enable Full text search"; $text["settings_enableGuestLogin_desc"] = "If you want anybody to login as guest, check this option. Note: guest login should be used only in a trusted environment"; $text["settings_enableGuestLogin"] = "Enable Guest Login"; $text["settings_enableUserImage_desc"] = "Enable users images"; $text["settings_enableUserImage"] = "Enable User Image"; $text["settings_enableUsersView_desc"] = "Enable/disable group and user view for all users"; $text["settings_enableUsersView"] = "Enable Users View"; $text["settings_error"] = "Error"; $text["settings_expandFolderTree_desc"] = "Expand Folder Tree"; $text["settings_expandFolderTree"] = "Expand Folder Tree"; $text["settings_expandFolderTree_val0"] = "start with tree hidden"; $text["settings_expandFolderTree_val1"] = "start with tree shown and first level expanded"; $text["settings_expandFolderTree_val2"] = "start with tree shown fully expanded"; $text["settings_firstDayOfWeek_desc"] = "First day of the week"; $text["settings_firstDayOfWeek"] = "First day of the week"; $text["settings_footNote_desc"] = "Message to display at the bottom of every page"; $text["settings_footNote"] = "Foot Note"; $text["settings_guestID_desc"] = "ID of guest-user used when logged in as guest (mostly no need to change)"; $text["settings_guestID"] = "Guest ID"; $text["settings_httpRoot_desc"] = "The relative path in the URL, after the domain part. Do not include the http:// prefix or the web host name. e.g. If the full URL is http://www.example.com/letodms/, set '/letodms/'. If the URL is http://www.example.com/, set '/'"; $text["settings_httpRoot"] = "Http Root"; $text["settings_installADOdb"] = "Install ADOdb"; $text["settings_install_success"] = "The installation is completed successfully"; $text["settings_language"] = "Default language"; $text["settings_language_desc"] = "Default language (name of a subfolder in folder \"languages\")"; $text["settings_logFileEnable_desc"] = "Enable/disable log file"; $text["settings_logFileEnable"] = "Log File Enable"; $text["settings_logFileRotation_desc"] = "The log file rotation"; $text["settings_logFileRotation"] = "Log File Rotation"; $text["settings_luceneDir"] = "Directory for full text index"; $text["settings_maxDirID_desc"] = "Maximum number of sub-directories per parent directory. Default: 32700."; $text["settings_maxDirID"] = "Max Directory ID"; $text["settings_maxExecutionTime_desc"] = "This sets the maximum time in seconds a script is allowed to run before it is terminated by the parse"; $text["settings_maxExecutionTime"] = "Max Execution Time (s)"; $text["settings_more_settings"] = "Configure more settings. Default login: admin/admin"; $text["settings_notfound"] = "Not found"; $text["settings_partitionSize"] = "Size of partial files uploaded by jumploader"; $text["settings_php_dbDriver"] = "PHP extension : php_'see current value'"; $text["settings_php_gd2"] = "PHP extension : php_gd2"; $text["settings_php_mbstring"] = "PHP extension : php_mbstring"; $text["settings_printDisclaimer_desc"] = "If true the disclaimer message the lang.inc files will be print on the bottom of the page"; $text["settings_printDisclaimer"] = "Print Disclaimer"; $text["settings_restricted_desc"] = "Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)"; $text["settings_restricted"] = "Restricted access"; $text["settings_rootDir_desc"] = "Path to where letoDMS is located"; $text["settings_rootDir"] = "Root directory"; $text["settings_rootFolderID_desc"] = "ID of root-folder (mostly no need to change)"; $text["settings_rootFolderID"] = "Root Folder ID"; $text["settings_SaveError"] = "Configuration file save error"; $text["settings_Server"] = "Server settings"; $text["settings"] = "Settings"; $text["settings_siteDefaultPage_desc"] = "Default page on login. If empty defaults to out/out.ViewFolder.php"; $text["settings_siteDefaultPage"] = "Site Default Page"; $text["settings_siteName_desc"] = "Name of site used in the page titles. Default: letoDMS"; $text["settings_siteName"] = "Site Name"; $text["settings_Site"] = "Site"; $text["settings_smtpPort_desc"] = "SMTP Server port, default 25"; $text["settings_smtpPort"] = "SMTP Server port"; $text["settings_smtpSendFrom_desc"] = "Send from"; $text["settings_smtpSendFrom"] = "Send from"; $text["settings_smtpServer_desc"] = "SMTP Server hostname"; $text["settings_smtpServer"] = "SMTP Server hostname"; $text["settings_SMTP"] = "SMTP Server settings"; $text["settings_stagingDir"] = "Directory for partial uploads"; $text["settings_strictFormCheck_desc"] = "Strict form checking. If set to true, then all fields in the form will be checked for a value. If set to false, then (most) comments and keyword fields become optional. Comments are always required when submitting a review or overriding document status"; $text["settings_strictFormCheck"] = "Strict Form Check"; $text["settings_suggestionvalue"] = "Suggestion value"; $text["settings_System"] = "System"; $text["settings_theme"] = "Default theme"; $text["settings_theme_desc"] = "Default style (name of a subfolder in folder \"styles\")"; $text["settings_titleDisplayHack_desc"] = "Workaround for page titles that go over more than 2 lines."; $text["settings_titleDisplayHack"] = "Title Display Hack"; $text["settings_updateNotifyTime_desc"] = "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds"; $text["settings_updateNotifyTime"] = "Update Notify Time"; $text["settings_versioningFileName_desc"] = "The name of the versioning info file created by the backup tool"; $text["settings_versioningFileName"] = "Versioning FileName"; $text["settings_viewOnlineFileTypes_desc"] = "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)"; $text["settings_viewOnlineFileTypes"] = "View Online File Types"; $text["signed_in_as"] = "Connectat com"; $text["sign_in"] = "sign in"; $text["sign_out"] = "desconnectar"; $text["space_used_on_data_folder"] = "Espai utilitzat a la carpeta de dades"; $text["status_approval_rejected"] = "Esborrany rebutjat"; $text["status_approved"] = "Aprovat"; $text["status_approver_removed"] = "Aprovador eliminat del procés"; $text["status_not_approved"] = "Sense aprovar"; $text["status_not_reviewed"] = "Sense revisar"; $text["status_reviewed"] = "Revisat"; $text["status_reviewer_rejected"] = "Esborrany rebutjat"; $text["status_reviewer_removed"] = "Revisor eliminat del procés"; $text["status"] = "Estat"; $text["status_unknown"] = "Desconegut"; $text["storage_size"] = "Storage size"; $text["submit_approval"] = "Enviar aprovació"; $text["submit_login"] = "Connectat"; $text["submit_review"] = "Enviar revisiót"; $text["sunday"] = "Diumenge"; $text["theme"] = "Tema gràfic"; $text["thursday"] = "Dijous"; $text["toggle_manager"] = "Intercanviar manager"; $text["to"] = "Fins"; $text["tuesday"] = "Dimarts"; $text["under_folder"] = "A carpeta"; $text["unknown_command"] = "Ordre no reconeguda."; $text["unknown_document_category"] = "Unknown category"; $text["unknown_group"] = "Id de grup desconegut"; $text["unknown_id"] = "Id desconegut"; $text["unknown_keyword_category"] = "Categoria desconeguda"; $text["unknown_owner"] = "Id de propietari/a desconegut"; $text["unknown_user"] = "ID d'usuari desconegut"; $text["unlock_cause_access_mode_all"] = "Pot actualitzar-lo perquè té mode d'accés \"all\". El bloqueig s¡eliminarà automàticament."; $text["unlock_cause_locking_user"] = "Pot actualitzar-lo perquè és qui el va bloquejar. El bloqueig s'eliminarà automàticament."; $text["unlock_document"] = "Desbloquejar"; $text["update_approvers"] = "Actualitzar llista d'aprovadors"; $text["update_document"] = "Actualitzar"; $text["update_fulltext_index"] = "Update fulltext index"; $text["update_info"] = "Actualitzar informació"; $text["update_locked_msg"] = "Aquest document està bloquejat."; $text["update_reviewers"] = "Actualitzar llista de revisors"; $text["update"] = "Actualitzar"; $text["uploaded_by"] = "Enviat per"; $text["uploading_failed"] = "Enviament (Upload) fallat. Si us plau, contacteu amb l'administrador."; $text["use_default_categories"] = "Use predefined categories"; $text["use_default_keywords"] = "Utilitzar els mots clau per omisió"; $text["user_exists"] = "L'usuari ja existeix."; $text["user_image"] = "Imatge"; $text["user_info"] = "Informació d'usuari"; $text["user_list"] = "Llista d'usuaris"; $text["user_login"] = "Nom d'usuari"; $text["user_management"] = "Usuaris"; $text["user_name"] = "Nom complet"; $text["users"] = "Usuaris"; $text["user"] = "Usuari"; $text["version_deleted_email"] = "Versió eliminada"; $text["version_info"] = "Informació de versió"; $text["versioning_file_creation"] = "Creació de fitxer de versions"; $text["versioning_file_creation_warning"] = "Amb aquesta operació podeu crear un fitxer que contingui la informació de versions d'una carpeta del DMS completa. Després de la creació, tots els fitxers es guardaran a la carpeta de documents."; $text["versioning_info"] = "Informació de versions"; $text["version"] = "Versió"; $text["view_online"] = "Veure online"; $text["warning"] = "Advertència"; $text["wednesday"] = "Dimecres"; $text["week_view"] = "Vista de setmana"; $text["year_view"] = "Vista d'any"; $text["yes"] = "Sí"; ?> letodms-3.3.11+dfsg.1/languages/Portuguese_BR/0000755000175000017500000000000012040235120021504 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Portuguese_BR/lang.inc0000644000175000017500000007673512040235120023142 0ustar franciscofranciscoPor favor, tenha cuidado porque esta ao no poder desfeita."; $text["confirm_rm_folder"] = "Deseja realmente remover a \"[foldername]\" e seu contedo ?
Por favor, tenha cuidado porque esta ao no poder desfeita."; $text["confirm_rm_version"] = "Deseja realmente remover verso [version] do documento \"[documentname]\"?
Por favor, tenha cuidado porque esta ao no poder desfeita."; $text["content"] = "Contedo"; $text["continue"] = "Continue"; $text["creating_new_default_keyword_category"] = "Adicionando categoria..."; $text["creation_date"] = "Criado"; $text["current_version"] = "Verso Atual"; $text["default_access"] = "Modo de acesso Padro"; $text["default_keyword_category"] = "Categorias"; $text["default_keyword_category_name"] = "Nome"; $text["default_keywords"] = "Palavras-chave disponveis"; $text["delete"] = "Apagar"; $text["delete_last_version"] = "Document has only one revision. Deleting entire document record..."; $text["deleting_document_notify"] = "Removendo elemento da lista de notificao..."; $text["deleting_folder_notify"] = "Removendo elemento da lista de notificao..."; $text["details"] = "Details"; $text["details_version"] = "Details for version: [version]"; $text["document"] = "Document"; $text["document_access_again"] = "Editar acesso ao documento novamente"; $text["document_add_access"] = "Adicionando elemento lista de acesso..."; $text["document_already_locked"] = "Este documento j est travado"; $text["document_del_access"] = "Removendo elemento a partir da lista de acesso..."; $text["document_edit_access"] = "Mudando modo de acesso..."; $text["document_infos"] = "Informaes"; $text["document_is_not_locked"] = "Este documento no est travado"; $text["document_link_by"] = "Ligado por"; $text["document_link_public"] = "Pblico"; $text["document_list"] = "Documentos"; $text["document_notify_again"] = "Editar lista de notificao novamente"; $text["document_overview"] = "Visualizao do Documento"; $text["document_set_default_access"] = "Definindo acesso padro para documento..."; $text["document_set_inherit"] = "Removendo ACL. Documento herdar acesso..."; $text["document_set_not_inherit_copy"] = "Copiando lista de acesso..."; $text["document_set_not_inherit_empty"] = "Removendo acessos herdados. Iniciando com ACL vazia..."; $text["document_status"] = "Document Status"; $text["document_title"] = "Documento [documentname]"; $text["document_versions"] = "Todas as verses "; $text["documents_in_process"] = "Documents In Process"; $text["documents_owned_by_user"] = "Documents Owned by User"; $text["documents_to_approve"] = "Documents Awaiting User's Approval"; $text["documents_to_review"] = "Documents Awaiting User's Review"; $text["documents_user_requiring_attention"] = "Documents Owned by User That Require Attention"; $text["does_not_expire"] = "No Expira"; $text["does_not_inherit_access_msg"] = "Inherit access"; $text["download"] = "Download"; $text["draft_pending_approval"] = "Draft - pending approval"; $text["draft_pending_review"] = "Draft - pending review"; $text["edit"] = "edit"; $text["edit_default_keyword_category"] = "Editar categorias"; $text["edit_default_keywords"] = "Editar palavras-chave"; $text["edit_document"] = "Editar documento"; $text["edit_document_access"] = "Editar acesso"; $text["edit_document_notify"] = "Lista de notificao"; $text["edit_document_props"] = "Editar documento"; $text["edit_document_props_again"] = "Editar documento novamente"; $text["edit_existing_access"] = "Editar lista de acesso."; $text["edit_existing_notify"] = "Editar lista de notificao"; $text["edit_folder"] = "Editar pasta"; $text["edit_folder_access"] = "Editar pasta"; $text["edit_folder_notify"] = "Lista de Notificao"; $text["edit_folder_props"] = "Editar pasta"; $text["edit_folder_props_again"] = "Editar pasta novamente"; $text["edit_group"] = "Editar grupo"; $text["edit_inherit_access"] = "Herda acesso"; $text["edit_personal_default_keywords"] = "Editar palavras-chave pessoais"; $text["edit_user"] = "Editar usurio"; $text["edit_user_details"] = "Edit User Details"; $text["editing_default_keyword_category"] = "Mundando categoria..."; $text["editing_default_keywords"] = "Mundando palavras-chave..."; $text["editing_document_props"] = "Editando documento..."; $text["editing_folder_props"] = "Editando pasta..."; $text["editing_group"] = "Editando grupo..."; $text["editing_user"] = "Editando usurio..."; $text["editing_user_data"] = "Edio definies de usurios..."; $text["email"] = "Email"; $text["email_err_group"] = "Error sending email to one or more members of this group."; $text["email_err_user"] = "Error sending email to user."; $text["email_sent"] = "Email sent"; $text["empty_access_list"] = "Lista de acesso est vazia"; $text["empty_notify_list"] = "Sem entradas"; $text["error_adding_session"] = "Error occured while creating session."; $text["error_occured"] = "Ocorreu um erro"; $text["error_removing_old_sessions"] = "Error occured while removing old sessions"; $text["error_updating_revision"] = "Error updating status of document revision."; $text["exp_date"] = "Expira"; $text["expired"] = "Expired"; $text["expires"] = "Expira"; $text["file"] = "File"; $text["file_info"] = "File Information"; $text["file_size"] = "Tamanho"; $text["folder_access_again"] = "Editar acesso da pasta novamente"; $text["folder_add_access"] = "Adicionando elemento lista de acesso..."; $text["folder_contents"] = "Folders"; $text["folder_del_access"] = "Removendo elemento da lista de acesso..."; $text["folder_edit_access"] = "Editando acesso..."; $text["folder_infos"] = "Informaes"; $text["folder_notify_again"] = "Editar lista de notificao novamente"; $text["folder_overview"] = "Visualizao da Pasta"; $text["folder_path"] = "Caminho"; $text["folder_set_default_access"] = "Definindo modo de acesso padro para a pasta..."; $text["folder_set_inherit"] = "Removendo ACL. Pasta will inherit access..."; $text["folder_set_not_inherit_copy"] = "Copiando lista de acesso..."; $text["folder_set_not_inherit_empty"] = "Removendo inherited access. Starting with empty ACL..."; $text["folder_title"] = "Pasta [foldername]"; $text["folders_and_documents_statistic"] = "Overview de pastas e documentos"; $text["foldertree"] = "rvore"; $text["from_approval_process"] = "from approval process"; $text["from_review_process"] = "from review process"; $text["global_default_keywords"] = "palavras-chave globais"; $text["goto"] = "Ir Para"; $text["group"] = "Grupo"; $text["group_already_approved"] = "An approval has already been submitted on behalf of group"; $text["group_already_reviewed"] = "A review has already been submitted on behalf of group"; $text["group_approvers"] = "Group Approvers"; $text["group_email_sent"] = "Email sent to group members"; $text["group_exists"] = "Group already exists."; $text["group_management"] = "Gropos"; $text["group_members"] = "Grupo membros"; $text["group_reviewers"] = "Group Reviewers"; $text["group_unable_to_add"] = "Unable to add group"; $text["group_unable_to_remove"] = "Unable to remove group"; $text["groups"] = "Grupos"; $text["guest_login"] = "Entre como convidado"; $text["guest_login_disabled"] = "Guest login is disabled."; $text["individual_approvers"] = "Individual Approvers"; $text["individual_reviewers"] = "Individual Reviewers"; $text["individuals"] = "Individuals"; $text["inherits_access_msg"] = "Acesso est endo herdado."; $text["inherits_access_copy_msg"] = "Copy inherited access list"; $text["inherits_access_empty_msg"] = "Inicie com a lista de acesso vazia"; $text["internal_error"] = "Internal error"; $text["internal_error_exit"] = "Internal error. Unable to complete request. Exiting."; $text["invalid_access_mode"] = "Invalid Access Mode"; $text["invalid_action"] = "Invalid Action"; $text["invalid_approval_status"] = "Invalid Approval Status"; $text["invalid_create_date_end"] = "Invalid end date for creation date range."; $text["invalid_create_date_start"] = "Invalid start date for creation date range."; $text["invalid_doc_id"] = "Invalid Document ID"; $text["invalid_folder_id"] = "Invalid Folder ID"; $text["invalid_group_id"] = "Invalid Group ID"; $text["invalid_link_id"] = "Invalid link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Invalid Review Status"; $text["invalid_sequence"] = "Invalid sequence value"; $text["invalid_status"] = "Invalid Document Status"; $text["invalid_target_doc_id"] = "Invalid Target Document ID"; $text["invalid_target_folder"] = "Invalid Target Folder ID"; $text["invalid_user_id"] = "Invalid User ID"; $text["invalid_version"] = "Invalid Document Version"; $text["is_admin"] = "Administrator Privilege"; $text["js_no_approval_group"] = "Please select a approval group"; $text["js_no_approval_status"] = "Please select the approval status"; $text["js_no_comment"] = "No h comentrio"; $text["js_no_email"] = "Digite seu endereo de e-mail"; $text["js_no_file"] = "Por favor selecione um arquivo"; $text["js_no_keywords"] = "Especifique algumas palavras-chave"; $text["js_no_login"] = "Por favor digite um usurio"; $text["js_no_name"] = "Por favor digite um nome"; $text["js_no_pwd"] = " necessrio digitar sua senha"; $text["js_no_query"] = "Digite uma solicitao"; $text["js_no_review_group"] = "Please select a review group"; $text["js_no_review_status"] = "Please select the review status"; $text["js_pwd_not_conf"] = "Senha e confirmao de senha no so iguais"; $text["js_select_user"] = "Por favor selecione um usurio"; $text["js_select_user_or_group"] = "Selecione, no mnimo, um usurio ou grupo"; $text["keyword_exists"] = "Keyword already exists"; $text["keywords"] = "Palavras-chave"; $text["language"] = "Linguagem"; $text["last_update"] = "ltima verso"; $text["last_updated_by"] = "Last updated by"; $text["latest_version"] = "Latest Version"; $text["linked_documents"] = "Documentos relacionados"; $text["local_file"] = "Arquivo local"; $text["lock_document"] = "Travar"; $text["lock_message"] = "Este documento foi travado por [username].
Somente usurios autorizados podem remover a trava deste documento (veja no final da pgina)."; $text["lock_status"] = "Status"; $text["locking_document"] = "Travando documento..."; $text["logged_in_as"] = "Conectado"; $text["login"] = "Login"; $text["login_error_text"] = "Error signing in. User ID or password incorrect."; $text["login_error_title"] = "Sign in error"; $text["login_not_found"] = "Este usurio no existe"; $text["login_not_given"] = "No username has been supplied"; $text["login_ok"] = "Sign in successful"; $text["logout"] = "Sair"; $text["mime_type"] = "Mime-Type"; $text["move"] = "Move"; $text["move_document"] = "Mover documento"; $text["move_folder"] = "Mover Pasta"; $text["moving_document"] = "Movendo documento..."; $text["moving_folder"] = "Movendo pasta..."; $text["msg_document_expired"] = "O documento \"[documentname]\" (Path: \"[path]\") tem expirado em [expires]"; $text["msg_document_updated"] = "O documento \"[documentname]\" (Path: \"[path]\") foi criado ou atualizado em [updated]"; $text["my_account"] = "Minha Conta"; $text["my_documents"] = "My Documents"; $text["name"] = "Nome"; $text["new_default_keyword_category"] = "Adicionar categoria"; $text["new_default_keywords"] = "Adicionar palavras-chave"; $text["new_equals_old_state"] = "Warning: Proposed status and existing status are identical. No action required."; $text["new_user_image"] = "Nova imagem"; $text["no"] = "No"; $text["no_action"] = "No action required"; $text["no_action_required"] = "n/a"; $text["no_active_user_docs"] = "There are currently no documents owned by the user that require review or approval."; $text["no_approvers"] = "No approvers assigned."; $text["no_default_keywords"] = "No h palavras-chave disponveis"; $text["no_docs_to_approve"] = "There are currently no documents that require approval."; $text["no_docs_to_review"] = "There are currently no documents that require review."; $text["no_document_links"] = "Sem documentos relacionados"; $text["no_documents"] = "Sem documentos"; $text["no_group_members"] = "Este grupo no tem membros"; $text["no_groups"] = "Sem grupos"; $text["no_previous_versions"] = "No other versions found"; $text["no_reviewers"] = "No reviewers assigned."; $text["no_subfolders"] = "Sem pastas"; $text["no_update_cause_locked"] = "Por isso voc no pode atualizar este documento. Por favor contacte usurio que possui a trava."; $text["no_user_image"] = "No foram encontardas imagens"; $text["not_approver"] = "User is not currently assigned as an approver of this document revision."; $text["not_reviewer"] = "User is not currently assigned as a reviewer of this document revision."; $text["notify_subject"] = "Documentos novos ou expirados em seu DMS"; $text["obsolete"] = "Obsolete"; $text["old_folder"] = "old folder"; $text["only_jpg_user_images"] = "Somente imagens jpg podem ser utilizadas como imagens de usurios"; $text["op_finished"] = "Feito"; $text["operation_not_allowed"] = "Voc no tem direitos suficientes para fazer isto"; $text["override_content_status"] = "Override Status"; $text["override_content_status_complete"] = "Override Status Complete"; $text["override_privilege_insufficient"] = "Access denied. Privileges insufficient to override the status of this document."; $text["overview"] = "Overview"; $text["owner"] = "Proprietrio"; $text["password"] = "Senha"; $text["pending_approval"] = "Documents pending approval"; $text["pending_review"] = "Documents pending review"; $text["personal_default_keywords"] = "palavras-chave pessoais"; $text["previous_versions"] = "Previous Versions"; $text["rejected"] = "Rejected"; $text["released"] = "Released"; $text["remove_document_link"] = "Remove link"; $text["remove_member"] = "Remove membro"; $text["removed_approver"] = "has been removed from the list of approvers."; $text["removed_reviewer"] = "has been removed from the list of reviewers."; $text["removing_default_keyword_category"] = "Apagando categoria..."; $text["removing_default_keywords"] = "Apagando palavras-chave..."; $text["removing_document"] = "Removendo documento..."; $text["removing_document_link"] = "Removendo link ao documento relacionado..."; $text["removing_folder"] = "Removendo pasta..."; $text["removing_group"] = "Removendo grupo do sistema..."; $text["removing_member"] = "Removendo membro do grupo..."; $text["removing_user"] = "Removendo usurio do sistema ..."; $text["removing_version"] = "Removendo verso [version]..."; $text["review_document"] = "Review Document"; $text["review_document_complete"] = "Review Document: Complete"; $text["review_document_complete_records_updated"] = "Document review completed and records updated"; $text["review_group"] = "Review Group"; $text["review_status"] = "Review Status"; $text["review_summary"] = "Review Summary"; $text["review_update_failed"] = "Error updating review status. Update failed."; $text["reviewer_added"] = "added as a reviewer"; $text["reviewer_already_assigned"] = "is already assigned as a reviewer"; $text["reviewer_already_removed"] = "has already been removed from review process or has already submitted a review"; $text["reviewer_no_privilege"] = "is not sufficiently privileged to review this document"; $text["reviewer_removed"] = "removed from review process"; $text["reviewers"] = "Reviewers"; $text["rm_default_keyword_category"] = "Apague esta categoria"; $text["rm_default_keywords"] = "Apagar palavras-chave"; $text["rm_document"] = "Remove documento"; $text["rm_folder"] = "Remove pasta"; $text["rm_group"] = "Remove este grupo"; $text["rm_user"] = "Remove este usurio"; $text["rm_version"] = "Remove verso"; $text["root_folder"] = "Pasta Raiz"; $text["save"] = "Salvar"; $text["search"] = "Busca"; $text["search_in"] = "Busca em "; $text["search_in_all"] = "todas as pastas"; $text["search_in_current"] = "somente esta ([foldername]) incluindo sub-pastas"; $text["search_mode"] = "Modo"; $text["search_mode_and"] = "todas as palavras"; $text["search_mode_or"] = "at least one word"; $text["search_no_results"] = "No h documento que satisfaam sua busca"; $text["search_query"] = "Busca por"; $text["search_report"] = "Encontrados [count] documentos"; $text["search_result_pending_approval"] = "status 'pending approval'"; $text["search_result_pending_review"] = "status 'pending review'"; $text["search_results"] = "Resultados da busca"; $text["search_results_access_filtered"] = "Search results may contain content to which access has been denied."; $text["search_time"] = "Tempo decorrido: [time] sec."; $text["select_one"] = "Selecione um"; $text["selected_document"] = "Documento selecionado"; $text["selected_folder"] = "Pasta selecionada"; $text["selection"] = "Selection"; $text["seq_after"] = "Depois \"[prevname]\""; $text["seq_end"] = "No final"; $text["seq_keep"] = "Manter posio"; $text["seq_start"] = "Primeira posio"; $text["sequence"] = "Seqncia"; $text["set_default_access"] = "Set Default Access Mode"; $text["set_expiry"] = "Set Expiry"; $text["set_owner"] = "Define proprietrio"; $text["set_reviewers_approvers"] = "Assign Reviewers and Approvers"; $text["setting_expires"] = "Definindo expirao..."; $text["setting_owner"] = "Definindo proprietrio..."; $text["setting_user_image"] = "
SDefinindo imagem para usurio..."; $text["show_all_versions"] = "Show All Revisions"; $text["show_current_versions"] = "Show Current"; $text["start"] = "Desde"; $text["status"] = "Status"; $text["status_approval_rejected"] = "Draft rejected"; $text["status_approved"] = "Approved"; $text["status_approver_removed"] = "Approver removed from process"; $text["status_change_summary"] = "Document revision changed from status '[oldstatus]' to status '[newstatus]'."; $text["status_changed_by"] = "Status changed by"; $text["status_not_approved"] = "Not approved"; $text["status_not_reviewed"] = "Not reviewed"; $text["status_reviewed"] = "Reviewed"; $text["status_reviewer_rejected"] = "Draft rejected"; $text["status_reviewer_removed"] = "Reviewer removed from process"; $text["status_unknown"] = "Unknown"; $text["subfolder_list"] = "Sub-pastas"; $text["submit_approval"] = "Submit approval"; $text["submit_login"] = "Sign in"; $text["submit_review"] = "Submit review"; $text["theme"] = "Tema"; $text["unable_to_add"] = "Unable to add"; $text["unable_to_remove"] = "Unable to remove"; $text["under_folder"] = "Na pasta"; $text["unknown_command"] = "Command not recognized."; $text["unknown_group"] = "Unknown group id"; $text["unknown_keyword_category"] = "Unknown category"; $text["unknown_owner"] = "Unknown owner id"; $text["unknown_user"] = "Unknown user id"; $text["unlock_cause_access_mode_all"] = "Voc pode atualiz-lo, porque voc tem mode de acesso \"all\". Trava ser automaticamente removida."; $text["unlock_cause_locking_user"] = "Voc pode pode atualiz-lo, porque voc o travou tambm. Trava ser automaticamente removida."; $text["unlock_document"] = "Remover trava"; $text["unlocking_denied"] = "Voc no tem permisses suficientes para remover a trava deste documento"; $text["unlocking_document"] = "Destravando documento..."; $text["update"] = "Update"; $text["update_approvers"] = "Update List of Approvers"; $text["update_document"] = "Atualizar"; $text["update_info"] = "Update Information"; $text["update_locked_msg"] = "Este documento est trabado."; $text["update_reviewers"] = "Update List of Reviewers"; $text["update_reviewers_approvers"] = "Update List of Reviewers and Approvers"; $text["updated_by"] = "Updated by"; $text["updating_document"] = "Atualizando documento..."; $text["upload_date"] = "Data de insero"; $text["uploaded"] = "Uploaded"; $text["uploaded_by"] = "Inserido por"; $text["uploading_failed"] = "Insero falhou. Por favor contacte o administrador"; $text["use_default_keywords"] = "Use palavras-chave pr-definidas"; $text["user"] = "Usurio"; $text["user_already_approved"] = "User has already submitted an approval of this document version"; $text["user_already_reviewed"] = "User has already submitted a review of this document version"; $text["user_approval_not_required"] = "No document approval required of user at this time."; $text["user_exists"] = "User already exists."; $text["user_image"] = "Imagem"; $text["user_info"] = "User Information"; $text["user_list"] = "Lista de Usurios"; $text["user_login"] = "Usurio"; $text["user_management"] = "Usurios"; $text["user_name"] = "Nome Completo"; $text["user_removed_approver"] = "User has been removed from the list of individual approvers."; $text["user_removed_reviewer"] = "User has been removed from the list of individual reviewers."; $text["user_review_not_required"] = "No document review required of user at this time."; $text["users"] = "Usurios"; $text["version"] = "Verso"; $text["version_info"] = "Version Information"; $text["version_under_approval"] = "Version under approval"; $text["version_under_review"] = "Version under review"; $text["view_document"] = "View Document"; $text["view_online"] = "Ver on-line"; $text["warning"] = "Warning"; $text["wrong_pwd"] = "Sua senha est incorreta. Tente novamente."; $text["yes"] = "Yes"; // New as of 1.7.1. Require updated translation. $text["documents"] = "Documents"; $text["folders"] = "Folders"; $text["no_folders"] = "No folders"; $text["notification_summary"] = "Notification Summary"; // New as of 1.7.2 $text["all_pages"] = "All"; $text["results_page"] = "Results Page"; // New $text["sign_out"] = "sign out"; $text["signed_in_as"] = "Signed in as"; $text["assign_reviewers"] = "Assign Reviewers"; $text["assign_approvers"] = "Assign Approvers"; $text["override_status"] = "Override Status"; $text["change_status"] = "Change Status"; $text["change_assignments"] = "Change Assignments"; $text["no_user_docs"] = "There are currently no documents owned by the user"; $text["disclaimer"] = "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the english and international laws."; $text["backup_tools"] = "Backup tools"; $text["versioning_file_creation"] = "Versioning file creation"; $text["archive_creation"] = "Archive creation"; $text["files_deletion"] = "Files deletion"; $text["folder"] = "Folder"; $text["unknown_id"] = "unknown id"; $text["help"] = "Help"; $text["versioning_info"] = "Versioning info"; $text["versioning_file_creation_warning"] = "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder."; $text["archive_creation_warning"] = "With this operation you can create achive containing the files of entire DMS folders. After the creation the archive will be saved in the data folder of your server.
WARNING: an archive created as human readable will be unusable as server backup."; $text["files_deletion_warning"] = "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["backup_list"] = "Existings backup list"; $text["backup_remove"] = "Remove backup file"; $text["confirm_rm_backup"] = "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["document_deleted"] = "Document deleted"; $text["linked_files"] = "Attachments"; $text["invalid_file_id"] = "Invalid file ID"; $text["rm_file"] = "Remove file"; $text["confirm_rm_file"] = "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["edit_comment"] = "Edit comment"; // new from 1.9 $text["is_hidden"] = "Hide from users list"; $text["log_management"] = "Log files management"; $text["confirm_rm_log"] = "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["include_subdirectories"] = "Include subdirectories"; $text["include_documents"] = "Include documents"; $text["manager"] = "Manager"; $text["toggle_manager"] = "Toggle manager"; // new from 2.0 $text["calendar"] = "Calendar"; $text["week_view"] = "Week view"; $text["month_view"] = "Month view"; $text["year_view"] = "Year View"; $text["add_event"] = "Add event"; $text["edit_event"] = "Edit event"; $text["january"] = "January"; $text["february"] = "February"; $text["march"] = "March"; $text["april"] = "April"; $text["may"] = "May"; $text["june"] = "June"; $text["july"] = "July"; $text["august"] = "August"; $text["september"] = "September"; $text["october"] = "October"; $text["november"] = "November"; $text["december"] = "December"; $text["sunday"] = "Sunday"; $text["monday"] = "Monday"; $text["tuesday"] = "Tuesday"; $text["wednesday"] = "Wednesday"; $text["thursday"] = "Thursday"; $text["friday"] = "Friday"; $text["saturday"] = "Saturday"; $text["from"] = "From"; $text["to"] = "To"; $text["event_details"] = "Event details"; $text["confirm_rm_event"] = "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["dump_creation"] = "DB dump creation"; $text["dump_creation_warning"] = "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "Existings dump files"; $text["dump_remove"] = "Remove dump file"; $text["confirm_rm_dump"] = "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["human_readable"] = "Human readable archive"; $text["email_header"] = "This is an automatic message from the DMS server."; $text["email_footer"] = "You can always change your e-mail settings using 'My Account' functions"; $text["add_multiple_files"] = "Add multiple files (will use filename as document name)"; // new from 2.0.1 $text["max_upload_size"] = "Maximum upload size for each file"; // new from 2.0.2 $text["space_used_on_data_folder"] = "Space used on data folder"; $text["assign_user_property_to"] = "Assign user's properties to"; ?> letodms-3.3.11+dfsg.1/languages/Portuguese_BR/help.htm0000644000175000017500000000002412040235120023142 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Netherlands/0000755000175000017500000000000012040235120021226 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Netherlands/lang.inc0000644000175000017500000005550112040235120022650 0ustar franciscofranciscoWaarschuwing: een leesbaar Archief kan niet worden gebruikt voor server back-up doeleinde."; $text["assign_approvers"] = "Aangewezen [Goedkeurders]"; $text["assign_reviewers"] = "Aangewezen [Controleurs]"; $text["assign_user_property_to"] = "Wijz gebruikers machtigingen toe aan"; $text["assumed_released"] = "aangenomen status: Gepubliceerd"; $text["august"] = "augustus"; $text["automatic_status_update"] = "Automatische Status wijziging"; $text["back"] = "Go Terug"; $text["backup_list"] = "Bestaande backup lijst"; $text["backup_remove"] = "Verwijder backup bestand"; $text["backup_tools"] = "Backup tools"; $text["between"] = "tussen"; $text["calendar"] = "Kalender"; $text["cancel"] = "Cancel"; $text["cannot_assign_invalid_state"] = "Kan document niet aanpassen in deze status"; $text["cannot_change_final_states"] = "Waarschuwing: U kunt de Status [afgewezen], [vervallen], [in afwachting van] (nog) niet wijzigen."; $text["cannot_delete_yourself"] = "Cannot delete yourself"; $text["cannot_move_root"] = "Foutmelding: U kunt de bron/root folder/map niet verplaatsen."; $text["cannot_retrieve_approval_snapshot"] = "Niet mogelijk om [Goedgekeurde] status voor de huidige versie van dit document te verkrijgen."; $text["cannot_retrieve_review_snapshot"] = "Niet mogelijk om [Controle] status voor de huidige versie van dit document te verkrijgen."; $text["cannot_rm_root"] = "Foutmelding: U kunt de bron/root folder/map niet verwijderen."; $text["change_assignments"] = "Wijzig taken/toewijzingen"; $text["change_status"] = "Wijzig Status"; $text["choose_category"] = "Selecteer a.u.b."; $text["choose_group"] = "Selecteer Groep"; $text["choose_target_document"] = "Selecteer Document"; $text["choose_target_folder"] = "Selecteer folder/map"; $text["choose_user"] = "Selecteer Gebruiker"; $text["comment_changed_email"] = "Commentaar gewijzigd"; $text["comment"] = "Commentaar"; $text["comment_for_current_version"] = "Versie van het commentaar"; $text["confirm_pwd"] = "Bevestig wachtwoord"; $text["confirm_rm_backup"] = "Weet U zeker dat U het bestand \"[arkname]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_document"] = "Weet U zeker dat U het document \"[documentname]\" wilt verwijderen?
Pas op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_dump"] = "Weet U zeker dat U het bestand \"[dumpname]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_event"] = "Weet U zeker dat U de activiteit \"[name]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_file"] = "Weet U zeker dat U file \"[name]\" van document \"[documentname]\" wilt verwijderen?
Let op: Deze actie kan niet ongedaan worden gemaakt."; $text["confirm_rm_folder"] = "Weet U zeker dat U de folder/map \"[foldername]\" en haar inhoud wilt verwijderen?
Pas op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_folder_files"] = "Weet U zeker dat U alle bestanden en subfolders/-mappen van de folder/map \"[foldername]\" wilt verwijderen?
Let op: deze actie kan niet ongedaan worden gemaakt."; $text["confirm_rm_group"] = "Weet U zeker dat U de Groep \"[groupname]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_log"] = "Weet U zeker dat U het logbestand \"[logname]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_user"] = "Weet U zeker dat U de Gebruiker \"[username]\" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt."; $text["confirm_rm_version"] = "Weet U zeker dat U deze versie van het documetn \"[documentname]\" wilt verwijderen?
Pas op: deze handeling kan niet ongedaan worden gemaakt."; $text["content"] = "Home"; $text["continue"] = "Doorgaan"; $text["creation_date"] = "Aangemaakt"; $text["current_version"] = "Huidige versie"; $text["december"] = "december"; $text["default_access"] = "Standaard toegang"; $text["default_keywords"] = "Beschikbare sleutelwoorden"; $text["delete"] = "Verwijderen"; $text["details"] = "Details"; $text["details_version"] = "Details voor versie: [version]"; $text["disclaimer"] = "Dit is een beveiligde omgeving. Gebruik is alleen toegestaan voor geautoriseerde leden. Ongeautoriseerde toegang kan worden bestraft overeenkomstig (inter)nationale wetgeving."; $text["document_already_locked"] = "Dit document is al geblokkeerd"; $text["document_deleted"] = "Document verwijders"; $text["document_deleted_email"] = "Document verwijderd"; $text["document"] = "Document"; $text["document_infos"] = "Document Informatie"; $text["document_is_not_locked"] = "Dit document is niet geblokkeerd"; $text["document_link_by"] = "Linked by"; $text["document_link_public"] = "Publiek"; $text["document_moved_email"] = "Document verplaatst"; $text["document_renamed_email"] = "Document hernoemd"; $text["documents"] = "Documenten"; $text["documents_in_process"] = "Documenten in behandeling"; $text["documents_locked_by_you"] = "Documenten door U geblokkeerd"; $text["document_status_changed_email"] = "Document status gewijzigd"; $text["documents_to_approve"] = "Documenten die wachten op uw goedkeuring"; $text["documents_to_review"] = "Documenten die wachten op uw controle"; $text["documents_user_requiring_attention"] = "Eigen documenten die (nog) aandacht behoeven"; $text["document_title"] = "Document '[documentname]'"; $text["document_updated_email"] = "Document bijgewerkt"; $text["does_not_expire"] = "Verloopt niet"; $text["does_not_inherit_access_msg"] = "Erft toegang"; $text["download"] = "Download"; $text["draft_pending_approval"] = "Draft - in afwachting van goedkeuring"; $text["draft_pending_review"] = "Draft - in afwachting van controle"; $text["dump_creation"] = "DB dump aanmaken"; $text["dump_creation_warning"] = "M.b.v. deze functie maakt U een DB dump file. het bestand wordt opgeslagen in uw data-folder op de Server"; $text["dump_list"] = "Bestaande dump files"; $text["dump_remove"] = "Verwijder dump file"; $text["edit_comment"] = "Wijzig commentaar"; $text["edit_default_keyword_category"] = "Wijzig categorien"; $text["edit_document_access"] = "Wijzig toegang"; $text["edit_document_notify"] = "Document Notificatie Lijst"; $text["edit_document_props_again"] = "Wijzig document opnieuw"; $text["edit"] = "Wijzigen"; $text["edit_event"] = "Activiteit wijzigen"; $text["edit_existing_access"] = "Wijzig toegangslijst"; $text["edit_existing_notify"] = "Wijzig Notificatie lijst"; $text["edit_folder_access"] = "Wijzig toegang"; $text["edit_folder_notify"] = "Folder Notificatie Lijst"; $text["edit_folder_props_again"] = "Wijzig folder eigenschappen opnieuw"; $text["edit_group"] = "Wijzig Groep"; $text["edit_user_details"] = "Wijzig gebruiker Details"; $text["edit_user"] = "Wijzig gebruiker"; $text["email"] = "E-mail"; $text["email_footer"] = "U kunt altijd uw e-mail instellingen wijzigen via de 'Mijn Account' opties"; $text["email_header"] = "Dit is een automatisch gegeneerd bericht van de DMS server."; $text["empty_notify_list"] = "Geen gegevens"; $text["error_occured"] = "Er is een fout opgetreden"; $text["event_details"] = "Activiteit details"; $text["expired"] = "Verlopen"; $text["expires"] = "Verloopt"; $text["expiry_changed_email"] = "Verloop datum gewijzigd"; $text["february"] = "februari"; $text["file"] = "Bestand"; $text["files_deletion"] = "Bestanden verwijderen"; $text["files_deletion_warning"] = "Met deze handeling verwijdert U ALLE bestandenuit het DMS. Versie informatie blijft beschikbaar"; $text["files"] = "Bestanden"; $text["file_size"] = "Bestand omvang"; $text["folder_contents"] = "Folder Inhoud"; $text["folder_deleted_email"] = "Folder/map verwijderd"; $text["folder"] = "Folder/map"; $text["folder_infos"] = "Folder Eigenschappen"; $text["folder_moved_email"] = "Folder/map verplaatst"; $text["folder_renamed_email"] = "Folder/map hernoemd"; $text["folders_and_documents_statistic"] = "Content overzicht"; $text["folders"] = "Folders/maps"; $text["folder_title"] = "Folder/map naam '[foldername]'"; $text["friday"] = "Vrijdag"; $text["from"] = "Van"; $text["global_default_keywords"] = "Algemene sleutelwoorden"; $text["group_approval_summary"] = "Groep [Goedkeuring] samenvatting"; $text["group_exists"] = "Groep bestaat reeds."; $text["group"] = "Groep"; $text["group_management"] = "Groepen management"; $text["group_members"] = "Groep leden"; $text["group_review_summary"] = "Groep [Controle] samenvatting"; $text["groups"] = "Groepen"; $text["guest_login_disabled"] = "Gast login is uitgeschakeld."; $text["guest_login"] = "Login als Gast"; $text["help"] = "Help"; $text["human_readable"] = "Leesbaar Archief"; $text["include_documents"] = "Inclusief documenten"; $text["include_subdirectories"] = "Inclusief subfolders/-mappen"; $text["individuals"] = "Individuen"; $text["inherits_access_msg"] = "Toegang is (over/ge)erfd.."; $text["inherits_access_copy_msg"] = "Kopie lijst overerfde toegang"; $text["inherits_access_empty_msg"] = "Begin met lege toegangslijst"; $text["internal_error_exit"] = "Interne fout. Niet mogelijk om verzoek uit de voeren. Systeem stopt."; $text["internal_error"] = "Interne fout"; $text["invalid_access_mode"] = "Foutmelding: verkeerde toegangsmode"; $text["invalid_action"] = "Foutieve actie"; $text["invalid_approval_status"] = "Foutieve autorisatie status"; $text["invalid_create_date_end"] = "Foutieve eind-datum voor het maken van een periode."; $text["invalid_create_date_start"] = "Foutieve begin-datum voor het maken van een periode."; $text["invalid_doc_id"] = "Foutieve Document ID"; $text["invalid_file_id"] = "Foutieve Bestand ID"; $text["invalid_folder_id"] = "Foutieve Folder/Map ID"; $text["invalid_group_id"] = "Foutieve Groep ID"; $text["invalid_link_id"] = "Foutieve link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Foutieve Controle Status"; $text["invalid_sequence"] = "Foutieve volgorde waarde"; $text["invalid_status"] = "Foutieve Document Status"; $text["invalid_target_doc_id"] = "Foutieve Doel Document ID"; $text["invalid_target_folder"] = "Foutieve Doel Folder ID"; $text["invalid_user_id"] = "Foutieve Gebruiker ID"; $text["invalid_version"] = "Invalid Document Version"; $text["is_hidden"] = "Afschermen van Gebruikerslijst"; $text["january"] = "januari"; $text["js_no_approval_group"] = "Selecteer a.u.b. een Goedkeuring Groep"; $text["js_no_approval_status"] = "Selecteer a.u.b. een Goedkeuring Status"; $text["js_no_comment"] = "Er zijn geen commentaren"; $text["js_no_email"] = "Voer uw e-mail adres in"; $text["js_no_file"] = "Selecteer een bestand"; $text["js_no_keywords"] = "Specificeer een aantal sleutelwoorden"; $text["js_no_login"] = "Voer een Gebruikersnaam in"; $text["js_no_name"] = "Voer een naam in"; $text["js_no_override_status"] = "Selecteer de nieuwe [override] status"; $text["js_no_pwd"] = "U moet uw wachtwoord invoeren"; $text["js_no_query"] = "Voer een zoekvraag in"; $text["js_no_review_group"] = "Selecteer a.u.b. een Controleursgroep"; $text["js_no_review_status"] = "Selecteer a.u.b. een Controle status"; $text["js_pwd_not_conf"] = "Wachtwoord en bevestiging wachtwoord zijn niet identiek"; $text["js_select_user_or_group"] = "Selecteer tenminste een Gebruiker of Groep"; $text["js_select_user"] = "Selecteer een Gebruiker"; $text["july"] = "july"; $text["june"] = "juni"; $text["keyword_exists"] = "Sleuelwoord bestaat al"; $text["keywords"] = "Sleutelwoorden"; $text["language"] = "Talen"; $text["last_update"] = "Laatste Update"; $text["linked_documents"] = "Gerelateerde Documenten"; $text["linked_files"] = "Bijlagen"; $text["local_file"] = "Lokaal bestand"; $text["lock_document"] = "Blokkeer"; $text["lock_message"] = "Dit document is geblokkeerd door [username]. Alleen geautoriseerde Gebruikers kunnen het de-blokeren."; $text["lock_status"] = "Status"; $text["login_error_text"] = "Invoer fout: Gebruikersnaam en/of wachtwoord is fout."; $text["login_error_title"] = "Login fout"; $text["login_not_given"] = "Er is geen Gebruikersnaam ingevoerd"; $text["login_ok"] = "Login geslaagd"; $text["log_management"] = "Log files management"; $text["logout"] = "Log uit"; $text["manager"] = "Beheerder"; $text["march"] = "maart"; $text["max_upload_size"] = "Maximum upload omvang voor ieder bestand"; $text["may"] = "mei"; $text["monday"] = "Maandag"; $text["month_view"] = "Maand Overzicht"; $text["move_document"] = "Verplaats document"; $text["move_folder"] = "Verplaats Folder/map"; $text["move"] = "Verplaats"; $text["my_account"] = "Mijn Account"; $text["my_documents"] = "Mijn Documenten"; $text["name"] = "Naam"; $text["new_default_keyword_category"] = "Categorie Toevoegen"; $text["new_default_keywords"] = "Sleutelwoorden toevogen"; $text["new_document_email"] = "Nieuw document"; $text["new_file_email"] = "Nieuwe bijlage"; $text["new_folder"] = "New folder"; $text["new"] = "Nieuwe"; $text["new_subfolder_email"] = "Nieuwe folder/map"; $text["new_user_image"] = "Nieuwe afbeelding"; $text["no_action"] = "Geen actie nodig"; $text["no_approval_needed"] = "No approval pending."; $text["no_attached_files"] = "No attached files"; $text["no_default_keywords"] = "Geen Sleutelwoorden beschikbaar"; $text["no_docs_locked"] = "No documents locked."; $text["no_docs_to_approve"] = "Er zijn momenteel geen documenten die Goedkeuring behoeven."; $text["no_docs_to_look_at"] = "No documents that need attention."; $text["no_docs_to_review"] = "Er zijn momenteel geen documenten die Controle behoeeven."; $text["no_group_members"] = "Deze Groep heeft geen leden"; $text["no_groups"] = "Geen Groepen"; $text["no_linked_files"] = "No linked files"; $text["no"] = "Nee"; $text["no_previous_versions"] = "Geen andere versie(s) gevonden"; $text["no_review_needed"] = "No review pending."; $text["notify_added_email"] = "U bent toegevoegd aan de [notificatie lijst]"; $text["notify_deleted_email"] = "U bent verwijderd van de [notificatie lijst]"; $text["no_update_cause_locked"] = "U kunt daarom dit document niet bijwerken. Neem contact op met de persoon die het document heeft geblokkeerd."; $text["no_user_image"] = "Geen afbeelding(en) gevonden"; $text["november"] = "november"; $text["obsolete"] = "Overtollig"; $text["october"] = "oktober"; $text["old"] = "Oude"; $text["only_jpg_user_images"] = "U mag alleen .jpg afbeeldingen gebruiken als gebruikersafbeeldingen."; $text["owner"] = "Eigenaar"; $text["ownership_changed_email"] = "Eigenaar gewijzigd"; $text["password"] = "Wachtwoord"; $text["personal_default_keywords"] = "Persoonlijke sleutelwoorden"; $text["previous_versions"] = "Vorige versies"; $text["rejected"] = "Afgewezen"; $text["released"] = "Gepubliceerd"; $text["removed_approver"] = "is verwijderd van de lijst van [Goedkeurders]."; $text["removed_file_email"] = "Verwijderde bijlage"; $text["removed_reviewer"] = "is verwijderd van de lijst van [Controleurs]."; $text["results_page"] = "Resultaten pagina"; $text["review_deletion_email"] = "Controle verzoek gewijzigd"; $text["reviewer_already_assigned"] = "is reeds aangewezen als [Controleur]"; $text["reviewer_already_removed"] = "is reeds verwijderd van het [Controle] process of heeft reeds [Controle] uitgevoerd"; $text["reviewers"] = "[Controleurs]"; $text["review_group"] = "[Controle] Groep"; $text["review_request_email"] = "Controle verzoek"; $text["review_status"] = "[Controle] Status"; $text["review_submit_email"] = "Uitgevoerde [Controle]"; $text["review_summary"] = "[Controle] Samenvatting"; $text["review_update_failed"] = "Foutmelding: fout bij bijwerken [Controle] Status. Bijwerken mislukt."; $text["rm_default_keyword_category"] = "Verwijder Categorie"; $text["rm_document"] = "Verwijder Document"; $text["rm_file"] = "Verwijder bestand"; $text["rm_folder"] = "Verwijder folder/map"; $text["rm_group"] = "Verwijder deze Groep"; $text["rm_user"] = "Verwijder deze Gebruiker"; $text["rm_version"] = "Verwijder versie"; $text["role_admin"] = "Administrator"; $text["role_guest"] = "Guest"; $text["role"] = "Role"; $text["saturday"] = "Zaterdag"; $text["save"] = "Opslaan"; $text["search_in"] = "Zoek in"; $text["search_mode_and"] = "alle woorden"; $text["search_mode_or"] = "tenminste 1 woord"; $text["search_no_results"] = "Er zijn geen documenten gevonden die aan uw zoekvraag voldoen"; $text["search_query"] = "Zoeken naar"; $text["search_report"] = " [count] documenten gevonden"; $text["search_results_access_filtered"] = "Zoekresultaten kunnen content bevatten waar U geen toegang toe heeft."; $text["search_results"] = "Zoekresultaten"; $text["search"] = "Zoeken"; $text["search_time"] = "Verstreken tijd: [time] sec."; $text["selection"] = "Selectie"; $text["select_one"] = "Selecteer een"; $text["september"] = "september"; $text["seq_after"] = "Na \"[prevname]\""; $text["seq_end"] = "Op het einde"; $text["seq_keep"] = "Behoud Positie"; $text["seq_start"] = "Eerste positie"; $text["sequence"] = "Volgorde"; $text["set_expiry"] = "Set Verlopen"; $text["set_owner_error"] = "Error setting owner"; $text["set_owner"] = "Set Eigenaar"; $text["signed_in_as"] = "Ingelogd als:"; $text["sign_out"] = "Log uit"; $text["space_used_on_data_folder"] = "Gebruikte diskomvang in data folder"; $text["status_approval_rejected"] = "Draft Goedkeuring [Afgewezen]"; $text["status_approved"] = "Goedgekeurd"; $text["status_approver_removed"] = "[Goedkeurder] verwijderd van dit proces"; $text["status_not_approved"] = "Not goedgekeurd"; $text["status_not_reviewed"] = "Not gecontroleerd"; $text["status_reviewed"] = "Gecontroleerd"; $text["status_reviewer_rejected"] = "Draft Controle [Afgewezen]"; $text["status_reviewer_removed"] = "[Controleur] verwijderd van dit proces"; $text["status"] = "Status"; $text["status_unknown"] = "Onbekend"; $text["storage_size"] = "Omvang opslag"; $text["submit_approval"] = "Verzend [Goedkeuring]"; $text["submit_login"] = "Log in"; $text["submit_review"] = "Verzend [Controle]"; $text["sunday"] = "Zondag"; $text["theme"] = "Thema"; $text["thursday"] = "Donderdag"; $text["toggle_manager"] = "Wijzig Beheerder"; $text["to"] = "Aan"; $text["tuesday"] = "Dinsdag"; $text["under_folder"] = "In folder/map"; $text["unknown_command"] = "Opdracht niet herkend."; $text["unknown_group"] = "Onbekende Groep ID"; $text["unknown_id"] = "Onbekende id"; $text["unknown_keyword_category"] = "Onbekende sleutelwoord categorie"; $text["unknown_owner"] = "Onbekende eigenaar ID"; $text["unknown_user"] = "Onbekende gebruiker"; $text["unlock_cause_access_mode_all"] = "U kunt toch e.e.a. bijwerken omdat U machtiging \"all\" heeft. Blokkering wordt automatisch opgeheven."; $text["unlock_cause_locking_user"] = "U kunt toch e.e.a. bijwerken omdat U degene bent die dit heeft geblokeerd. Blokkering wordt automatisch opgeheven."; $text["unlock_document"] = "De-blokkeer"; $text["update_approvers"] = "Bijwerken lijst van [Goedkeurders]"; $text["update_document"] = "Bijwerken"; $text["update_info"] = "Bijwerken informatie"; $text["update_locked_msg"] = "Dit document is geblokkeerd."; $text["update_reviewers"] = "Bijwerken lijst van [Controleurs]"; $text["update"] = "Bijwerken"; $text["uploaded_by"] = "Ge-upload door"; $text["uploading_failed"] = "Upload misljukt. Neem contact op met de [Administrator]."; $text["use_default_keywords"] = "Gebruik bestaande sleutelwoorden"; $text["user_exists"] = "Gebruikers bestaat reeds."; $text["user_image"] = "Afbeelding"; $text["user_info"] = "Gebruikers informatie"; $text["user_list"] = "Lijst van Gebruikers"; $text["user_login"] = "Gebruikersnaam"; $text["user_management"] = "Gebruikers management"; $text["user_name"] = "Voornaam en naam"; $text["users"] = "Gebruikers"; $text["user"] = "Gebruiker"; $text["version_deleted_email"] = "Versie verwijderd"; $text["version_info"] = "Versie Informatie"; $text["versioning_file_creation"] = "Aanmaken bestand versies"; $text["versioning_file_creation_warning"] = "Met deze handeling maakt U een bestand aan die de versie voortgang informatie van een compleet DMS bevat. Na het aanmaken wordt ieder bestand opgelsagen in de document folder."; $text["versioning_info"] = "Versie eigenschappen"; $text["version"] = "Versie"; $text["view_online"] = "Bekijk online"; $text["warning"] = "Waarschuwing"; $text["wednesday"] = "Woensdag"; $text["week_view"] = "Week Overzicht"; $text["year_view"] = "Year Overzicht"; $text["yes"] = "Ja"; ?> letodms-3.3.11+dfsg.1/languages/Netherlands/help.htm0000644000175000017500000001562112040235120022675 0ustar franciscofrancisco

Algemeent

Een DMS (Document Management Systeem) is ontwikkeld om documenten te beheren, te delen, de workflow te controleren, toegang tot die documenten en de werkzaamheden m.b.t. de documenten te beheren.

Het eerste niveau van het menu geeft de gegbruiker toegang tot de informatie die is opgeslagen in het DMS:

  • Home: Geeft U de mogelijkheid om middels een mappenstructuur naar de bestanden te navigeren.
  • Mijn Documenten: Stelt U in staat om documenten, afhankelijk van hun status, te benaderen
    • Documenten die wachten op uw Controle: Lijst van documenten die U als functionaris moet controleren.
    • Documenten die wachten op uw goedkeuring: Lijst van documenten die U als functionaris moet goedkeuren.
    • Eigen documenten die (nog) aandacht behoeven: Lijst van al uw eigen documenten, die in behandeling zijn.

Het DMS bevat tevens een Kalender functie, die ook dienst kan doen als viritueel Bulleting Board, zodat U aantekeningen, deadlines en afspraken kunt delen.

Machtigingen

Gebruikers kunnen niet alleen op toegang worden geautoriseerd maar, kunnen ook machtigingen krijgen voor het controleren en goedkeuren van documenten.

Machtigingen niveaus

Het DMS kent de volgende machtigingen niveaus

  • Alle: De gebruiker kan alle opties uitvoeren (Admin)
  • Lees en schrijf rechten: De grbuiker kan records bijwerken en content toevoegen aan de mappen/folders.
  • Alleen lezen: De gebruiker kan Content en mappen/folders bekijken. Hij/zij kan ook bestanden uit het DMS downloaden.
  • Geen toegang: De gebruiker kan de documenten en/of de mappen/folders niet bekijken.

Standaard heeft de Administrator alle machtigingen over de aangemaakte mappen en documenten. De document eigenaar heeft alle machtigingen over zijn/haar documenten.

Alleen Administrators kunnen de eigenaar van een document wijzigen.

Machtigingen management

Ieder document of folder/map heeft separate machtigingen. Deze machtigingen werken d.m.v. twee systemen:

  • De standaard machtigingen worden gebruikt indien geen specifieke machtigingen zijn/worden ingesteld.
  • Een lijst van machtigingen stelt de eigenaar in staat om afwijkingen aan te geven van de standaard machtigingen.

Machtigingen erven

Machtigingen op folders/mappen en documenten kunnen worden ge-erf. Dit betekenf dat een folder/map dezelfde machtigingen heeft als zijn bovenliggende folder/map. Documenten erven standaard de machtigingen van de folder/map waarin zij zich bevinden.

Documenten workflow

Het systeem verwerkt automatisch de workflow van een document en slaat wijzigingen op. Het controleert en registreert ook de diverse versies, de commentaren, controles en autorisaties/goedkeuringen die op de documenten zijn toegepast/uitgevoerd.

Controle cycle

Na het uploaden van een document kan de eigenaar het workflow proces opstarten. Hij kan gebruikers en/of groepen aanwijzen die het document moeten controleren en/of goedkeuren. Dit kan eventueel leiden tot een nieuwe/gewijzigde versie van het oorspronkelijke document. Als het document door alle betrokkene is gecontroleerd/goedgekeurd, krijgt het document de status [Gepubliceerd].

De personen belast met het [Controleren] of [Goedkeuren] van een document kunnen een negatief advies/commentaar geven. In dat geval krijgt het document de status [Afgewezen].

Een document dat geen [Controle] of [Goedkeuring] behoeft krijgt meteen de status [Gepubliceerd].

[Controle] en/of [Goedkeuren] kan worden uitgevoerd door personen en/of groepen. In het laatste geval -door groepen- moet de [Controle] en/of [Goedkeuring] worden uitgevoerd door tenminste 1 lid van de aangegeven groep.

De eigenaar van een document kan op ieder gewenst moment de lijst van [Controleurs] en/of [Goedkeurders] aanpassen.

Documenten status

Possible states for a document are:

  • Draft - in afwachting van goedkeuring:
  • 1 of meer personen/groepen moeten het document nog [Goedkeuren].
  • Draft - in afwachting van controle:
  • 1 of meer personen/groepen moeten het document nog [Controleren].
  • Gepubliceerd: Het document -heeft een eventueel noodzakelijke workflow doorlopen en- is definitief.
  • Afgewezen: Het document is in zijn huidige vorm door 1 of meerdere [Controleurs] en/of [Goedkeurders] afgewezen.
  • Verlopen: De einddatum van een worklow is bereikt zonder dat het document definitief is goedgekeurd en [Gepubliceerd].
  • Overtollig: De status van het document kan worden gewijzigd in: [Overtollig]. Deze instelling is identiek aan het annuleren van een document. Annuleren is echter niet herroepbaar; [Overtollig] is dat wel.

Verlopen

Voor ieder document met een workflow, kan een einddatum voor die workflow worden vastgesteld. Na die einddatum kunnen geen wijzigingen, controles of goedkeuringen meer worden ingevoerd. Het document krijgt de status: [Verlopen].

De einddatum geldt alleen voor de laatste versie van het document en heeft alleen betrekking op het workflow proces.

Overige opties

Blokkeer functie

De [Blokkeer functie] is ontwikkeld om aan te geven dat een document in een workflow proces zit. Er kunnen op dat moment geen wijzigingen aan het document worden uitgevoerd. De eigenaar en gebruikers met de machtiging [Alle], kunnen de [Blokkeer functie] (tijdelijk) opheffen, zodat alsnog modificatie aan een document kunnen worden uitgevoerd.

Notificaties

Iedere gebruiker kan per map/folder en bestand een verzoek doen tot notificatie. Door de map/folder of het bestand toe te voegen aan de persoonlijke notificatielijst wordt de gebruiker (middels e-mail) gewaarschuwd over rapporten en wijzigingen in het document, de map/folder.

Alleen een [Manager] van een Groep kan besluiten om de Groep toe te voegen aan een notificatielijst. Met het toevoegen van de Groep krijgen alle leden van die groep automatisch notificaties toegezonden.

Sleutelwoorden en Zoeken

Ieder document kan worden voorzien van een beschrijving en/of sleutelwoorden. Deze toegevoegde informatie kan met behulp van de zoekoptie worden benaderd.

In het individueel menu van iedere gebruiker, kan de gebruiker sleutelwoorden invoeren gegroepeerd in categorien. Hiermee kan de gebruiker snel Sleutelwoorden toevoegen aan documenten.

De optie [Uitgebreid zoeken] wordt ingeschakeld door op de [Zoek]-knop drukt zonder een begrip/woord in te vullen.

Kalender

Er zijn drie weergave opties: per week, maand en jaar. De opties worden (per dag) weergegeven in volgorde waarin zij zijn ingevoerd.

Activiteiten die zijn ingevoerd zijn voor alle geautoriseerde gebruikers zichtbaar. Allen de eigenaar van de activiteit (de persoon die de activiteit heeft ingevoerd) of de Administrator kan de activiteit wijzigen.

letodms-3.3.11+dfsg.1/languages/Chinese_ZH_CN/0000755000175000017500000000000012040235120021316 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Chinese_ZH_CN/lang.inc0000644000175000017500000007676012040235120022752 0ustar franciscofrancisco警告:如果所创建文档名为非数字的,那么将在服务器备份中不可用";// "With this operation you can create achive containing the files of entire DMS folders. After the creation the archive will be saved in the data folder of your server.
WARNING: an archive created as human readable will be unusable as server backup.";@@@@@@@@@@ $text["assign_approvers"] = "指派审核人";// "Assign Approvers"; $text["assign_reviewers"] = "指派校对人";// "Assign Reviewers"; $text["assign_user_property_to"] = "分配用户属性给";// "Assign user's properties to"; $text["assumed_released"] = "假定发布";// "Assumed released"; $text["august"] = "八 月";// "August"; $text["automatic_status_update"] = "自动状态变化";// "Automatic status change";* $text["back"] = "返回";// "Go back"; $text["backup_list"] = "备份列表";// "Existings backup list"; $text["backup_remove"] = "删除备份";// "Remove backup file"; $text["backup_tools"] = "备份工具";// "Backup tools"; $text["between"] = "between"; $text["calendar"] = "日历";// "Calendar"; $text["cancel"] = "取消";// "Cancel"; $text["cannot_assign_invalid_state"] = "不能修改文档的最终状态";// "Cannot modify a document yet in final state"; $text["cannot_change_final_states"] = "警告:您不能更改文档的拒绝、过期、待校对、或是待审核等状态";// "Warning: You cannot alter status for document rejected, expired or with pending review or approval"; $text["cannot_delete_yourself"] = "不能删除自己";// "Cannot delete yourself"; $text["cannot_move_root"] = "错误:不能移动根目录";// "Error: Cannot move root folder."; $text["cannot_retrieve_approval_snapshot"] = "无法检索到该文件版本的审核快照.";// "Unable to retrieve approval status snapshot for this document version."; $text["cannot_retrieve_review_snapshot"] = "无法检索到该文件版本的校对快照.";// "Unable to retrieve review status snapshot for this document version."; $text["cannot_rm_root"] = "错误:不能删除根目录.";// "Error: Cannot delete root folder."; $text["change_assignments"] = "分配变更";// "Change Assignments"; $text["change_status"] = "变更状态";// "Change Status"; $text["choose_category"] = "请选择";// "Please choose"; $text["choose_group"] = "选择组别";// "Choose group"; $text["choose_target_document"] = "选择文档";// "Choose document"; $text["choose_target_folder"] = "选择文件夹";// "Choose folder"; $text["choose_user"] = "选择用户";// "Choose user"; $text["comment_changed_email"] = "评论已更改";// "Comment changed"; $text["comment"] = "说明";// "Comment"; $text["comment_for_current_version"] = "版本说明";// "Version comment"; $text["confirm_pwd"] = "确认密码";// "Confirm Password"; $text["confirm_rm_backup"] = "您确定要删除\"[arkname]\"备份文档?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_document"] = "您确定要删除\"[documentname]\"文档?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_dump"] = "您确定要删除\"[dumpname]\"转储文件?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_event"] = "您确定要删除\"[name]\"事件?
请注意:此动作执行后不能撤销.";// "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_file"] = "您确定要删除\"[documentname]\"文档中的\"[name]\"文件 ?
请注意:此动作执行后不能撤销.";// "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_folder"] = "您确定要删除\"[foldername]\"文件夹 及其内文件?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the folder \"[foldername]\" and its content?
Be careful: This action cannot be undone."; $text["confirm_rm_folder_files"] = "您确定要删除\"[foldername]\" 中所有文件及其子文件夹?
请注意:此动作执行后不能撤销.";// "Do you really want to remove all the files of the folder \"[foldername]\" and of its subfolders?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "您确定要删除\"[groupname]\"组?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_log"] = "您确定要删除\"[logname]\"日志文件?
请注意:此动作执行后不能撤销.";// "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "您确定要删除\"[username]\"用户?
请注意:此动作执行后不能撤销.";// "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_version"] = "您确定要删除\"[documentname]\文档的[version]版本文件?
请注意:此动作执行后不能撤销.";// "Do you really want to remove version [version] of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["content"] = "内容";// "Content"; $text["continue"] = "继续";// "Continue"; $text["creation_date"] = "创建日期";// "Created"; $text["current_version"] = "当前版本";// "Current version"; $text["december"] = "十二月";// "December"; $text["default_access"] = "缺省访问模式";// "Default Access Mode"; $text["default_keywords"] = "可用关键字";// "Available keywords"; $text["delete"] = "删除";// "Delete"; $text["details"] = "详细情况";// "Details"; $text["details_version"] = "版本详情:[version]";// "Details for version: [version]"; $text["disclaimer"] ="警告:这是机密区.只有授权用户才被允许访问.任何违反行为将受到法律制裁";// "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the national and international laws."; $text["document_already_locked"] = "该文档已被锁定";// "This document is aleady locked"; $text["document_deleted"] = "删除文档";// "Document deleted"; $text["document_deleted_email"] = "文档已被删除";// "Document deleted"; $text["document"] = "文档";// "Document"; $text["document_infos"] = "文档信息";// "Document Information"; $text["document_is_not_locked"] = "该文档没有被锁定";// "This document is not locked"; $text["document_link_by"] = "链接";// "Linked by"; $text["document_link_public"] = "公开";// "Public"; $text["document_moved_email"] = "文档已被移动";// "Document moved"; $text["document_renamed_email"] = "文档已被重命名";// "Document renamed"; $text["documents"] = "文档";// "Documents"; $text["documents_in_process"] = "待处理文档";// "Documents In Process"; $text["documents_locked_by_you"] = "被您锁定的文档";// "Documents locked by you"; $text["document_status_changed_email"] = "文档状态已被更改";// "Document status changed"; $text["documents_to_approve"] = "待您审核的文档";// "Documents awaiting your approval"; $text["documents_to_review"] = "待您校对的文档";// "Documents awaiting your Review"; $text["documents_user_requiring_attention"] = "需您关注的文档";// "Documents owned by you that require attention"; $text["document_title"] = "文档名称 '[documentname]'";// "Document '[documentname]'"; $text["document_updated_email"] = "文档已被更新";// "Document updated"; $text["does_not_expire"] = "永不过期";// "Does not expire"; $text["does_not_inherit_access_msg"] = "继承访问权限";// "Inherit access"; $text["download"] = "下载";// "Download"; $text["draft_pending_approval"] = "待审核";// "Draft - pending approval"; $text["draft_pending_review"] = "待校对";// "Draft - pending review"; $text["dump_creation"] = "转储数据";// "DB dump creation"; $text["dump_creation_warning"] = "通过此操作,您可以创建一个您数据库的转储文件,之后可以将转储数据保存到您服务器所在的数据文件夹中";// "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "存在转储文件";// "Existings dump files"; $text["dump_remove"] = "删除转储文件";// "Remove dump file";转储文件:内存镜像 $text["edit_comment"] = "编辑说明";// "Edit comment"; $text["edit_default_keywords"] = "编辑关键字";// "Edit keywords"; $text["edit_document_access"] = "编辑访问权限";// "Edit Access"; $text["edit_document_notify"] = "文档通知列表";// "Document Notification List"; $text["edit_document_props"] = "编辑文档";// "Edit document"; $text["edit"] = "编辑";// "Edit"; $text["edit_event"] = "编辑事件";// "Edit event"; $text["edit_existing_access"] = "编辑访问列表";// "Edit Access List"; $text["edit_existing_notify"] = "编辑通知列表";// "Edit notification list"; $text["edit_folder_access"] = "编辑访问权限";// "Edit access"; $text["edit_folder_notify"] = "文件夹通知列表";// "Folder Notification List"; $text["edit_folder_props"] = "编辑文件夹";// "Edit folder"; $text["edit_group"] = "编辑组别";// "Edit group"; $text["edit_user_details"] = "编辑用户详情";// "Edit User Details"; $text["edit_user"] = "编辑用户";// "Edit user"; $text["email"] = "Email"; $text["email_footer"] = "您可以用‘我的账户’选项来改变您的e-mail设置";// "You can always change your e-mail settings using 'My Account' functions"; $text["email_header"] = "这是来自于DMS(文档管理系统)的自动发送消息";// "This is an automatic message from the DMS server."; $text["empty_notify_list"] = "没有条目";// "No entries"; $text["error_no_document_selected"] = "请选择文档";// "No document selected"; $text["error_no_folder_selected"] = "请选择文件夹";// "No folder selected"; $text["error_occured"] = "出错";// "An error has occured"; $text["event_details"] = "错误详情";// "Event details"; $text["expired"] = "过期";// "Expired"; $text["expires"] = "有效限期";// "Expires";@@@@@@ $text["expiry_changed_email"] = "到期日子已改变";// "Expiry date changed"; $text["february"] = "二 月";// "February"; $text["file"] = "文件";// "File"; $text["files_deletion"] = "删除文件";// "Files deletion"; $text["files_deletion_warning"] = "通过此操作,您可以删除整个DMS(文档管理系统)文件夹里的所有文件.但版本信息将被保留";// "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["files"] = "文件";// "Files"; $text["file_size"] = "文件大小";// "Filesize"; $text["folder_contents"] = "文件夹内容";// "Folder Contents"; $text["folder_deleted_email"] = "文件夹已被删除";// "Folder deleted"; $text["folder"] = "文件夹";// "Folder"; $text["folder_infos"] = "文件夹信息";// "Folder Information"; $text["folder_moved_email"] = "文件夹已被移动";// "Folder moved"; $text["folder_renamed_email"] = "文件夹已被重命名";// "Folder renamed"; $text["folders_and_documents_statistic"] = "内容概要";// "Contents overview"; $text["folders"] = "文件夹";// "Folders"; $text["folder_title"] = "文件夹 '[foldername]'";// "Folder '[foldername]'"; $text["friday"] = "Friday"; $text["from"] = "从";//"From"; $text["global_default_keywords"] = "全局关键字";// "Global keywords"; $text["group_approval_summary"] = "审核组汇总";// "Group approval summary"; $text["group_exists"] = "组已存在";// "Group already exists."; $text["group"] = "组别";// "Group"; $text["group_management"] = "组管理";// "Groups management"; $text["group_members"] = "组成员";// "Group members"; $text["group_review_summary"] = "校对组汇总";// "Group review summary"; $text["groups"] = "组别";// "Groups"; $text["guest_login_disabled"] = "来宾登录被禁止";// "Guest login is disabled."; $text["guest_login"] = "来宾登录";// "Login as guest"; $text["help"] = "帮助";// "Help"; $text["human_readable"] = "可读存档";// "Human readable archive"; $text["include_documents"] = "包含文档";// "Include documents"; $text["include_subdirectories"] = "包含子目录";// "Include subdirectories"; $text["individuals"] = "个人";// "Individuals"; $text["inherits_access_msg"] = "继承访问权限";//"Access is being inherited.

Copy inherited access list
Start with empty access list"; $text["inherits_access_copy_msg"] = "复制继承访问权限列表"; $text["inherits_access_empty_msg"] = "从访问权限空列表开始"; $text["internal_error_exit"] = "内部错误.无法完成请求.离开系统";// "Internal error. Unable to complete request. Exiting."; $text["internal_error"] = "内部错误";// "Internal error"; $text["invalid_access_mode"] = "无效访问模式";// "Invalid Access Mode"; $text["invalid_action"] = "无效动作";// "Invalid Action"; $text["invalid_approval_status"] = "无效审核状态";// "Invalid Approval Status"; $text["invalid_create_date_end"] = "无效截止日期,不在创建日期范围内";// "Invalid end date for creation date range."; $text["invalid_create_date_start"] = "无效开始日期,不在创建日期范围内";// "Invalid start date for creation date range."; $text["invalid_doc_id"] = "无效文档ID号";// "Invalid Document ID"; $text["invalid_file_id"] = "无效文件ID号";// "Invalid file ID"; $text["invalid_folder_id"] = "无效文件夹ID号";// "Invalid Folder ID"; $text["invalid_group_id"] = "无效组别ID号";// "Invalid Group ID"; $text["invalid_link_id"] = "无效链接标示";// "Invalid link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "无效校对状态";// "Invalid Review Status"; $text["invalid_sequence"] = "无效序列值";// "Invalid sequence value"; $text["invalid_status"] = "无效文档状态";// "Invalid Document Status"; $text["invalid_target_doc_id"] = "无效目标文档ID号";// "Invalid Target Document ID"; $text["invalid_target_folder"] = "无效目标文件夹ID号";// "Invalid Target Folder ID"; $text["invalid_user_id"] = "无效用户ID号";// "Invalid User ID"; $text["invalid_version"] = "无效文档版本";// "Invalid Document Version"; $text["is_hidden"] = "从用户列表中隐藏";// "Hide from users list"; $text["january"] = "一 月";// "January"; $text["js_no_approval_group"] = "请选择审核组";// "Please select a approval group"; $text["js_no_approval_status"] = "请选择审核状态";// "Please select the approval status"; $text["js_no_comment"] = "没有添加说明";// "There is no comment"; $text["js_no_email"] = "输入您的e-mail";// "Type in your Email-address"; $text["js_no_file"] = "请选择一个文件";// "Please select a file"; $text["js_no_keywords"] = "指定关键字";// "Specify some keywords"; $text["js_no_login"] = "输入用户名";// "Please type in a username"; $text["js_no_name"] = "请输入名称";// "Please type in a name"; $text["js_no_override_status"] = "请选择一个新的[override]状态";// "Please select the new [override] status"; $text["js_no_pwd"] = "您需要输入您的密码";// "You need to type in your password"; $text["js_no_query"] = "输入查询";// "Type in a query"; $text["js_no_review_group"] = "请选择一个校对组";// "Please select a review group"; $text["js_no_review_status"] = "请选择校对状态";// "Please select the review status"; $text["js_pwd_not_conf"] = "密码与确认密码不一致";// "Password and passwords-confirmation are not equal"; $text["js_select_user_or_group"] = "选择至少一个用户或一个组";// "Select at least a user or a group"; $text["js_select_user"] = "请选择一个用户";// "Please select an user"; $text["july"] = "七 月";// "July"; $text["june"] = "六 月";// "June"; $text["keyword_exists"] = "关键字已存在";// "Keyword already exists"; $text["keywords"] = "关键字";// "Keywords"; $text["language"] = "语言";// "Language"; $text["last_update"] = "上次更新";// "Last Update"; $text["linked_documents"] = "相关文档";// "Related Documents"; $text["linked_files"] = "附件";// "Attachments"; $text["local_file"] = "本地文件";// "Local file"; $text["lock_document"] = "锁定";// "Lock"; $text["lock_message"] = "此文档已被 [username]锁定. 只有授权用户才能解锁."; //"This document is locked by [username]. Only authorized users can unlock this document."; $text["lock_status"] = "锁定状态";// "Status"; $text["login_error_text"] = "登录错误.用户名或密码不正确";// "Error signing in. User ID or password incorrect."; $text["login_error_title"] = "登录错误";// "Sign in error"; $text["login_not_given"] = "缺少用户名";// "No username has been supplied";@@ $text["login_ok"] = "登录成功";// "Sign in successful"; $text["log_management"] = "日志管理";// "Log files management"; $text["logout"] = "登出";// "Logout"; $text["manager"] = "管理员";// "Manager";@@ $text["march"] = "三 月";// "March"; $text["max_upload_size"] = "最大上传文件大小";// "Maximum upload size"; $text["may"] = "五 月";// "May"; $text["monday"] = "Monday"; $text["month_view"] = "月视图";// "Month view"; $text["move_document"] = "移动文档";// "Move document"; $text["move_folder"] = "移动文件夹";// "Move Folder"; $text["move"] = "移动";// "Move"; $text["my_account"] = "我的账户";// "My Account"; $text["my_documents"] = "我的文档";// "My Documents"; $text["name"] = "名称";// "Name";@@ $text["new_default_keyword_category"] = "添加类别";// "Add category"; $text["new_default_keywords"] = "添加关键字";// "Add keywords"; $text["new_document_email"] = "添加新文档";// "New document"; $text["new_file_email"] = "添加新附件";// "New attachment"; $text["new_folder"] = "新建文件夹";// "New folder"; $text["new"] = "New"; @@@@ $text["new_subfolder_email"] = "创建新文件夹";// "New folder"; $text["new_user_image"] = "新建图片";// "New image"; $text["no_action"] = "无动作请求";// "No action required"; $text["no_approval_needed"] = "无待审核的文件";// "No approval pending."; $text["no_attached_files"] = "无附件";// "No attached files"; $text["no_default_keywords"] = "无关键字";// "No keywords available"; $text["no_docs_locked"] = "无锁定的文档";// "No documents locked."; $text["no_docs_to_approve"] = "当前没有需要审核的文档";// "There are currently no documents that require approval."; $text["no_docs_to_look_at"] = "没有需要关注的文档";// "No documents that need attention."; $text["no_docs_to_review"] = "当前没有需要校对的文档";// "There are currently no documents that require review."; $text["no_group_members"] = "该组没有成员";// "This group has no members"; $text["no_groups"] = "无组别";// "No groups"; $text["no_linked_files"] = "无链接文件";// "No linked files"; $text["no"] = "否";//"No"; $text["no_previous_versions"] = "无其它版本";// "No other versions found"; $text["no_review_needed"] = "无待校对的文件";// "No review pending."; $text["notify_added_email"] = "您已被添加到了通知名单中";// "You've been added to notify list"; $text["notify_deleted_email"] = "您已经从通知名单中删除";// "You've been removed from notify list"; $text["no_update_cause_locked"] = "您不能更新此文档,请联系该文档锁定人";// "You can therefore not update this document. Please contanct the locking user."; $text["no_user_image"] = "无图片";// "No image found"; $text["november"] = "十一月";// "November"; $text["obsolete"] = "Obsolete";@@ $text["october"] = "十 月";// "October"; $text["old"] = "Old";//@@ $text["only_jpg_user_images"] = "只用jpg格式的图片才可以作为用户身份图片";// "Only .jpg-images may be used as user-images"; $text["owner"] = "所有者";// "Owner"; $text["ownership_changed_email"] = "所有者已变更";// "Owner changed"; $text["password"] = "密码";// "Password"; $text["personal_default_keywords"] = "用户关键字";// "Personal keywords";@@ $text["previous_versions"] = "先前版本";// "Previous Versions"; $text["rejected"] = "拒绝";// "Rejected"; $text["released"] = "发布";// "Released"; $text["removed_approver"] = "已经从审核人名单中删除";// "has been removed from the list of approvers."; $text["removed_file_email"] = "删除附件";// "Removed attachment"; $text["removed_reviewer"] = "已经从校对人名单中删除";// "has been removed from the list of reviewers."; $text["results_page"] = "结果页面";// "Results Page"; $text["review_deletion_email"] = "校对请求被删除";// "Review request deleted"; $text["reviewer_already_assigned"] = "已经被指派为校对人";// "is already assigned as a reviewer"; $text["reviewer_already_removed"] = "已经从校对队列中删除或者已经提交校对";// "has already been removed from review process or has already submitted a review"; $text["reviewers"] = "校对人";// "Reviewers"; $text["review_group"] = "校对组";// "Review Group"; $text["review_request_email"] = "校对请求";// "Review request"; $text["review_status"] = "校对状态";// "Review Status"; $text["review_submit_email"] = "提交校对";// "Submitted review"; $text["review_summary"] = "校对汇总";// "Review Summary"; $text["review_update_failed"] = "错误 更新校对状态.更新失败";// "Error updating review status. Update failed."; $text["rm_default_keyword_category"] = "删除类别";// "Delete category"; $text["rm_document"] = "删除文档";// "Remove document"; $text["rm_file"] = "删除文件";// "Remove file"; $text["rm_folder"] = "删除文件夹";// "Remove folder"; $text["rm_group"] = "删除该组";// "Remove this group"; $text["rm_user"] = "删除该用户";// "Remove this user"; $text["rm_version"] = "删除该版本";// "Remove version"; $text["role_admin"] = "管理员";// "Administrator"; $text["role_guest"] = "来宾";// "Guest"; $text["role_user"] = "用户";// "User"; $text["role"] = "角色";// "Role"; $text["saturday"] = "Saturday"; $text["save"] = "保存";// "Save"; $text["search_in"] = "搜索于";// "Search in"; $text["search_mode_and"] = "与模式";// "all words"; $text["search_mode_or"] = "或模式";// "at least one word"; $text["search_no_results"] = "没有找到与您搜索添加相匹配的文件";// "There are no documents that match your search"; $text["search_query"] = "搜索";// "Search for"; $text["search_report"] = "找到 [count] 个文档";// "Found [count] documents"; $text["search_results_access_filtered"] = "搜索到得结果中可能包含受限访问的文档";// "Search results may contain content to which access has been denied."; $text["search_results"] = "搜索结果";// "Search results"; $text["search"] = "搜索";// "Search"; $text["search_time"] = "耗时:[time]秒";// "Elapsed time: [time] sec."; $text["selection"] = "选择";// "Selection"; $text["select_one"] = "选择一个";// "Select one"; $text["september"] = "九 月";// "September"; $text["seq_after"] = "在\"[prevname]\"之后";// "After \"[prevname]\""; $text["seq_end"] = "末尾";// "At the end"; $text["seq_keep"] = "当前";// "Keep Position";@@@@ $text["seq_start"] = "首位";// "First position"; $text["sequence"] = "次序";// "Sequence"; $text["set_expiry"] = "设置截止日期";// "Set Expiry"; $text["set_owner_error"] = "错误 设置所有者";// "Error setting owner"; $text["set_owner"] = "设置所有者";// "Set Owner"; $text["signed_in_as"] = "登录为";// "Signed in as"; $text["sign_out"] = "登出";// "sign out"; $text["space_used_on_data_folder"] = "数据文件夹使用空间";// "Space used on data folder";@@ $text["status_approval_rejected"] = "拟拒绝";// "Draft rejected"; $text["status_approved"] = "批准";// "Approved"; $text["status_approver_removed"] = "从审核队列中删除";// "Approver removed from process"; $text["status_not_approved"] = "未批准";// "Not approved"; $text["status_not_reviewed"] = "未校对";// "Not reviewed"; $text["status_reviewed"] = "通过";// "Reviewed"; $text["status_reviewer_rejected"] = "拟拒绝";// "Draft rejected"; $text["status_reviewer_removed"] = "从校对队列中删除";// "Reviewer removed from process"; $text["status"] = "状态";// "Status"; $text["status_unknown"] = "未知";// "Unknown"; $text["storage_size"] = "存储大小";// "Storage size"; $text["submit_approval"] = "提交审核";// "Submit approval"; $text["submit_login"] = "登录";// "Sign in"; $text["submit_review"] = "提交校对";// "Submit review"; $text["sunday"] = "Sunday"; $text["theme"] = "主题";// "Theme"; $text["thursday"] = "Thursday"; $text["toggle_manager"] = "角色切换";// "Toggle manager";@@ $text["to"] = "到";//"To"; $text["tuesday"] = "Tuesday"; $text["under_folder"] = "文件夹内";// "In folder"; $text["unknown_command"] = "未知命令";// "Command not recognized."; $text["unknown_group"] = "未知组ID号";// "Unknown group id"; $text["unknown_id"] = "未知ID号";// "unknown id"; $text["unknown_keyword_category"] = "未知类别";// "Unknown category"; $text["unknown_owner"] = "未知所有者ID号";// "Unknown owner id"; $text["unknown_user"] = "未知用户ID号";// "Unknown user id"; $text["unlock_cause_access_mode_all"] = "您仍然可以更新,因为您有拥有所有权限\"all\". 锁定状态被自动解除.";// "You can still update it because you have access-mode \"all\". Locking will automatically be removed."; $text["unlock_cause_locking_user"] = "您仍然可以更新,因为是您锁定了该文件. 锁定状态被自动解除.";// "You can still update it because you are also the one that locked it. Locking will automatically be removed.";@@ $text["unlock_document"] = "解锁";// "Unlock"; $text["update_approvers"] = "更新审核人名单";// "Update List of Approvers"; $text["update_document"] = "更新";// "Update"; $text["update_info"] = "更新信息";// "Update Information"; $text["update_locked_msg"] = "该文档被锁定";// "This document is locked."; $text["update_reviewers"] = "更新校对人名单";// "Update List of Reviewers"; $text["update"] = "更新";// "Update"; $text["uploaded_by"] = "上传者";// "Uploaded by";@@ $text["uploading_failed"] = "上传失败.请联系管理员";// "Upload failed. Please contact the administrator."; $text["use_default_keywords"] = "使用预定义关键字";// "Use predefined keywords"; $text["user_exists"] = "用户已存在";// "User already exists."; $text["user_image"] = "用户图片";// "Image";@@ $text["user_info"] = "用户信息";// "User Information"; $text["user_list"] = "用户列表";// "List of Users"; $text["user_login"] = "用户ID";// "User ID"; $text["user_management"] = "用户管理";// "Users management"; $text["user_name"] = "全名";// "Full name"; $text["users"] = "用户";// "Users"; $text["user"] = "用户";// "User"; $text["version_deleted_email"] = "版本已被删除";// "Version deleted"; $text["version_info"] = "版本信息";// "Version Information"; $text["versioning_file_creation"] = "创建版本文件";// "Versioning file creation";@@ $text["versioning_file_creation_warning"] = "通过此操作,您可以一个包含整个DMS文件夹的版本信息文件. 版本文件一经创建,每个文件都将保存到文件夹中.";// "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder.";@@ $text["versioning_info"] = "版本信息";// "Versioning info"; $text["version"] = "版本";// "Version"; $text["view_online"] = "在线浏览";// "View online"; $text["warning"] = "警告";// "Warning"; $text["wednesday"] = "Wednesday"; $text["week_view"] = "周视图";// "Week view"; $text["year_view"] = "年视图";// "Year View"; $text["yes"] = "是";// "Yes"; ?> letodms-3.3.11+dfsg.1/languages/Chinese_ZH_CN/help.htm0000644000175000017500000000002412040235120022754 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Slovak/0000755000175000017500000000000012040235120020216 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Slovak/lang.inc0000644000175000017500000005653712040235120021652 0ustar franciscofranciscoUPOZORNENIE: uživateľsky prístupný archív nie je možné použiť ako zálohu servera."; $text["assign_approvers"] = "Určiť schvaľovateľov"; $text["assign_reviewers"] = "Určiť recenzentov"; $text["assign_user_property_to"] = "Assign user's properties to"; $text["assumed_released"] = "Pokladá sa za zverejnené"; $text["august"] = "August"; $text["automatic_status_update"] = "Automaticka zmena stavu"; $text["back"] = "Prejsť späť"; $text["backup_list"] = "Zoznam záloh"; $text["backup_remove"] = "Odstrániť zálohu"; $text["backup_tools"] = "Zálohovacie nástroje"; $text["between"] = "medzi"; $text["calendar"] = "Kalendár"; $text["cancel"] = "Zrušiť"; $text["cannot_assign_invalid_state"] = "Nie je možné prideliť schvaľovateľov dokumentu, ktorý nečaká na kontrolu alebo schválenie."; $text["cannot_change_final_states"] = "Upozornenie: Nebolo možné zmeniť stav dokumentov, ktoré boli odmietnuté, označené ako zastaralé alebo platnosť vypršala."; //$text["cannot_delete_yourself"] = "Cannot delete yourself"; $text["cannot_move_root"] = "Chyba: Nie je možné presunúť koreňovú zložku."; $text["cannot_retrieve_approval_snapshot"] = "Nie je možné získať informáciu o stave schválenia tejto verzie dokumentu."; $text["cannot_retrieve_review_snapshot"] = "Nie je možné získať informáciu o stave kontroly tejto verzie dokumentu."; $text["cannot_rm_root"] = "Chyba: Nie je možné zmazať koreňovú zložku."; $text["change_assignments"] = "Zmeniť úlohy"; $text["change_status"] = "Zmeniť stav"; $text["choose_category"] = "--Vyberte prosím--"; $text["choose_group"] = "--Vyberte skupinu--"; $text["choose_target_document"] = "Vyberte dokument"; $text["choose_target_folder"] = "Vyberte cieľovú zložku"; $text["choose_user"] = "--Vyberte používateľa--"; $text["comment_changed_email"] = "Komentar zmeneny"; $text["comment"] = "Komentár"; $text["comment_for_current_version"] = "Version comment"; $text["confirm_pwd"] = "Potvrdenie hesla"; $text["confirm_rm_backup"] = "Skutočne si prajete odstrániť zálohu \"[arkname]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_document"] = "Naozaj chcete odstrániť dokument \"[documentname]\"?
Buďte opatrní: Túto činnosť nemožno vrátiť späť."; $text["confirm_rm_dump"] = "Skutočne si prajete odstrániť \"[dumpname]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_event"] = "Skutočne si prajete odstrániť udalosť \"[name]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_file"] = "Skutočne si prajete odstrániť súbor \"[name]\" z dokumentu \"[documentname]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_folder"] = "Naozaj chcete odstrániť \"[foldername]\" a jeho obsah?
Buďte opatrní: Túto činnosť nemožno vrátiť späť."; $text["confirm_rm_folder_files"] = "Skutočne si prajete odstrániť všetky súbory zložky \"[foldername]\" a všetkých jej podzložiek?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_group"] = "Skutočne si prajete odstrániť skupinu \"[groupname]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_log"] = "Skutočne si prajete zmazať protokol \"[logname]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_user"] = "Skutočne si prajete odstrániť používateľa \"[username]\"?
Buďte opatrní, táto akcia je nezvratná."; $text["confirm_rm_version"] = "Naozaj chcete odstrániť verziu [version] dokumentu \"[documentname]\"?
Buďte opatrní: Túto činnosť nemožno vrátiť späť."; $text["content"] = "Obsah"; $text["continue"] = "Pokračovať"; $text["creation_date"] = "Vytvorené"; $text["current_version"] = "Aktuálna verzia"; $text["december"] = "December"; $text["default_access"] = "Štandardný režim prístupu"; $text["default_keywords"] = "Dostupné kľúčové slová"; $text["delete"] = "Zmazať"; $text["details"] = "Podrobnosti"; $text["details_version"] = "Podrobnosti verzie: [version]"; $text["disclaimer"] = "Toto je zabezpečená zóna. Prístup je povolený len autorizovaným osobám."; $text["document_already_locked"] = "Tento dokument je už zamknutý"; $text["document_deleted"] = "Dokument zmazaný"; $text["document_deleted_email"] = "Dokument zmazany"; $text["document"] = "Dokument"; $text["document_infos"] = "Informácie o dokumente"; $text["document_is_not_locked"] = "Tento dokument nie je zamknutý"; $text["document_link_by"] = "Odkazuje sem"; $text["document_link_public"] = "Verejný"; $text["document_moved_email"] = "Dokument presunuty"; $text["document_renamed_email"] = "Dokument premenovany"; $text["documents"] = "Dokumenty"; $text["documents_in_process"] = "Dokumenty v spracovaní"; $text["documents_locked_by_you"] = "Vami uzamknuté dokumenty"; $text["document_status_changed_email"] = "Stav dokumentu zmeneny"; $text["documents_to_approve"] = "Dokumenty čakajúce na schválenie používateľa"; $text["documents_to_review"] = "Dokumenty čakajúce na kontrolu používateľa"; $text["documents_user_requiring_attention"] = "Dokumenty, ktoré používateľ vlastní a vyžadujú pozornosť"; $text["document_title"] = "Dokument '[documentname]'"; $text["document_updated_email"] = "Dokument aktualizovany"; $text["does_not_expire"] = "Platnosť nikdy nevyprší"; $text["does_not_inherit_access_msg"] = "Zdediť prístup"; $text["download"] = "Stiahnuť"; $text["draft_pending_approval"] = "Návrh - čaká na schválenie"; $text["draft_pending_review"] = "Návrh - čaká na kontrolu"; $text["dump_creation"] = "Vytvorenie výstupu DB"; $text["dump_creation_warning"] = "Touto akciou môžete vytvoriť výstup obsahu Vašej databázy. Po vytvorení bude výstup uložený v dátovej zložke vášho servera."; $text["dump_list"] = "Existujúce výstupy"; $text["dump_remove"] = "Odstrániť vystup"; $text["edit_comment"] = "Upraviť komentár"; $text["edit_default_keyword_category"] = "Upraviť kategórie"; $text["edit_document_access"] = "Upraviť prístup"; $text["edit_document_notify"] = "Zoznam upozornení"; $text["edit_document_props"] = "Upraviť dokument"; $text["edit"] = "upraviť"; $text["edit_event"] = "Upraviť udalosť"; $text["edit_existing_access"] = "Upraviť zoznam riadenia prístupu"; $text["edit_existing_notify"] = "Upraviť zoznam upozornení"; $text["edit_folder_access"] = "Upraviť prístup"; $text["edit_folder_notify"] = "Zoznam upozornení"; $text["edit_folder_props_again"] = "Znova upraviť vlastnosti zložky"; $text["edit_group"] = "Upraviť skupinu"; $text["edit_user_details"] = "Upraviť podrobnosti používateľa"; $text["edit_user"] = "Upraviť používateľa"; $text["email"] = "Email"; $text["email_footer"] = "Nastavenia e-mailu si kedykoľvek môžete zmeniť cez 'Môj účet'"; $text["email_header"] = "Toto je automatická správa od DMS servera."; $text["empty_notify_list"] = "Žiadne položky"; $text["error_occured"] = "Vyskytla sa chyba"; $text["event_details"] = "Detail udalosti"; $text["expired"] = "Platnosť vypršala"; $text["expires"] = "Platnosť vyprší"; $text["expiry_changed_email"] = "Datum platnosti zmeneny"; $text["february"] = "Február"; $text["file"] = "Súbor"; $text["files_deletion"] = "Odstránenie súboru"; $text["files_deletion_warning"] = "Touto akciou môžete odstrániť celú DMS zložku. Verziovacie informácie zostanú viditeľné."; $text["files"] = "Súbory"; $text["file_size"] = "Veľkosť súboru"; $text["folder_contents"] = "Obsah zložky"; $text["folder_deleted_email"] = "Zlozka zmazana"; $text["folder"] = "Zlozka"; $text["folder_infos"] = "Informácie o zložke"; $text["folder_moved_email"] = "Zlozka presunuta"; $text["folder_renamed_email"] = "Zlozka premenovana"; $text["folders_and_documents_statistic"] = "Prehľad zložiek a dokumentov"; $text["folders"] = "Zložky"; $text["folder_title"] = "Zložka '[foldername]'"; $text["friday"] = "Piatok"; $text["from"] = "Od"; $text["global_default_keywords"] = "Globálne kľúčové slová"; $text["group_approval_summary"] = "Zhrnutie skupinového schválenia"; $text["group_exists"] = "Skupina už existuje."; $text["group"] = "Skupina"; $text["group_management"] = "Skupiny"; $text["group_members"] = "Členovia skupiny"; $text["group_review_summary"] = "Zhrnutie skupinovej recenzie"; $text["groups"] = "Skupiny"; $text["guest_login_disabled"] = "Prihlásenie ako hosť je vypnuté."; $text["guest_login"] = "Prihlásiť sa ako hosť"; $text["help"] = "Pomoc"; $text["human_readable"] = "Použivateľský archív"; $text["include_documents"] = "Vrátane súborov"; $text["include_subdirectories"] = "Vrátane podzložiek"; $text["individuals"] = "Jednotlivci"; $text["inherits_access_msg"] = "Prístup sa dedí."; $text["inherits_access_copy_msg"] = "Skopírovať zdedený zoznam riadenia prístupu"; $text["inherits_access_empty_msg"] = "Založiť nový zoznam riadenia prístupu"; $text["internal_error_exit"] = "Vnútorná chyba. Nebolo možné dokončiť požiadavku. Ukončuje sa."; $text["internal_error"] = "Vnútorná chyba"; $text["invalid_access_mode"] = "Neplatný režim prístupu"; $text["invalid_action"] = "Neplatná činnosť"; $text["invalid_approval_status"] = "Neplatný stav schválenia"; $text["invalid_create_date_end"] = "Neplatný koncový dátum vytvorenia."; $text["invalid_create_date_start"] = "Neplatný počiatočný dátum vytvorenia."; $text["invalid_doc_id"] = "Neplatný ID dokumentu"; $text["invalid_file_id"] = "Nesprávne ID súboru"; $text["invalid_folder_id"] = "Neplatný ID zložky"; $text["invalid_group_id"] = "Neplatný ID skupiny"; $text["invalid_link_id"] = "Neplatný ID odkazu"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Neplatný stav kontroly"; $text["invalid_sequence"] = "Neplatná hodnota postupnosti"; $text["invalid_status"] = "Neplatný stav dokumentu"; $text["invalid_target_doc_id"] = "Neplatné cieľové ID dokumentu"; $text["invalid_target_folder"] = "Neplatné cieľové ID zložky"; $text["invalid_user_id"] = "Neplatné ID používateľa"; $text["invalid_version"] = "Neplatná verzia dokumentu"; $text["is_hidden"] = "Nezobrazovať v zozname používateľov"; $text["january"] = "Január"; $text["js_no_approval_group"] = "Prosím, vyberte skupinu pre schválenie"; $text["js_no_approval_status"] = "Prosím, vyberte stav schválenia"; $text["js_no_comment"] = "Žiadny komentár"; $text["js_no_email"] = "Napíšte svoju emailovú adresu"; $text["js_no_file"] = "Prosím, vyberte súbor"; $text["js_no_keywords"] = "Zadajte nejaké kľúčové slová"; $text["js_no_login"] = "Prosím, napíšte meno používateľa"; $text["js_no_name"] = "Prosím, napíšte meno"; $text["js_no_override_status"] = "Prosím, vyberte nový stav [prepíše sa]"; $text["js_no_pwd"] = "Budete musieť napísať svoje heslo"; $text["js_no_query"] = "Napíšte požiadavku"; $text["js_no_review_group"] = "Prosím, vyberte skupinu pre kontrolu"; $text["js_no_review_status"] = "Prosím, vyberte stav kontroly"; $text["js_pwd_not_conf"] = "Heslo a potvrdenie hesla sa nezhodujú"; $text["js_select_user_or_group"] = "Vyberte aspoň používateľa alebo skupinu"; $text["js_select_user"] = "Prosím, vyberte používateľa"; $text["july"] = "Júl"; $text["june"] = "Jún"; $text["keyword_exists"] = "Kľúčové slovo už existuje"; $text["keywords"] = "Kľúčové slová"; $text["language"] = "Jazyk"; $text["last_update"] = "Posledná aktualizácia"; $text["linked_documents"] = "Súvisiace dokumenty"; $text["linked_files"] = "Prílohy"; $text["local_file"] = "Lokálny súbor"; $text["lock_document"] = "Zamknúť"; $text["lock_message"] = "Tento dokument zamkol [username].
Iba oprávnení používatelia ho môžu odomknúť (pozri koniec stránky)."; $text["lock_status"] = "Stav"; $text["login_error_text"] = "Chyba pri prihlasovaní. ID používateľa alebo heslo je nesprávne."; $text["login_error_title"] = "Chyba pri prihlasovaní"; $text["login_not_given"] = "Nebolo zadané používateľské meno"; $text["login_ok"] = "Prihlásenie prebehlo úspešne"; $text["log_management"] = "Správa protokolov"; $text["logout"] = "Odhlásenie"; $text["manager"] = "Manager"; $text["march"] = "Marec"; $text["max_upload_size"] = "Maximálna veľkosť každého súboru"; $text["may"] = "Máj"; $text["monday"] = "Pondelok"; $text["month_view"] = "Mesiac"; $text["move_document"] = "Presunúť dokument"; $text["move_folder"] = "Presunúť zložku"; $text["move"] = "Presunúť"; $text["my_account"] = "Môj účet"; $text["my_documents"] = "Moje dokumenty"; $text["name"] = "Meno"; $text["new_default_keyword_category"] = "Pridať kategóriu"; $text["new_default_keywords"] = "Pridať kľúčové slová"; $text["new_document_email"] = "Novy dokument"; $text["new_file_email"] = "Nova priloha"; //$text["new_folder"] = "New folder"; $text["new"] = "Nove"; $text["new_subfolder_email"] = "Nova zlozka"; $text["new_user_image"] = "Nový obrázok"; $text["no_action"] = "Nič sa nevykoná"; //$text["no_approval_needed"] = "No approval pending."; //$text["no_attached_files"] = "No attached files"; $text["no_default_keywords"] = "Nie sú dostupné žiadne kľúčové slová."; //$text["no_docs_locked"] = "No documents locked."; $text["no_docs_to_approve"] = "Momentálne neexistujú žiadne dokumenty, ktoré vyžadujú schválenie."; //$text["no_docs_to_look_at"] = "No documents that need attention."; $text["no_docs_to_review"] = "Momentálne neexistujú žiadne dokumenty, ktoré vyžadujú kontrolu."; $text["no_group_members"] = "Táto skupina nemá žiadnych členov"; $text["no_groups"] = "Žiadne skupiny"; $text["no_linked_files"] = "No linked files"; $text["no"] = "Nie"; $text["no_previous_versions"] = "Neboli nájdené žiadne iné verzie"; $text["no_review_needed"] = "No review pending."; $text["notify_added_email"] = "Boli ste pridani do notifikacneho zoznamu"; $text["notify_deleted_email"] = "Boli ste odstraneni do notifikacneho zoznamu"; $text["no_update_cause_locked"] = "Preto nemôžete aktualizovať tento dokument. Prosím, kontaktujte používateľa, ktorý ho zamkol."; $text["no_user_image"] = "nebol nájdený žiadny obrázok"; $text["november"] = "November"; $text["obsolete"] = "Zastaralé"; $text["october"] = "Október"; $text["old"] = "Stare"; $text["only_jpg_user_images"] = "Ako obrázky používateľov je možné použiť iba obrázky .jpg"; $text["owner"] = "Vlastník"; $text["ownership_changed_email"] = "Majitel zmeneny"; $text["password"] = "Heslo"; $text["personal_default_keywords"] = "Osobné kľúčové slová"; $text["previous_versions"] = "Predošlé verzie"; $text["rejected"] = "Odmietnuté"; $text["released"] = "Vydané"; $text["removed_approver"] = "bol odstránený zo zoznamu schvaľovateľov."; $text["removed_file_email"] = "Odstranena priloha"; $text["removed_reviewer"] = "bol odstránený zo zoznamu kontrolórov."; $text["results_page"] = "Výsledky"; $text["review_deletion_email"] = "Poziadavka na recenziu zmazana"; $text["reviewer_already_assigned"] = "je už poverený ako kontrolór"; $text["reviewer_already_removed"] = "už bol odstránený z procesu kontroly alebo poslal kontrolu"; $text["reviewers"] = "Kontrolóri"; $text["review_group"] = "Skupina kontroly"; $text["review_request_email"] = "Poziadavka na recenziu"; $text["review_status"] = "Stav kontroly"; $text["review_submit_email"] = "Poslana recenzia"; $text["review_summary"] = "Zhrnutie kontroly"; $text["review_update_failed"] = "Chyba pri aktualizácii stavu kontroly. Aktualizácia zlyhala."; $text["rm_default_keyword_category"] = "Zmazať kategóriu"; $text["rm_document"] = "Odstrániť dokument"; $text["rm_file"] = "Odstrániť súbor"; $text["rm_folder"] = "Odstrániť zložku"; $text["rm_group"] = "Odstrániť túto skupinu"; $text["rm_user"] = "Odstrániť tohto používateľa"; $text["rm_version"] = "Odstrániť verziu"; //$text["role_admin"] = "Administrator"; //$text["role_guest"] = "Guest"; //$text["role"] = "Role"; $text["saturday"] = "Sobota"; $text["save"] = "Uložiť"; $text["search_in"] = "Prehľadávať"; $text["search_mode_and"] = "všetky slová"; $text["search_mode_or"] = "aspoň jedno zo slov"; $text["search_no_results"] = "Vašej požiadavke nevyhovujú žiadne dokumenty "; $text["search_query"] = "Hľadať"; $text["search_report"] = "Nájdených [count] dokumentov"; $text["search_results_access_filtered"] = "Výsledky hľadania môžu obsahovať obsah, ku ktorému bol zamietnutý prístup."; $text["search_results"] = "Výsledky hľadania"; $text["search"] = "Hľadať"; $text["search_time"] = "Uplynulý čas: [time] sek"; $text["selection"] = "Výber"; $text["select_one"] = "Vyberte jeden"; $text["september"] = "September"; $text["seq_after"] = "Po \"[prevname]\""; $text["seq_end"] = "Na koniec"; $text["seq_keep"] = "Ponechať pozíciu"; $text["seq_start"] = "Prvá pozícia"; $text["sequence"] = "Postupnosť"; $text["set_expiry"] = "Nastaviť vypršanie"; //$text["set_owner_error"] = "Error setting owner"; $text["set_owner"] = "Nastaviť vlastníka"; $text["signed_in_as"] = "Prihlásený ako"; $text["sign_out"] = "odhlásiť"; $text["space_used_on_data_folder"] = "Space used on data folder"; $text["status_approval_rejected"] = "Návrh zamietnutý"; $text["status_approved"] = "Schválený"; $text["status_approver_removed"] = "Schvaľovateľ odstránený z procesu"; $text["status_not_approved"] = "Neschválený"; $text["status_not_reviewed"] = "Neskontrolovaný"; $text["status_reviewed"] = "Skontrolovaný"; $text["status_reviewer_rejected"] = "Návrh zamietnutý"; $text["status_reviewer_removed"] = "Kontrolór odstránený z procesu"; $text["status"] = "Stav"; $text["status_unknown"] = "Neznámy"; $text["storage_size"] = "Objem dát"; $text["submit_approval"] = "Poslať schválenie"; $text["submit_login"] = "Prihlásiť sa"; $text["submit_review"] = "Poslať kontrolu"; $text["sunday"] = "Nedeľa"; $text["theme"] = "Vzhľad"; $text["thursday"] = "Štvrtok"; $text["toggle_manager"] = "Prepnúť stav manager"; $text["to"] = "Do"; $text["tuesday"] = "Utorok"; $text["under_folder"] = "V zložke"; $text["unknown_command"] = "Príkaz nebol rozpoznaný."; $text["unknown_group"] = "Neznámy ID skupiny"; $text["unknown_id"] = "Neznáme ID"; $text["unknown_keyword_category"] = "Neznáma kategória"; $text["unknown_owner"] = "Neznámy ID vlastníka"; $text["unknown_user"] = "Neznámy ID používateľa"; $text["unlock_cause_access_mode_all"] = "Môžete ho stále aktualizovať, pretože máte režim prístupu \"all\". Zámok bude automaticky odstránený."; $text["unlock_cause_locking_user"] = "Môžete ho stále aktualizovať, pretože ste ten, kto ho aj zamkol. Zámok bude automaticky odstránený."; $text["unlock_document"] = "Odomknúť"; $text["update_approvers"] = "Aktualizovať zoznam schvaľovateľov"; $text["update_document"] = "Aktualizovať"; $text["update_info"] = "Aktualizovať informácie"; $text["update_locked_msg"] = "Tento dokument je zamknutý."; $text["update_reviewers"] = "Aktualizovať zoznam kontrolórov"; $text["update"] = "Aktualizovať"; $text["uploaded_by"] = "Nahral"; $text["uploading_failed"] = "Nahranie zlyhalo. Prosám, kontaktujte správcu."; $text["use_default_keywords"] = "Použiť preddefinované kľúčové slová"; $text["user_exists"] = "Používateľ už existuje."; $text["user_image"] = "Obrázok"; $text["user_info"] = "Informácie o používateľovi"; $text["user_list"] = "Zoznam používateľov"; $text["user_login"] = "ID používateľa"; $text["user_management"] = "Používatelia"; $text["user_name"] = "Plné meno"; $text["users"] = "Používateľ"; $text["user"] = "Používateľ"; $text["version_deleted_email"] = "Verzia zmazana"; $text["version_info"] = "Informácie o verzii"; $text["versioning_file_creation"] = "Vytvorenie verziovacieho súboru"; $text["versioning_file_creation_warning"] = "Touto akciou môžete vytvoriť súbor, obsahujúci verziovaciu informáciu celej DMS zložky. Po vytvorení bude každý súbor uložený do zložky súborov."; $text["versioning_info"] = "Informácie o verziách"; $text["version"] = "Verzia"; $text["view_online"] = "Zobraziť online"; $text["warning"] = "Upozornenie"; $text["wednesday"] = "Streda"; $text["week_view"] = "Týždeň"; $text["year_view"] = "Rok"; $text["yes"] = "Áno"; ?> letodms-3.3.11+dfsg.1/languages/Slovak/help.htm0000644000175000017500000000002412040235120021654 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/languages/Hungarian/0000755000175000017500000000000012040235120020673 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/languages/Hungarian/lang.inc0000644000175000017500000010003612040235120022307 0ustar franciscofrancisco Legyen vatos! Ezt a mveletet nem lehet visszavonni."; $text["confirm_rm_folder"] = "Valban trlni akarja a(z) \"[foldername]\" knyvtrat s annak tartalmt?
Legyen vatos! Ezt a mveletet nem lehet visszavonni."; $text["confirm_rm_version"] = "Valban trlni akarja a(z) [version]. verzijt a(z) \"[documentname]\" dokumentumnak?
Legyen vatos! Ezt a mveletet nem lehet visszavonni."; $text["content"] = "Tartalom"; $text["continue"] = "Continue"; $text["creating_new_default_keyword_category"] = "Kategria felvtele..."; $text["creation_date"] = "Ltrehozva"; $text["current_version"] = "Aktulis verzi"; $text["default_access"] = "Alapbellts szerinti jogosultsg"; $text["default_keyword_category"] = "Kategrik"; $text["default_keyword_category_name"] = "Nv"; $text["default_keywords"] = "Rendelkezsre ll kulcsszavak"; $text["delete"] = "Trls"; $text["delete_last_version"] = "Document has only one revision. Deleting entire document record..."; $text["deleting_document_notify"] = "rtestsi lista bejegyzs trlse..."; $text["deleting_folder_notify"] = "rtestsi lista bejegyzs trlse folyamatban..."; $text["details"] = "Details"; $text["details_version"] = "Details for version: [version]"; $text["document"] = "Document"; $text["document_access_again"] = "Dokumentum jogosultsg ismtelt mdostsa"; $text["document_add_access"] = "Bejegyzs felvtele a hozzfrs listra..."; $text["document_already_locked"] = "Ez a dokumentum mr zrolt"; $text["document_del_access"] = "Hozzfrs lista bejegyzs trlse..."; $text["document_edit_access"] = "Hozzfrs md vltoztatsa..."; $text["document_infos"] = "Informci"; $text["document_is_not_locked"] = "Ez a dokumentum NEM zrolt"; $text["document_link_by"] = "Kapcsolatot ltrehozta:"; $text["document_link_public"] = "Nyilvnos"; $text["document_list"] = "Dokumentumok"; $text["document_notify_again"] = "rtestsi lista ismtelt mdostsa"; $text["document_overview"] = "Dokumentum tulajdonsgok"; $text["document_set_default_access"] = "Alapbellts szerinti jogosultsg belltsa a dokumentumra..."; $text["document_set_inherit"] = "ACL trls. A documentum rkteni fogja a jogosultsgot..."; $text["document_set_not_inherit_copy"] = "Jogosultsg lista msolsa folyamatban..."; $text["document_set_not_inherit_empty"] = "rktett jogosultsg trlse. Induls res ACL-el..."; $text["document_status"] = "Document Status"; $text["document_title"] = "MyDMS - Documentum [dokumentumnv]"; $text["document_versions"] = "sszes verzi"; $text["documents_in_process"] = "Documents In Process"; $text["documents_owned_by_user"] = "Documents Owned by User"; $text["documents_to_approve"] = "Documents Awaiting User's Approval"; $text["documents_to_review"] = "Documents Awaiting User's Review"; $text["documents_user_requiring_attention"] = "Documents Owned by User That Require Attention"; $text["does_not_expire"] = "Soha nem jr le"; $text["does_not_inherit_access_msg"] = "Jogosultsg rktse"; $text["download"] = "Letlts"; $text["draft_pending_approval"] = "Draft - pending approval"; $text["draft_pending_review"] = "Draft - pending review"; $text["edit"] = "edit"; $text["edit_default_keyword_category"] = "Kategrik mdostsa"; $text["edit_default_keywords"] = "Kulcsszavak mdostsa"; $text["edit_document"] = "Dokumentum mveletek"; $text["edit_document_access"] = "Jogosultsg mdosts"; $text["edit_document_notify"] = "rtestsi lista"; $text["edit_document_props"] = "Dokumentum mdosts"; $text["edit_document_props_again"] = "Dokumentum ismtelt mdostsa"; $text["edit_existing_access"] = "Hozzfrs lista mdostsa"; $text["edit_existing_notify"] = "rtestsi lista szerkesztse"; $text["edit_folder"] = "Knyvtr szerkeszts"; $text["edit_folder_access"] = "Hozzfrs mdosts"; $text["edit_folder_notify"] = "rtestsi lista"; $text["edit_folder_props"] = "Knyvtr tulajdonsgok"; $text["edit_folder_props_again"] = "A knyvtr ismtelt mdostsa"; $text["edit_group"] = "Csoport mdostsa"; $text["edit_inherit_access"] = "Jogosultsg rktse"; $text["edit_personal_default_keywords"] = "Szemlyes kulcsszavak mdostsa"; $text["edit_user"] = "Felhasznl mdostsa"; $text["edit_user_details"] = "Edit User Details"; $text["editing_default_keyword_category"] = "Kategria mdostsa..."; $text["editing_default_keywords"] = "Kulcsszavak mdostsa..."; $text["editing_document_props"] = "Dokumentum mdosts folyamatban..."; $text["editing_folder_props"] = "Knyvtr mdostsa..."; $text["editing_group"] = "Csoport mdosts..."; $text["editing_user"] = "Felhasznl mdostsa folyamatban..."; $text["editing_user_data"] = "Felhasznli belltsok mdostsa"; $text["email"] = "Email"; $text["email_err_group"] = "Error sending email to one or more members of this group."; $text["email_err_user"] = "Error sending email to user."; $text["email_sent"] = "Email sent"; $text["empty_access_list"] = "A hozzfrs lista res"; $text["empty_notify_list"] = "res lista"; $text["error_adding_session"] = "Error occured while creating session."; $text["error_occured"] = "Hiba trtnt"; $text["error_removing_old_sessions"] = "Error occured while removing old sessions"; $text["error_updating_revision"] = "Error updating status of document revision."; $text["exp_date"] = "Lejr"; $text["expired"] = "Expired"; $text["expires"] = "Lejrat"; $text["file"] = "File"; $text["file_info"] = "File Information"; $text["file_size"] = "Fjlmret"; $text["folder_access_again"] = "Knyvtr jogosultsg ismtelt mdostsa"; $text["folder_add_access"] = "j bejegyzs hozzadsa a hozzfrs listhoz..."; $text["folder_contents"] = "Folders"; $text["folder_del_access"] = "Hozzfrs lista elem trlse..."; $text["folder_edit_access"] = "Jogosultsg mdosts..."; $text["folder_infos"] = "Informci"; $text["folder_notify_again"] = "rtestsi lista ismtelt mdostsa"; $text["folder_overview"] = "Knyvtr tulajdonsgok"; $text["folder_path"] = "Elrsi t"; $text["folder_set_default_access"] = "Alaprtelmezs szerinti hozzfrsi md belltsa a knyvtrhoz..."; $text["folder_set_inherit"] = "ACL trlse. A knyvtr rklni fogja a jogosultsgokat..."; $text["folder_set_not_inherit_copy"] = "Hozzfrs lista msolsa folyamatban..."; $text["folder_set_not_inherit_empty"] = "rktett jogosultsg eltvoltsa. Indts res ACL-el..."; $text["folder_title"] = "MyDMS - Knyvtr [knyvtrnv]"; $text["folders_and_documents_statistic"] = "Knyvtrak s dokumentumok tekintse"; $text["foldertree"] = "Knyvtrfa"; $text["from_approval_process"] = "from approval process"; $text["from_review_process"] = "from review process"; $text["global_default_keywords"] = "Globlis kulcsszavak"; $text["goto"] = "Ugrs"; $text["group"] = "Csoport"; $text["group_already_approved"] = "An approval has already been submitted on behalf of group"; $text["group_already_reviewed"] = "A review has already been submitted on behalf of group"; $text["group_approvers"] = "Group Approvers"; $text["group_email_sent"] = "Email sent to group members"; $text["group_exists"] = "Group already exists."; $text["group_management"] = "Csoportok"; $text["group_members"] = "Csoporttagok"; $text["group_reviewers"] = "Group Reviewers"; $text["group_unable_to_add"] = "Unable to add group"; $text["group_unable_to_remove"] = "Unable to remove group"; $text["groups"] = "Csoportok"; $text["guest_login"] = "Belps vendgknt"; $text["guest_login_disabled"] = "Guest login is disabled."; $text["individual_approvers"] = "Individual Approvers"; $text["individual_reviewers"] = "Individual Reviewers"; $text["individuals"] = "Individuals"; $text["inherits_access_msg"] = "Jogosultsg rktse folyamatban."; $text["inherits_access_copy_msg"] = "rktett hozzfrs lista msolsa"; $text["inherits_access_empty_msg"] = "Induls res hozzfrs listval"; $text["internal_error"] = "Internal error"; $text["internal_error_exit"] = "Internal error. Unable to complete request. Exiting."; $text["invalid_access_mode"] = "Invalid Access Mode"; $text["invalid_action"] = "Invalid Action"; $text["invalid_approval_status"] = "Invalid Approval Status"; $text["invalid_create_date_end"] = "Invalid end date for creation date range."; $text["invalid_create_date_start"] = "Invalid start date for creation date range."; $text["invalid_doc_id"] = "Invalid Document ID"; $text["invalid_folder_id"] = "Invalid Folder ID"; $text["invalid_group_id"] = "Invalid Group ID"; $text["invalid_link_id"] = "Invalid link identifier"; $text["invalid_request_token"] = "Invalid Request Token"; $text["invalid_review_status"] = "Invalid Review Status"; $text["invalid_sequence"] = "Invalid sequence value"; $text["invalid_status"] = "Invalid Document Status"; $text["invalid_target_doc_id"] = "Invalid Target Document ID"; $text["invalid_target_folder"] = "Invalid Target Folder ID"; $text["invalid_user_id"] = "Invalid User ID"; $text["invalid_version"] = "Invalid Document Version"; $text["is_admin"] = "Administrator Privilege"; $text["js_no_approval_group"] = "Please select a approval group"; $text["js_no_approval_status"] = "Please select the approval status"; $text["js_no_comment"] = "Nincs megjegyzs"; $text["js_no_email"] = "Adja meg az email cmt"; $text["js_no_file"] = "Krem vlasszon egy fjlt"; $text["js_no_keywords"] = "Adjon meg kulcsszavakat"; $text["js_no_login"] = "Adja meg a felhasznlnevet"; $text["js_no_name"] = "Krem rjon be egy nevet"; $text["js_no_override_status"] = "Please select the new [override] status"; $text["js_no_pwd"] = "Be kell rnia a jelszavt"; $text["js_no_query"] = "Adjon meg egy krdst"; $text["js_no_review_group"] = "Please select a review group"; $text["js_no_review_status"] = "Please select the review status"; $text["js_pwd_not_conf"] = "A megadott jelszavak eltrnek"; $text["js_select_user"] = "Vlasszon felhasznlt"; $text["js_select_user_or_group"] = "Legalbb egy felhasznlt vagy egy csoportot adjon meg"; $text["keyword_exists"] = "Keyword already exists"; $text["keywords"] = "Kulcsszavak"; $text["language"] = "Nyelv"; $text["last_update"] = "Utols mdosts"; $text["last_updated_by"] = "Last updated by"; $text["latest_version"] = "Latest Version"; $text["linked_documents"] = "Kapcsold dokumentumok"; $text["local_file"] = "Helyi llomny"; $text["lock_document"] = "Zrol"; $text["lock_message"] = "Ezt a dokumentumot [username] zrolta.
Csak arra jogosult felhasznl tzlheti a zrolst (Lsd: lap alja)."; $text["lock_status"] = "Sttusz"; $text["locking_document"] = "Dokumentum zrols folyamatban..."; $text["logged_in_as"] = "Belpett felhasznl: "; $text["login"] = "Belps"; $text["login_error_text"] = "Error signing in. User ID or password incorrect."; $text["login_error_title"] = "Sign in error"; $text["login_not_found"] = "Nem ltez felhasznl"; $text["login_not_given"] = "No username has been supplied"; $text["login_ok"] = "Sign in successful"; $text["logout"] = "Kilps"; $text["mime_type"] = "Mime-Tpus"; $text["move"] = "Move"; $text["move_document"] = "Dokumentum thelyezse"; $text["move_folder"] = "Knyvtr thelyezse"; $text["moving_document"] = "Dokumentum thelyezse..."; $text["moving_folder"] = "Knyvtr thelyezse..."; $text["msg_document_expired"] = "A(z) \"[documentname]\" dokumentum (Elrsi t: \"[path]\") rvnyessge lejrt [expires] dtummal"; $text["msg_document_updated"] = "A(z) \"[documentname]\" dokumentum (Elrsi t: \"[path]\") ltrehozsi, vagy mdostsi dtuma: [updated]"; $text["my_account"] = "Felhasznli belltsok"; $text["my_documents"] = "My Documents"; $text["name"] = "Nv"; $text["new_default_keyword_category"] = "j kategria"; $text["new_default_keywords"] = "sszes kulcssz"; $text["new_equals_old_state"] = "Warning: Proposed status and existing status are identical. No action required."; $text["new_user_image"] = "j kp"; $text["no"] = "Nem"; $text["no_action"] = "No action required"; $text["no_action_required"] = "n/a"; $text["no_active_user_docs"] = "There are currently no documents owned by the user that require review or approval."; $text["no_approvers"] = "No approvers assigned."; $text["no_default_keywords"] = "Nincs rendelkezsre ll kulcssz"; $text["no_docs_to_approve"] = "There are currently no documents that require approval."; $text["no_docs_to_review"] = "There are currently no documents that require review."; $text["no_document_links"] = "Nincs kapcsold dokumentum"; $text["no_documents"] = "Nincsenek dokumentumok"; $text["no_group_members"] = "Ennek a csoportnak nincsenek tagjai"; $text["no_groups"] = "Nincsenek csoportok"; $text["no_previous_versions"] = "No other versions found"; $text["no_reviewers"] = "No reviewers assigned."; $text["no_subfolders"] = "Nincsenek alknyvtrak"; $text["no_update_cause_locked"] = "Emiatt n nem mdosthatja a dokumentumot. Lpjen kapcsolatba a zrolst ltrehoz szemllyel."; $text["no_user_image"] = "Nincs kp"; $text["not_approver"] = "User is not currently assigned as an approver of this document revision."; $text["not_reviewer"] = "User is not currently assigned as a reviewer of this document revision."; $text["notify_subject"] = "j vagy lejrt dokumentumok a dokumentumkezel rendszerben"; $text["obsolete"] = "Obsolete"; $text["old_folder"] = "old folder"; $text["only_jpg_user_images"] = "Felhasznli kpknt csak .jpg fjlok adhatk meg."; $text["op_finished"] = "ksz"; $text["operation_not_allowed"] = "Nincs jogosultsgod a mvelet vgrehajtshoz"; $text["override_content_status"] = "Override Status"; $text["override_content_status_complete"] = "Override Status Complete"; $text["override_privilege_insufficient"] = "Access denied. Privileges insufficient to override the status of this document."; $text["overview"] = "Overview"; $text["owner"] = "Tulajdonos"; $text["password"] = "Jelsz"; $text["pending_approval"] = "Documents pending approval"; $text["pending_review"] = "Documents pending review"; $text["personal_default_keywords"] = "Szemlyes kulcsszavak"; $text["previous_versions"] = "Previous Versions"; $text["rejected"] = "Rejected"; $text["released"] = "Released"; $text["remove_document_link"] = "Kapcsolds trlse"; $text["remove_member"] = "Csoport tag trlse"; $text["removed_approver"] = "has been removed from the list of approvers."; $text["removed_reviewer"] = "has been removed from the list of reviewers."; $text["removing_default_keyword_category"] = "Kategria trlse..."; $text["removing_default_keywords"] = "Kulcsszavak trlse..."; $text["removing_document"] = "Dokumentum trlse..."; $text["removing_document_link"] = "Kapcsolds trlse..."; $text["removing_folder"] = "Knyvtr trlse..."; $text["removing_group"] = "Csoport trlse folyamatban..."; $text["removing_member"] = "Csoporttag trlse folyamatban..."; $text["removing_user"] = "Felhasznl trlse folyamatban..."; $text["removing_version"] = "[version]. dokumentum verzi trlse..."; $text["review_document"] = "Review Document"; $text["review_document_complete"] = "Review Document: Complete"; $text["review_document_complete_records_updated"] = "Document review completed and records updated"; $text["review_group"] = "Review Group"; $text["review_status"] = "Review Status"; $text["review_summary"] = "Review Summary"; $text["review_update_failed"] = "Error updating review status. Update failed."; $text["reviewer_added"] = "added as a reviewer"; $text["reviewer_already_assigned"] = "is already assigned as a reviewer"; $text["reviewer_already_removed"] = "has already been removed from review process or has already submitted a review"; $text["reviewer_no_privilege"] = "is not sufficiently privileged to review this document"; $text["reviewer_removed"] = "removed from review process"; $text["reviewers"] = "Reviewers"; $text["rm_default_keyword_category"] = "Kategria trlse"; $text["rm_default_keywords"] = "Kulcsszavak trlse"; $text["rm_document"] = "Dokumentum trlse"; $text["rm_folder"] = "Knyvtr trls"; $text["rm_group"] = "Csoport trlse"; $text["rm_user"] = "Felhasznl trlse"; $text["rm_version"] = "Verzi trlse"; $text["root_folder"] = "Gykr knyvtr"; $text["save"] = "Ments"; $text["search"] = "Keress"; $text["search_in"] = "Keress ebben a knyvtrban"; $text["search_in_all"] = "Minden knyvtrban"; $text["search_in_current"] = "csak ([foldername]) -ban s alknyvtraiban"; $text["search_mode"] = "Md"; $text["search_mode_and"] = "egyezs minden szra"; $text["search_mode_or"] = "egyezs legalbb egy szra"; $text["search_no_results"] = "Nincs tallat"; $text["search_query"] = "Kulcssz"; $text["search_report"] = "Tallatok szma [count] erre a lekrdezsre"; $text["search_result_pending_approval"] = "status 'pending approval'"; $text["search_result_pending_review"] = "status 'pending review'"; $text["search_results"] = "Tallatok"; $text["search_results_access_filtered"] = "Search results may contain content to which access has been denied."; $text["search_time"] = "Felhasznlt id: [time] msodperc."; $text["select_one"] = "Vlasszon egyet"; $text["selected_document"] = "Kivlasztott dokumentum"; $text["selected_folder"] = "Kivlasztott konyvtr"; $text["selection"] = "Selection"; $text["seq_after"] = "\"[prevname]\" utn"; $text["seq_end"] = "Vgre"; $text["seq_keep"] = "Pozci megtartsa"; $text["seq_start"] = "Elejre"; $text["sequence"] = "Sorrend"; $text["set_default_access"] = "Set Default Access Mode"; $text["set_expiry"] = "Set Expiry"; $text["set_owner"] = "Tulajdonos belltsa"; $text["set_reviewers_approvers"] = "Assign Reviewers and Approvers"; $text["setting_expires"] = "Lejrat bellts folyamatban..."; $text["setting_owner"] = "Tulajdonos belltsa..."; $text["setting_user_image"] = "
Felhasznli kp belltsa folyamatban..."; $text["show_all_versions"] = "Show All Revisions"; $text["show_current_versions"] = "Show Current"; $text["start"] = "Kezdet"; $text["status"] = "Status"; $text["status_approval_rejected"] = "Draft rejected"; $text["status_approved"] = "Approved"; $text["status_approver_removed"] = "Approver removed from process"; $text["status_change_summary"] = "Document revision changed from status '[oldstatus]' to status '[newstatus]'."; $text["status_changed_by"] = "Status changed by"; $text["status_not_approved"] = "Not approved"; $text["status_not_reviewed"] = "Not reviewed"; $text["status_reviewed"] = "Reviewed"; $text["status_reviewer_rejected"] = "Draft rejected"; $text["status_reviewer_removed"] = "Reviewer removed from process"; $text["status_unknown"] = "Unknown"; $text["subfolder_list"] = "Alknyvtrak"; $text["submit_approval"] = "Submit approval"; $text["submit_login"] = "Sign in"; $text["submit_review"] = "Submit review"; $text["theme"] = "Tma"; $text["unable_to_add"] = "Unable to add"; $text["unable_to_remove"] = "Unable to remove"; $text["under_folder"] = ", clknyvtr:"; $text["unknown_command"] = "Command not recognized."; $text["unknown_group"] = "Unknown group id"; $text["unknown_keyword_category"] = "Unknown category"; $text["unknown_owner"] = "Unknown owner id"; $text["unknown_user"] = "Unknown user id"; $text["unlock_cause_access_mode_all"] = "n mgis mdosthatja, mivel nnek \"teljes\" jogosultsga van. A zrols automatikusan fel lesz oldva."; $text["unlock_cause_locking_user"] = "n mgis mdosthatja, mivel a zrolst n hozta ltre. A zrols automatikusan fel lesz oldva."; $text["unlock_document"] = "Felszabadt"; $text["unlocking_denied"] = "nnek nincs jogsultsga a zrols feloldsra"; $text["unlocking_document"] = "Dokumentum felolds folyamatban..."; $text["update"] = "Update"; $text["update_approvers"] = "Update List of Approvers"; $text["update_document"] = "Mdost"; $text["update_info"] = "Update Information"; $text["update_locked_msg"] = "Zrolt dokumentum."; $text["update_reviewers"] = "Update List of Reviewers"; $text["update_reviewers_approvers"] = "Update List of Reviewers and Approvers"; $text["updated_by"] = "Updated by"; $text["updating_document"] = "Dokumentum mdosts folyamatban..."; $text["upload_date"] = "Feltlts dtuma"; $text["uploaded"] = "Uploaded"; $text["uploaded_by"] = "Feltlttte"; $text["uploading_failed"] = "Sikertelen feltlts. Krem lpjen kapcsolatba a rendszergazdval."; $text["use_default_keywords"] = "Elredefinilt kulcsszavak hasznlata"; $text["user"] = "Felhasznl"; $text["user_already_approved"] = "User has already submitted an approval of this document version"; $text["user_already_reviewed"] = "User has already submitted a review of this document version"; $text["user_approval_not_required"] = "No document approval required of user at this time."; $text["user_exists"] = "User already exists."; $text["user_image"] = "Kp"; $text["user_info"] = "User Information"; $text["user_list"] = "Felhasznlk listja"; $text["user_login"] = "Felhasznl"; $text["user_management"] = "Felhasznlk"; $text["user_name"] = "Teljes nv"; $text["user_removed_approver"] = "User has been removed from the list of individual approvers."; $text["user_removed_reviewer"] = "User has been removed from the list of individual reviewers."; $text["user_review_not_required"] = "No document review required of user at this time."; $text["users"] = "Felhasznlk"; $text["version"] = "Verzi"; $text["version_info"] = "Version Information"; $text["version_under_approval"] = "Version under approval"; $text["version_under_review"] = "Version under review"; $text["view_document"] = "View Document"; $text["view_online"] = "Megtekints bngszben"; $text["warning"] = "Warning"; $text["wrong_pwd"] = "Hibs jelsz. Prblja jra"; $text["yes"] = "Igen"; // New as of 1.7.1. Require updated translation. $text["documents"] = "Documents"; $text["folders"] = "Folders"; $text["no_folders"] = "No folders"; $text["notification_summary"] = "Notification Summary"; // New as of 1.7.2 $text["all_pages"] = "All"; $text["results_page"] = "Results Page"; // New $text["sign_out"] = "sign out"; $text["signed_in_as"] = "Signed in as"; $text["assign_reviewers"] = "Assign Reviewers"; $text["assign_approvers"] = "Assign Approvers"; $text["override_status"] = "Override Status"; $text["change_status"] = "Change Status"; $text["change_assignments"] = "Change Assignments"; $text["no_user_docs"] = "There are currently no documents owned by the user"; $text["disclaimer"] = "This is a classified area. Access is permitted only to authorized personnel. Any violation will be prosecuted according to the english and international laws."; $text["backup_tools"] = "Backup tools"; $text["versioning_file_creation"] = "Versioning file creation"; $text["archive_creation"] = "Archive creation"; $text["files_deletion"] = "Files deletion"; $text["folder"] = "Folder"; $text["unknown_id"] = "unknown id"; $text["help"] = "Help"; $text["versioning_info"] = "Versioning info"; $text["versioning_file_creation_warning"] = "With this operation you can create a file containing the versioning information of an entire DMS folder. After the creation every file will be saved inside the document folder."; $text["archive_creation_warning"] = "With this operation you can create achive containing the files of entire DMS folders. After the creation the archive will be saved in the data folder of your server.
WARNING: an archive created as human readable will be unusable as server backup."; $text["files_deletion_warning"] = "With this option you can delete all files of entire DMS folders. The versioning information will remain visible."; $text["backup_list"] = "Existings backup list"; $text["backup_remove"] = "Remove backup file"; $text["confirm_rm_backup"] = "Do you really want to remove the file \"[arkname]\"?
Be careful: This action cannot be undone."; $text["document_deleted"] = "Document deleted"; $text["linked_files"] = "Attachments"; $text["invalid_file_id"] = "Invalid file ID"; $text["rm_file"] = "Remove file"; $text["confirm_rm_file"] = "Do you really want to remove file \"[name]\" of document \"[documentname]\"?
Be careful: This action cannot be undone."; $text["edit_comment"] = "Edit comment"; // new from 1.9 $text["is_hidden"] = "Hide from users list"; $text["log_management"] = "Log files management"; $text["confirm_rm_log"] = "Do you really want to remove log file \"[logname]\"?
Be careful: This action cannot be undone."; $text["include_subdirectories"] = "Include subdirectories"; $text["include_documents"] = "Include documents"; $text["manager"] = "Manager"; $text["toggle_manager"] = "Toggle manager"; // new from 2.0 $text["calendar"] = "Calendar"; $text["week_view"] = "Week view"; $text["month_view"] = "Month view"; $text["year_view"] = "Year View"; $text["add_event"] = "Add event"; $text["edit_event"] = "Edit event"; $text["january"] = "January"; $text["february"] = "February"; $text["march"] = "March"; $text["april"] = "April"; $text["may"] = "May"; $text["june"] = "June"; $text["july"] = "July"; $text["august"] = "August"; $text["september"] = "September"; $text["october"] = "October"; $text["november"] = "November"; $text["december"] = "December"; $text["sunday"] = "Sunday"; $text["monday"] = "Monday"; $text["tuesday"] = "Tuesday"; $text["wednesday"] = "Wednesday"; $text["thursday"] = "Thursday"; $text["friday"] = "Friday"; $text["saturday"] = "Saturday"; $text["from"] = "From"; $text["to"] = "To"; $text["event_details"] = "Event details"; $text["confirm_rm_event"] = "Do you really want to remove event \"[name]\"?
Be careful: This action cannot be undone."; $text["dump_creation"] = "DB dump creation"; $text["dump_creation_warning"] = "With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server."; $text["dump_list"] = "Existings dump files"; $text["dump_remove"] = "Remove dump file"; $text["confirm_rm_dump"] = "Do you really want to remove the file \"[dumpname]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_user"] = "Do you really want to remove the user \"[username]\"?
Be careful: This action cannot be undone."; $text["confirm_rm_group"] = "Do you really want to remove the group \"[groupname]\"?
Be careful: This action cannot be undone."; $text["human_readable"] = "Human readable archive"; $text["email_header"] = "This is an automatic message from the DMS server."; $text["email_footer"] = "You can always change your e-mail settings using 'My Account' functions"; $text["add_multiple_files"] = "Add multiple files (will use filename as document name)"; // new from 2.0.1 $text["max_upload_size"] = "Maximum upload size for each file"; // new from 2.0.2 $text["space_used_on_data_folder"] = "Space used on data folder"; $text["assign_user_property_to"] = "Assign user's properties to"; ?> letodms-3.3.11+dfsg.1/languages/Hungarian/help.htm0000644000175000017500000000002412040235120022331 0ustar franciscofrancisco

TODO

letodms-3.3.11+dfsg.1/styles/0000755000175000017500000000000012040235117016342 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/styles/clean/0000755000175000017500000000000012040235117017424 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/styles/clean/style.css0000644000175000017500000002222612040235117021302 0ustar franciscofrancisco/* Copyright (C) 2010 Matteo Lucarelli */ body { font-size: 70%; font-family: sans-serif; } body.login { width: 50%; margin-left: auto; margin-right: auto; } .headingContainer { background: #fff; position: relative; } /* IE6 Hack */ * html .headingContainer { position: relative; } .localNavContainer { padding: 2px; margin-bottom: 0.4em; background: #fff; position: relative; } a:link { color: rgb(150,50,0); text-decoration: none; } a:visited { color: rgb(150,50,0); text-decoration: none; } a:hover { color: rgb(231,111,0); text-decoration: none; } a:active { color: rgb(150,50,0); text-decoration: none; } .mainHeading { padding: 2px 4px 0px 4px; font-size: 1.5em; font-weight: bold; color: black; position: absolute; bottom: 0px; } /* IE6 Hack */ * html .mainHeading { position: relative; } .contentHeading { background: #7d8288; color: white; padding: 2px 4px 2px 4px; margin-top: 10px; font-size: 1.2em; font-weight: bold; } .contentSubHeading { font-weight: bold; border-bottom: 1px solid; margin-top: 1em; margin-bottom: 2px; } .contentSubHeading#first { margin-top: 0; margin-bottom: 2px; } #logo { float:left; margin-right: 5px; } .siteName { background: url(img/bg-global-tl.png) no-repeat top left; padding: 2px 4px 0px 4px; font-size: 1.6em; font-weight: bold; font-style: italic; color: #fff; } .siteNameLogin { background: url(img/bg-global-tl.png) no-repeat top left; padding: 2px 4px 0px 4px; font-size: 3em; font-weight: bold; font-style: italic; color: #fff; } .globalBox { background: url(img/bg-global.png) repeat-x top left; position: relative; height: 4em; } /* IE6 Hack */ * html .globalBox { position: relative; } .globalBox#noNav { height: 4em; } div#signatory { padding-left: 55px; position: absolute; bottom: 1px; } /* IE6 Hack */ * html .globalBox div#signatory { position: relative; } .globalNav { padding: 4px; list-style-type: none; margin: 0px; text-align: right; float:right; /*font-variant: small-caps;*/ } /* IE6 Hack */ * html .globalNav { position: relative; } .globalNav li { display: inline; padding: 0px 4px 0px 4px; border-left: 1px solid; } .globalNav li#first { border-left: none; padding: 0px 4px 0px 0px; } .globalNav li form { display: inline; } .globalNav li input { font-size: 0.8em; border: 1px solid; padding: 1px; } .globalNav li input#searchButton { border-left:0px; padding: 0px; } .localNav { padding:1px; margin: 0px; margin-top: 3px; text-align: left; list-style-type: none; color: white; text-transform: uppercase; } .localNav li { font-size: 0.8em; display: inline; padding: 2px 4px 2px 4px; border: 1px solid #fff; background-color: #eee; } .globalTR { background: url(img/bg-global-tr.png) no-repeat top right; float: right; width: 8px; height: 8px; } .smallText { font-size: 0.8em; } .contentContainer { padding: 0px; width: 100%; margin: auto; } .content { background: url(img/content-gradient.png) repeat-x bottom left; background-color: white; padding: 0; border-top: 1px solid #e0e0e0; } .content-l { background: url(img/edge.png) repeat-y bottom left; } .content-r { background: url(img/edge.png) repeat-y bottom right; } .content-br { background: url(img/content-br.png) no-repeat bottom right; } .content-bl { background: url(img/content-bl.png) no-repeat bottom left; padding: 0.6em 1em; } .content input, .content select { font-size: 1em; } .content textarea { border: 1px solid; font-family: sans-serif; font-size: 1em; } td { vertical-align: top; } table.userView { border-collapse: collapse; width: 100%; } table.userView th { text-align: left; } ul.groupView{ list-style: none; font-weight: bold; } ul.groupView ul{ margin-top: 5px; margin-bottom: 20px; border-top: 1px solid #000; list-style-image:url("../../out/images/usericon.gif"); font-weight: normal; } #tree-open{ width: 25%; } #tree-open ul{ margin-left: 0px; padding: 0; padding-left:15px; } #tree-closed{ width: 20px; } table.folderView { border-collapse: collapse; width: 100%; } table.folderView thead tr { border-bottom: 1px solid rgb(189, 190, 192); } table.folderView th, table.folderView td { padding: 0.1em 0.4em; } table.folderView th { text-align: left; } table.folderView td { border-bottom: 1px solid rgb(224, 224, 224); } table.folderView tr.folder { border-bottom: 1px solid rgb(224, 224, 224); } table.defaultView { border-collapse: collapse; } table.defaultView thead tr { border-bottom: 1px solid rgb(189, 190, 192); } table.defaultView th, table.defaultView td { padding: 0.1em 0.4em; } table.defaultView th { text-align: left; } table.defaultView td { border-bottom: 1px solid rgb(224, 224, 224); } table.defaultView td.center { text-align: center; } table.defaultView tr.folder { border-bottom: 1px solid rgb(224, 224, 224); } td#userImage { border: 1px solid rgb(189, 190, 192); } img.userImage { height: 72px; } img.mimeicon { height: 18px; vertical-align: middle; border: none; } img.treeicon { border: none; padding-right: 0.1em; } span.selectedfoldertree{ font-weight: bold; } input.mimeicon { height: 18px; vertical-align: middle; border: none; } ul.reviewer { padding: 0; margin: 0; } ul.reviewer li { list-style: none; padding: 0.1em 0em; } ul.reviewer li.first { border-top: none; } ul.actions { padding: 0; margin: 0; } form ul.actions li { list-style: none; padding: 0 0 0.1em 0; } ul.actions li { list-style: none; padding: 0 0 0.1em 0; } ul.actions li img{ padding: 3px; } ul.documentDetail { margin: 0; padding:0; font-size: 0.8em; list-style: none; } .cbSelectTitle { float:left; width: 9em; } .cbSelectContainer { overflow:auto; height: 6em; width: 30em; border: 1px solid #777; margin-bottom: 3px; } .cbSelectContainer.empty { height: 1em; } .cbSelectList { margin:0; padding: 0.1em; } .cbSelectItem { list-style-type: none; } div.pageList{ border: 1px solid #ddd; padding: 3px; margin-top: 15px; margin-bottom: 15px; } div.pageList span.selected{ font-weight: bold; color: #fff; background-color: #7d8288; padding: 1px; } /* * I rather foolishly decided to have the title of the page exist at the * bottom of the containing DIV element. This means using absolute * positioning in order to get the desired effect in a way that is consistent. * However, this causes problems when the fonts are scaled as overlap can * occur with other elements, leading to unclean layout (since absolute * positioning removes the element from the document flow). My solution is to * place an empty element in the page directly before the title that remains * in the document flow. This fakes a margin around the title. * I've also applied this to the login form in the global navigation section. */ span.absSpacerNorm { display: block; height: 1.4em; line-height: 14px; font-size: 1.2em; } span.absSpacerTitle { display: block; min-height: 1.8em; font-size: 1.5em; padding-top: 0.2em; visibility: hidden; } .disclaimer { margin-top: 1em; padding: 3px; text-align: center; border: 1px solid #000; } .footNote { text-align: center; margin-top: 1em; } .warning{ font-weight: bold; padding:0.1em; border: 1px solid rgb(255,0,0); } .install_warning{ margin: 20px; padding: 10px; background: #fa0; color: #fff; font-weight: bold; font-size: 120%; } .error, .install_error{ margin: 20px; padding: 10px; background: #f00; color: #fff; font-weight: bold; font-size: 120%; } .legend{ list-style: none; border: 1px solid black; padding: 5px; } pre{ font-size: 140%; } /* these are used in help only */ h1{ font-size: 140%; font-weight: bold; background: #7d8288; color: #fff; padding-left: 5px; } h2{ font-size: 110%; font-weight: bold; border-bottom: 1px solid #999; } /* these are used in calendar */ table.calendaryear td.today{ border: 1px solid #7d8288; font-weight: bold; } table.calendaryear td.header{ font-weight: bold; color: #444; } table.calendaryear td{ border: 1px solid #000; padding : 10px; } table.calendaryear table td{ border: 0; padding : 1px; } table.calendarmonth , table.calendarweek { margin-top: 1em; } table.calendarmonth td, table.calendarweek td{ border-bottom: 1px solid #ddd; padding-left: 1em; padding-right: 1em; } table.calendarmonth td.separator, table.calendarweek td.separator{ border: 0; padding: 0; margin:0; } table.calendarmonth td.header, table.calendarmonth td.todayHeader, table.calendarweek td.header, table.calendarweek td.todayHeader{ border: 1px solid #7d8288; background: #eee; font-weight: bold; padding: 1px; color: #222; padding-left: 1em; padding-right: 1em; padding-bottom: 1em; } table.calendarmonth td.header a, table.calendarmonth td.todayHeader a, table.calendarweek td.header a, table.calendarweek td.todayHeader a{ color: #000; } table.calendarmonth td.today, table.calendarweek td.today{ background: #eee; } table.calendarmonth td.todayHeader, table.calendarweek td.todayHeader,table.calendarmonth td.todayHeader a, table.calendarweek td.todayHeader a{ background: #7d8288; color: #fff; } table.calendarweek td.header, table.calendarweek td.todayHeader{ padding-bottom: 2em; } table.searchform td{ padding-top: 5px; padding-bottom: 10px; padding-right: 5px; } div.logview{ overflow:auto; font-size: 80%; } letodms-3.3.11+dfsg.1/styles/clean/favicon.ico0000644000175000017500000000217612040235117021553 0ustar franciscofrancisco h(  9Jd\  `dLjԥӡ߼nnզӢў ̓ٮkkخ"d̓֩Ɔ׫ZŃă۳YY}}b6#<ZraFZletodms-3.3.11+dfsg.1/styles/clean/img/0000755000175000017500000000000012040235117020200 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/styles/clean/img/blue-gradient.png0000644000175000017500000000027112040235117023430 0ustar franciscofranciscoPNG  IHDR@TsbKGDSŐR pHYs  tIME5,hEIDAT} 0 ؍I6e @^$Sc5bcQ2[6z_[tdIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/bg-global-tr.png0000644000175000017500000000046112040235117023160 0ustar franciscofranciscoPNG  IHDRbKGD pHYs  tIME9)tEXtCommentCreated with The GIMPd%nIDATxMRPwoHTX!EQWQaZR5S9OWl?!$Hée? *\~|~}?z۶t]GDs>SEA2n׎?)0,AĸIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/small-blue-gradient.png0000644000175000017500000000024212040235117024534 0ustar franciscofranciscoPNG  IHDRsRGB pHYs  tIME +_K3IDATM @+au?B6& uof}ru:I3hX}IENDB` letodms-3.3.11+dfsg.1/styles/clean/img/bg-global.png0000644000175000017500000000035612040235117022540 0ustar franciscofranciscoPNG  IHDR03bKGD pHYs  tIME5ätEXtCommentCreated with The GIMPd%nQIDATx]0WK#}NU lQhCIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/content-br.png0000644000175000017500000000037212040235117022763 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 6;-tEXtCommentCreated with The GIMPd%noIDATxuA !+Yq.#hNY1}_9dΉ"{9p'fF),11 c ̌;!χkZ#4""ָp4fIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/blue-gradient-48px.png0000644000175000017500000000025612040235117024234 0ustar franciscofranciscoPNG  IHDR0_Q pHYs  tIME +9tEXtComment̖8IDATו  +(g@c.K2`+7ӻJmwV IENDB` letodms-3.3.11+dfsg.1/styles/clean/img/small-grey-gradient.png0000644000175000017500000000024512040235117024556 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 91 xtEXtComment̖/IDATUK JESM jcF%q| }XFIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/content-gradient.png0000644000175000017500000000030112040235117024145 0ustar franciscofranciscoPNG  IHDR@@bKGDj pHYs  tIME "V[tEXtCommentCreated with The GIMPd%n$IDATxc&$.MĆE>|`4DbIENDB` letodms-3.3.11+dfsg.1/styles/clean/img/bg-global-tl.png0000644000175000017500000000044612040235117023155 0ustar franciscofranciscoPNG  IHDRbKGD pHYs  tIME8# tEXtCommentCreated with The GIMPd%nIDATxM10gq R8EP(€rwmR q"̺H x:s,˂B€KZ+8H7Nz3 P Dh*moؐlC`HE|!!IENDB` letodms-3.3.11+dfsg.1/styles/clean/img/edge.png0000644000175000017500000000020212040235117021604 0ustar franciscofranciscoPNG  IHDRwS pHYs  tIME  tEXtComment̖ IDATxcxD:IENDB` letodms-3.3.11+dfsg.1/styles/clean/img/content-bl.png0000644000175000017500000000037312040235117022756 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 8'gtEXtCommentCreated with The GIMPd%npIDATxuʱ 0݅ؤQ,Vwpn-9RUL;οV3:"y)% "Xss]۶af`SEA2n׎?)0,AĸIENDB` letodms-3.3.11+dfsg.1/styles/hc/img/small-blue-gradient.png0000644000175000017500000000024212040235117024044 0ustar franciscofranciscoPNG  IHDRsRGB pHYs  tIME +_K3IDATM @+au?B6& uof}ru:I3hX}IENDB` letodms-3.3.11+dfsg.1/styles/hc/img/bg-global.png0000644000175000017500000000035612040235117022050 0ustar franciscofranciscoPNG  IHDR03bKGD pHYs  tIME5ätEXtCommentCreated with The GIMPd%nQIDATx]0WK#}NU lQhCIENDB` letodms-3.3.11+dfsg.1/styles/hc/img/content-br.png0000644000175000017500000000037212040235117022273 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 6;-tEXtCommentCreated with The GIMPd%noIDATxuA !+Yq.#hNY1}_9dΉ"{9p'fF),11 c ̌;!χkZ#4""ָp4fIENDB` letodms-3.3.11+dfsg.1/styles/hc/img/blue-gradient-48px.png0000644000175000017500000000025612040235117023544 0ustar franciscofranciscoPNG  IHDR0_Q pHYs  tIME +9tEXtComment̖8IDATו  +(g@c.K2`+7ӻJmwV IENDB` letodms-3.3.11+dfsg.1/styles/hc/img/small-grey-gradient.png0000644000175000017500000000024512040235117024066 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 91 xtEXtComment̖/IDATUK JESM jcF%q| }XFIENDB` letodms-3.3.11+dfsg.1/styles/hc/img/content-gradient.png0000644000175000017500000000030112040235117023455 0ustar franciscofranciscoPNG  IHDR@@bKGDj pHYs  tIME "V[tEXtCommentCreated with The GIMPd%n$IDATxc&$.MĆE>|`4DbIENDB` letodms-3.3.11+dfsg.1/styles/hc/img/bg-global-tl.png0000644000175000017500000000044612040235117022465 0ustar franciscofranciscoPNG  IHDRbKGD pHYs  tIME8# tEXtCommentCreated with The GIMPd%nIDATxM10gq R8EP(€rwmR q"̺H x:s,˂B€KZ+8H7Nz3 P Dh*moؐlC`HE|!!IENDB` letodms-3.3.11+dfsg.1/styles/hc/img/edge.png0000644000175000017500000000020212040235117021114 0ustar franciscofranciscoPNG  IHDRwS pHYs  tIME  tEXtComment̖ IDATxcxD:IENDB` letodms-3.3.11+dfsg.1/styles/hc/img/content-bl.png0000644000175000017500000000037312040235117022266 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 8'gtEXtCommentCreated with The GIMPd%npIDATxuʱ 0݅ؤQ,Vwpn-9RUL;οV3:"y)% "Xss]۶af`}c>|c?}d>~d>}d?~e?e?f@f@g@g@g@gAhAiBiBiCjBjBjCjCkDlClDlDmDmEmEnEnFoEoFoFoFoGpFpFpGqGqHrGrHrHsHsHsItItItJuJuJvJvJvKwKwLwLxLxLxMyLyLyMzMzMzNzNzN{N{N{O|O}O}P}P~P~P~Q~QQQRRRRRSSy  yy y'%%&&&$&$"#!!!y../,,,-*++*))(y56642431111100y===<;:;::99987yEGFECCED?BB@A>yOMMNLLLKKIJHIIyWVUTTSSSSRRSQPy^_]\\\\ZYY[YXXyhghfgfedbbcca`yppoomnnklkjjiiywwvxuvvrtqrssqyyyyyyyyyyyyyyyyletodms-3.3.11+dfsg.1/styles/blue/img/0000755000175000017500000000000012040235117020045 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/styles/blue/img/blue-gradient.png0000644000175000017500000000027112040235117023275 0ustar franciscofranciscoPNG  IHDR@TsbKGDSŐR pHYs  tIME5,hEIDAT} 0 ؍I6e @^$Sc5bcQ2[6z_[tdIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/bg-global-tr.png0000644000175000017500000000046112040235117023025 0ustar franciscofranciscoPNG  IHDRbKGD pHYs  tIME9)tEXtCommentCreated with The GIMPd%nIDATxMRPwoHTX!EQWQaZR5S9OWl?!$Hée? *\~|~}?z۶t]GDs>SEA2n׎?)0,AĸIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/small-blue-gradient.png0000644000175000017500000000024212040235117024401 0ustar franciscofranciscoPNG  IHDRsRGB pHYs  tIME +_K3IDATM @+au?B6& uof}ru:I3hX}IENDB` letodms-3.3.11+dfsg.1/styles/blue/img/bg-global.png0000644000175000017500000000035612040235117022405 0ustar franciscofranciscoPNG  IHDR03bKGD pHYs  tIME5ätEXtCommentCreated with The GIMPd%nQIDATx]0WK#}NU lQhCIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/content-br.png0000644000175000017500000000037212040235117022630 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 6;-tEXtCommentCreated with The GIMPd%noIDATxuA !+Yq.#hNY1}_9dΉ"{9p'fF),11 c ̌;!χkZ#4""ָp4fIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/blue-gradient-48px.png0000644000175000017500000000025612040235117024101 0ustar franciscofranciscoPNG  IHDR0_Q pHYs  tIME +9tEXtComment̖8IDATו  +(g@c.K2`+7ӻJmwV IENDB` letodms-3.3.11+dfsg.1/styles/blue/img/small-grey-gradient.png0000644000175000017500000000024512040235117024423 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 91 xtEXtComment̖/IDATUK JESM jcF%q| }XFIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/content-gradient.png0000644000175000017500000000030112040235117024012 0ustar franciscofranciscoPNG  IHDR@@bKGDj pHYs  tIME "V[tEXtCommentCreated with The GIMPd%n$IDATxc&$.MĆE>|`4DbIENDB` letodms-3.3.11+dfsg.1/styles/blue/img/bg-global-tl.png0000644000175000017500000000044612040235117023022 0ustar franciscofranciscoPNG  IHDRbKGD pHYs  tIME8# tEXtCommentCreated with The GIMPd%nIDATxM10gq R8EP(€rwmR q"̺H x:s,˂B€KZ+8H7Nz3 P Dh*moؐlC`HE|!!IENDB` letodms-3.3.11+dfsg.1/styles/blue/img/edge.png0000644000175000017500000000020212040235117021451 0ustar franciscofranciscoPNG  IHDRwS pHYs  tIME  tEXtComment̖ IDATxcxD:IENDB` letodms-3.3.11+dfsg.1/styles/blue/img/content-bl.png0000644000175000017500000000037312040235117022623 0ustar franciscofranciscoPNG  IHDR pHYs  tIME 8'gtEXtCommentCreated with The GIMPd%npIDATxuʱ 0݅ؤQ,Vwpn-9RUL;οV3:"y)% "Xss]۶af`KՂb7m,_Z;tSPזβAlNmKi'{|Lt'R =0p33s,[IYY<fR DDb-60JR2T ( 3&VUCk^BZ04UU!^M_mZ7L,',;_v@yJI|WP@F oЦ651H x%j`l1l0Ϙ!} 9Sh15y'd7GDd.PF-_o6|F@]ݕc &ast82lxV:=q]&k¹ԀR2aԺH ]ttPgizIVɊfr{o*} %C.aΕ=ЃCy2 >5Ɵ4[i nRft*%xgvJz-Tڽt%A 2r͕9W&S2hjrfc1#vJ N,GlS;Q Hy=ĂH t M](ݮ_oF `bbb`J͠HkW淜@qeI"@>W0 7赱ZY4}{R] n3p :tܣUo(e%{B֡˧W@5x /Pv@DM`PMIu.kZu,!Wf49Wn6ZIF=P5#r}\g9||lUo MNت걇tU;<"^S0[| cC}sT1DX).ZǝvhC~W@ݷ:Z⳸qzQ J8@o#Sm]mPიI{}M_{SI@(|-%xǪebjMPo c˜Pq*1FR'Edxס(*oۧ[4''1f,301|f4ãG֏=ѦZ2 mX˪{Rݥ  ^~E]c %җʇ.0\4}L"H|x hQJ*% rq9ED^fJ˽<Woũߦx@81%9rNٛ#"5Y8"rTD^K\#2u`*jDdOxyB @w[f֧IFDq sk5FUuz3 *ɹMz3'"΋"[IDD#"2)"F`- ප$XIENDB`letodms-3.3.11+dfsg.1/styles/changes.txt0000644000175000017500000004400412040235117020515 0ustar franciscofrancisco------------------------------------------------------------------- Changes in version 1.7.2 ------------------------------------------------------------------- - Style Sheet modifications to improve IE6 compatibility, contributed by Juan Lago (thanks Juan!). This fixes some placement issues with elements that have the position attribute set to "absolute". - The div elements that are used to clear floats have been fixed so that they have zero height in IE6. It is not enough to specify "height: 0"; one must also set "font-size:0" otherwise IE6 will set the height of the element to match the standard font size. - UI layout improvements. Various changes to the user interface to improve the page flow and allow for further expansion in the future. The context menu bar has been separated from the page heading into its own container underneath the title. It's a more logical place to present the menu, and will allow for the easy addition of further sub-headings in the future without compromising the page flow. - The last dependency on the original theme system has been eliminated with the introduction of updated chooser dialogues for selecting files and folders. These dialogues have the new themes and the code has been revamped, replacing the old table structures with unordered lists. - LDAP update. A minor change to the LDAP authentication code to allow for the use of URIs to identify the server name (e.g. ldaps://host.com). Also, the LDAP version is set to 3 in order to support secure connections. - New language translations for Czech and Slovak. Contributed by SF user helix84 (thanks!). ------------------------------------------------------------------- Changes in version 1.7.1 ------------------------------------------------------------------- - Re-vamped Notification system allows users to receive an email when a document or folder is changed. This is a new, event-based mechanism that notifies the user as soon as the change has been made and replaces the cron mechanism originally developed. Any user that has read access to a document or folder can subscribe to be notified of changes. Users that have been assigned as reviewers or approvers for a document are automatically added to the notification system for that document. A new page has been created for users to assist with the management of their notification subscriptions. This can be found in the "My Account" section under "Notification List". - The test used to identify HTTPS connections has been improved so that it correctly identifies IIS servers that have ISAPI enabled but are not using HTTPS protocol. ------------------------------------------------------------------- Changes in version 1.7.0 ------------------------------------------------------------------- - Fixes to CSS display bugs. Minor updates to the display. - Improved handling of character escape sequences. - Review / Approve dates added to folder views and search results. - New file system directory management code to accommodate limitations in the underlying filesystem which restrict the number of files that MyDMS can store. MyDMS now uses a nested directory structure to store files, rather than a flat one. However, note that individual files are still stored one per directory in order to preserve compatibility with older versions of MyDMS. For details of the problem and the solution implemented, please refer to: http://mydms.sf.net/2007/08/15/new-file-system-storage-structure/ - Hungarian translation. - And as a bonus, there is a Drupal theme compatible with MyDMS. ------------------------------------------------------------------- Changes in version 1.6.1 ------------------------------------------------------------------- - Theme and language choice are now saved as user attributes between sessions. Read update-1.6.1.txt for changes to database schema. - Link to document review / approval page from out.ViewDocument.php. - French translation. - Brazilian Portuguese translation. - Traditional Chinese translation. - Relaxation of criteria for selecting reviewers / approvers. Users now only require read access to be eligible reviewers or approvers. - Documents are now displayed in the correct sequence in the folder view. - Documents can be downloaded directly from the folder view by clicking their icon. - Document icons in the folder view now reflect the document type. - Empty passwords are not accepted, even when JS is disabled in the browser. - New restricted access mode rejects login from users who are not entered into the internal database, even if LDAP authentication was successful. ------------------------------------------------------------------- Changes in version 1.6.0 ------------------------------------------------------------------- - Introduction of a document workflow system that manages the life-cycle of a document, including review and approval stages. Details: Document Class: Created new methods: Document::addIndReviewer() Document::addGrpReviewer() Document::addIndApprover() Document::addGrpApprover() Changes to: Document::addContent() New Class: Email. out.AddDocument.php op.AddDocument.php Changes to allow selection of reviewers and approvers. Group Class: Changes to: Group::getUsers() -- query optimised New Methods: Group::getReviewStatus() Group::getApprovalStatus() User Class: New Methods: User::getReviewStatus() User::getApprovalStatus() Class Folder: Changes to: Folder::addDocument() -- accept reviewers, approvers as parameters. New Class: AddContentResultSet. Database: Document version field changed from TINYINT to unsigned SMALLINT throughout database. `tblGroupMembers`: `id` field removed as it is unnecessary. Created a primary of `groupID`, `userID`. DocumentContent Class: Created new methods: DocumentContent::getStatus() DocumentContent::getReviewStatus() DocumentContent::getApprovalStatus() DocumentContent::delIndReviewer() DocumentContent::delGrpReviewer() DocumentContent::delIndApprover() DocumentContent::delGrpApprover() out.ViewDocument.php op.ViewDocument.php Changes to incorporate display of workflow status. Links to allow user to change status of a document revision. out.UpdateDocument.php op.UpdateDocument.php Changes to allow selection of reviewers and approvers. out.Login.php op.Login.php redirect user to originally requested URL upon successful login. out.ReviewDocument.php op.ReviewDocument.php out.ApproveDocument.php op.ApproveDocument.php Created to enable users to review and approve documents. out.OverrideContentStatus.php op.OverrideContentStatus.php Allows document owner or site administrator to override the status of a document. out.SetReviewersApprovers.php op.SetReviewersApprovers.php Allows document owner or site administrator to re-assign reviewers and approvers to a document revision that is pending review or approval. out.ActionSummary.php Lists all the documents owned by current user that are pending review or approval. Lists all documents that are awaiting review or approval by the user. Search page now allows user to search for documents pending review or approval. Search results display overall document status. - Admin user cannot be deleted, and admin privilege cannot be removed from the admin user. Previously, both actions were possible. - Users can be assigned administrative privileges in the User Manager. - Deleting document revisions or the document itself notifies all affected users by email, deletes entries from all status logs. ------------------------------------------------------------------- Changes in version 1.5.1 ------------------------------------------------------------------- - Fixed a bug in the keyword editing code which was preventing users from adding default keywords into global keyword categories. ------------------------------------------------------------------- Changes in version 1.5.0 ------------------------------------------------------------------- - Optimised search. Improved the performance of the search function by placing more of the work on the database and by applying indexes to some of the tables. Sub-folder searches are also dramatically improved due to the incorporation of a folderList field in the tblDocuments table. - Optimised display. New compact theme significantly reduces the page load times. This is the default theme. The original is still available as a selection. - Changed file download headers such that downloading works with IE over SSL. - Changed all instances of $HTTP_COOKIES_VARS, which has been deprecated, to $_COOKIE. - Replaced all short open tags (.tar.gz) and the web application itself (letoDMS-.tar.gz). The core is a pear package which could be installed as one. It is responsible for all the database operations. The web application contains the gui not knowing anything about the database layout. Second, one letoDMS installation can be used for various customer instances by sharing a common source. Starting with version 3.2.0 a full text search engine has been added. This requires the zend framework and another pear package LetoDMS_Lucene-.tar.gz which can be downloaded from the letoDMS web page. Finally, letoDMS has got a web based installation, which takes care of most of the installation process. Before you proceed you have to decide how to install letoDMS: 1. with multiple instances 2. as a single instance Both have its pros and cons, but 1. setting up a single instance is easier if you have no shell access to the web server 2. the installation script is only tested on single instances Installation for multiple instances shares the same source by many instances but requires to create links which is not in any case possible on your web server. 0. Some preparation ======================================================= A common source of problems in the past have been the additional software packages needed by letoDMS. Those are the PEAR packages Log and HTTP_WebDAV_Server as well as Zend_Framework and ADOdb. If you have full access to the server running a Linux distribution it is recommended to install those with your package manager if they are provided by your Linux distribution. If you can not install it this way then choose a directory (preferable not below your web document root), unpack the software into it and extend the php include path with your newly created directory. Extending the php include can be either done by modifying php.ini or adding a line like php_value include_path '/home/mypath:.:/usr/share/php' to your apache configuration. Do not forget to add the standard include_path. Another way to make letoDMS find all the additional software relies on the ADOdb path in the configuration. The ADOdb path also extends the php include path. This is done very early during the page creation. Consequently all software installed below this path is found as well. For both the LetoDMS_Core and LetoDMS_Lucene package the path can be set in the configuration, but you can also install them like ADOdb and Log somewhere in the php include path. 1. Using the installation tool ============================================ Unpack LetoDMS-.tar.gz and LetoDMS_Core-.tar.gz on your web server. For the full text search engine support, you will also need to unpack LetoDMS_Lucene-.tar.gz. For the following instructions we will assume the files of LetoDMS-.tar.gz are accessible through http://localhost/letodms/ * Point you web browser towards http://hostname/letodms/install/ * Follow the instructions on the page and create a file ENABLE_INSTALL_TOOL in the conf directory. * Create a data directory with the two sub directories staging and lucene. Make sure the data directory is either *not* below your document root or is protected with a .htaccess file against web access. The data directory needs to be writable by the web server. * Clicking on 'Start installation' will show a form with all necessary settings for a basic installation. * After saving your settings succesfully you are ready to log in as admin and continue customizing your installation with the 'Admin Tools' 2. Detailed installation instructions (single instance) ===================== You need a working web server with MySQL/PHP5 support and the files LetoDMS-.tar.gz and LetoDMS_Core-.tgz. For the full text search engine support, you will also need to unpack LetoDMS_Lucene-.tgz. * Unpack all the files in a public web server folder. If you're working on a host machine your provider will tell you where to upload the files. If possible do not unpack LetoDMS_Core-.tgz and LetoDMS_Lucene-.tgz. below the document root of your web server. Since they are pear packages they can also be installed with 'pear install LetoDMS_Core-.tgz' and 'pear install LetoDMS_Lucene-.tgz' * Unless ADODB is not already installed on your system, download (http://adodb.sourceforge.net/) and unpack it in the letoDMS directory * The PEAR package Log is also needed. It can be downloaded from http://pear.php.net/package/Log. Unpack it a place where it can be found by php. * The package HTTP_WebDAV_Server is also needed. It can be downloaded from http://pear.php.net/package/HTTP_WebDAV_Server. Unpack it a place where it can be found by php. * Create a data folder somewhere on your web server including the subdirectories staging and lucene and make sure they are writable by your web server, but not accessible through the web. For security reason the data folder should not be inside the public folders or should be protected by a .htaccess file. If you install letodms for the first time continue with the database setup. * Create a new database on your web server e.g. for mysql: create database letodms; * Create a new user for the database with all permissions on the new database e.g. for mysql: grant all privileges on letodms.* to letodms@localhost identified by 'secret'; (replace 'secret' with you own password) * Optionally import "create_tables.sql" in the new database e.g. for mysql: cat create_tables.sql | mysql -uletodms -p letodms This step can also be done by the install tool. * create a file ENABLE_INSTALL_TOOL in the conf directory and point your browser at http://host//install NOTE: UPDATING FROM A PREVIOUS VERSION - make a backup archive of your installation folder - make a backup archive of your data folder - dump your current database - extract the letoDMS archive to your web server - edit the conf/settings.xml file to match your previuos settings (you can even replace the file with your own one eventualy adding by hand the missing new parameters) - create a file ENABLE_INSTALL_TOOL in the conf directory and point your browser at http://host//install The install tool will detect the version of your current letodms installation and run the required database updates. 3. Requirements ================================================================ letoDMS is a web-based application written in PHP. It uses the MySQL RDBMS to manage the documents that were uploaded into the application. Make sure you have PHP 5.0 and MySQL 5 or higher installed. letoDMS will work with PHP running in CGI-mode as well as running as module under apache. If you want to give your users the opportunity of uploading passport photos you have to enable the gd-library (but the rest of letoDMS will work without gd, too). You will also need to download and install the ADODB database abstraction library from http://adodb.sf.net/ unless it is not installed on your system already. The webdav server uses the pear packages 'Log' and 'HTTP_WebDAV_Server'. Both can be downloaded from http://pear.php.net. If you plan to use the full text search engine you will have to install the zend framework, too. 4. Email Notification ========================================================== A notification system allows users to receive an email when a document or folder is changed. This is an event-based mechanism that notifies the user as soon as the change has been made and replaces the cron mechanism originally developed. Any user that has read access to a document or folder can subscribe to be notified of changes. Users that have been assigned as reviewers or approvers for a document are automatically added to the notification system for that document. A new page has been created for users to assist with the management of their notification subscriptions. This can be found in the "My Account" section under "Notification List". 5. Auto-conversion to HTML ===================================================== Version 1.3.0 introduces a new feature: Documents can automatically be converted to HTML when uploading. You can enable this feature by setting enableConverting (in settings.xml) to true. You will also need to edit convertFileTypes (again in settings.xml). This array defines which file-types are converted and how. Under windows Word-, Excel- and Powerpoint-Files are automatically converted using js-Scipts and MS-Office. I tested it with Office 2000 and it worked just fine. Under Linux mswordview is used to convert Word-Files by default. Warning: Getting this feature working can be very tricky but if it works it is a great enhancement I think. Especially IIS could cause problems with its IIS-Guest-Account not having enough rights to execute Word or Excel... You will also have to edit your httpd.conf to be able to view the converted files online. Load mod_rewrite and add to following lines to your conf: RewriteEngine on RewriteCond %{REQUEST_URI} (.*)viewonline/([0-9]+)/([0-9]+)/(.+)$ RewriteRule (.*)viewonline/([0-9]+)/([0-9]+)/(.+)$ $1op.ViewOnline.php?request=$2:$3 [PT] IIS Users can download the IIS Rewrite Engine for example: http://www.qwerksoft.com/products/iisrewrite/ Post any questions to the LetoDMS forum, please. 6. Nearly finished ============================================================= Now point your browser to http://your.server.com/letoDMS-/index.php and login with "admin" both as username and password. After having logged in you should first choose "My Account" and change the Administrator's password and email-address. CONFIGURING MULTIPLE INSTANCES ================================================= Since version 3.0.0, letoDMS can be set up to run several parallel instances sharing the same source but each instance has its own configuration. This is quite useful if you intend to host letoDMS for several customers. This approach still allows to have diffenrent version of letoDMS installed and will not force you to upgrade a customer instance, because other instances are upgraded. A customer instance consists of 1. a directory containing mostly links to the letoDMS source and a configuration file 2. a directory containing the document content files 3. a database 1. Unpack the letoDMS distribution ============================================= Actually there is no need to set up the database at this point but it won't hurt since you'll need one in the next step anyway. The sources of letoDMS can be anywhere you like. The do not have to be in you www-root. If you just have access to your www-root directory, then put them there. 2. Setup the instance ========================================================== Unpack the files as described in the quick installation. Create a directory in your www-root or use www-root for your instance. In the second case, you will not be able to create a second instance, because each instance needs its own directory. Go into that directory create the following links ( is the directory of your initial letoDMS intallation). src -> inc -> src/inc op -> src/op out -> src/out languages -> src/languages styles -> src/styles install -> src/install index.php -> src/index.php ln -s ../letoDMS- ln -s src/inc inc ln -s src/op op ln -s src/out out ln -s src/languages languages ln -s src/styles styles ln -s src/install install ln -s src/index.php index.php Create a new directory named conf and run the installation tool. Creating the links as above has the advantage that you can easily switch to a new version and go back if it is necessary. You could even run various instances of letoDMS using different versions. 3. Create a database and data store for each instance ========================== Create a database and data store for each instance and adjust the database settings in conf/settings.xml or run the installation tool. Point your web browser towards the index.php file in your new instance. LICENSING ====================================================================== LetoDMS is licensed unter GPLv2 Jumploader is licensed as stated by the author on th web site (http://jumploader.com/) -- Taken from web site of jumploader --- You may use this software for free, however, you should not: - Decompile binaries. - Alter or replace class and/or resource files. - Redistribute this software under different name or authority. If you would like a customized version, I can do this for a fee. Don’t hesitate to contact me with questions or comments. letodms-3.3.11+dfsg.1/conf/0000755000175000017500000000000012040235117015744 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/conf/stopwords.txt0000644000175000017500000001022712040235117020553 0ustar franciscofranciscoa ab aber als am an auch auf aus bei bin bis ist da dadurch daher darum das daß dass dass dein deine dem den der des dessen deshalb die dies dieser dieses doch dort du durch ein eine einem einen einer eines er es euer eure für hatte hatten hattest hattet hier hinter ich ihr ihre im in ist ja jede jedem jeden jeder jedes jener jenes jetzt kann kannst können könnt machen mein meine mit muß muss mußt musst musst müssen müßt müsst nach nachdem nein ncht nun oder seid sein seine sich sie sind soll sollen sollst sollt sonst soweit sowie und unser unsere unter vom von vor wann warum was weiter weitere wenn wer werde werden werdet weshalb wie wieder wieso wir wird wirst wo woher wohin zu zum zur über a's able about above according accordingly across actually after afterwards again against ain't all allow allows almost alone along already also although always am among amongst an and another any anybody anyhow anyone anything anyway anyways anywhere apart appear appreciate appropriate are aren't around as aside ask asking associated at available away awfully be became because become becomes becoming been before beforehand behind being believe below beside besides best better between beyond both brief but by c'mon c's came can can't cannot cant cause causes certain certainly changes clearly co com come comes concerning consequently consider considering contain containing contains corresponding could couldn't course currently definitely described despite did didn't different do does doesn't doing don't done down downwards during each edu eg eight either else elsewhere enough entirely especially et etc even ever every everybody everyone everything everywhere ex exactly example except far few fifth first five followed following follows for former formerly forth four from further furthermore get gets getting given gives go goes going gone got gotten greetings had hadn't happens hardly has hasn't have haven't having he he's hello help hence her here here's hereafter hereby herein hereupon hers herself hi him himself his hither hopefully how howbeit however i'd i'll i'm i've ie if ignored immediate in inasmuch inc indeed indicate indicated indicates inner insofar instead into inward is isn't it it'd it'll it's its itself just keep keeps kept know knows known last lately later latter latterly least less lest let let's like liked likely little look looking looks ltd mainly many may maybe me mean meanwhile merely might more moreover most mostly much must my myself name namely nd near nearly necessary need needs neither never nevertheless new next nine no nobody non none noone nor normally not nothing novel now nowhere obviously of off often oh ok okay old on once one ones only onto or other others otherwise ought our ours ourselves out outside over overall own particular particularly per perhaps placed please plus possible presumably probably provides que quite qv rather rd re really reasonably regarding regardless regards relatively respectively right said same saw say saying says second secondly see seeing seem seemed seeming seems seen self selves sensible sent serious seriously seven several shall she should shouldn't since six so some somebody somehow someone something sometime sometimes somewhat somewhere soon sorry specified specify specifying still sub such sup sure t's take taken tell tends th than thank thanks thanx that that's thats the their theirs them themselves then thence there there's thereafter thereby therefore therein theres thereupon these they they'd they'll they're they've think third this thorough thoroughly those though three through throughout thru thus to together too took toward towards tried tries truly try trying twice two un under unfortunately unless unlikely until unto up upon us use used useful uses using usually value various very via viz vs want wants was wasn't way we we'd we'll we're we've welcome well went were weren't what what's whatever when whence whenever where where's whereafter whereas whereby wherein whereupon wherever whether which while whither who who's whoever whole whom whose why will willing wish with within without won't wonder would would wouldn't yes yet you you'd you'll you're you've your yours yourself yourselves zero letodms-3.3.11+dfsg.1/conf/.htaccess0000644000175000017500000000024512040235117017543 0ustar franciscofrancisco# Make sure settings.xml can not be opened from outside! #Redirect /conf/settings.xml /index.php Order allow,deny Deny from all letodms-3.3.11+dfsg.1/conf/settings.xml.template0000644000175000017500000002041412040235117022141 0ustar franciscofrancisco letodms-3.3.11+dfsg.1/js/0000755000175000017500000000000012303702765015445 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/op/0000755000175000017500000000000012056056320015441 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/op/op.SearchFulltext.php0000644000175000017500000001555012055745601021540 0ustar franciscofrancisco_rootFolderID; } else { $folderid = $_GET["folderid"]; } $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("search_results"),getMLText("invalid_folder_id")); } // Create the keyword search string. This search spans up to three columns // in the database: keywords, name and comment. if (isset($_GET["query"]) && is_string($_GET["query"])) { $query = $_GET["query"]; } else { $query = ""; } // category $categories = array(); if(isset($_GET['categoryids']) && $_GET['categoryids']) { foreach($_GET['categoryids'] as $catid) { if($catid > 0) { $category = $dms->getDocumentCategory($catid); $categories[] = $category->getName(); } } } // // Get the page number to display. If the result set contains more than // 25 entries, it is displayed across multiple pages. // // This requires that a page number variable be used to track which page the // user is interested in, and an extra clause on the select statement. // // Default page to display is always one. $pageNumber=1; if (isset($_GET["pg"])) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } else if (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } // --------------- Suche starten -------------------------------------------- $folderPathHTML = getFolderPathHTML($folder, true); UI::htmlStartPage(getMLText("search_results")); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "", $folder); UI::contentHeading(getMLText("search_results")); // Check to see if the search has been restricted to a particular // document owner. $owner = null; if (isset($_GET["ownerid"]) && is_numeric($_GET["ownerid"]) && $_GET["ownerid"]!=-1) { $owner = $dms->getUser($_GET["ownerid"]); if (!is_object($owner)) { UI::contentContainer(getMLText("unknown_owner")); UI::htmlEndPage(); exit; } } $pageNumber=1; if (isset($_GET["pg"])) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } else if (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } $startTime = getTime(); if($settings->_enableFullSearch) { if(!empty($settings->_luceneClassDir)) require_once($settings->_luceneClassDir.'/Lucene.php'); else require_once('LetoDMS/Lucene.php'); } Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); $index = Zend_Search_Lucene::open($settings->_luceneDir); $lucenesearch = new LetoDMS_Lucene_Search($index); $hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categories); $limit = 25; $resArr = array(); if($pageNumber != 'all' && count($hits) > $limit) { $resArr['totalPages'] = (int) (count($hits) / $limit); if ((count($hits)%$limit) > 0) $resArr['totalPages']++; $hits = array_slice($hits, ($pageNumber-1)*$limit, $limit); } else { $resArr['totalPages'] = 1; } $resArr['docs'] = array(); $resArr['totalDocs'] = 0; if($hits) { $resArr['totalDocs'] = 0; //count($hits); foreach($hits as $hit) { if($tmp = $dms->getDocument($hit['document_id'])) { $resArr['docs'][] = $tmp; $resArr['totalDocs']++; } } } $searchTime = getTime() - $startTime; $searchTime = round($searchTime, 2); UI::contentContainerStart(); ?>
$resArr['totalDocs'])); } ?> $searchTime));?>
"; print "\n\n"; //print "\n"; print "".getMLText("name")."\n"; print "".getMLText("owner")."\n"; print "".getMLText("status")."\n"; print "".getMLText("version")."\n"; print "".getMLText("comment")."\n"; //print "".getMLText("reviewers")."\n"; //print "".getMLText("approvers")."\n"; print "\n\n\n"; $resultsFilteredByAccess = false; foreach ($resArr['docs'] as $document) { if ($document->getAccessMode($user) < M_READ) { $resultsFilteredByAccess = true; } else { $lc = $document->getLatestContent(); print ""; $docName = htmlspecialchars($document->getName()); print "getID()."\">/"; $folder = $document->getFolder(); $path = $folder->getPath(); for ($i = 1; $i < count($path); $i++) { print htmlspecialchars($path[$i]->getName())."/"; } print $docName; print ""; $owner = $document->getOwner(); print "".htmlspecialchars($owner->getFullName()).""; $display_status=$lc->getStatus(); print "".getOverallStatusText($display_status["status"]). ""; print "".$lc->getVersion().""; $comment = htmlspecialchars($document->getComment()); if (strlen($comment) > 50) $comment = substr($comment, 0, 47) . "..."; print "".$comment.""; print "\n"; } } if ($resultsFilteredByAccess) { print "". getMLText("search_results_access_filtered") . ""; } print "\n"; UI::pageList($pageNumber, $resArr['totalPages'], "../op/op.Search.php", $_GET); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/op/op.UnlockDocument.php0000644000175000017500000000520512040235122021513 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!$document->isLocked()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("document_is_not_locked")); } $lockingUser = $document->getLockingUser(); if (($lockingUser->getID() == $user->getID()) || ($document->getAccessMode($user) == M_ALL)) { if (!$document->setLocked(false)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } add_log_line(); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.DocumentAccess.php0000644000175000017500000002462512040235122021470 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ /* FIXME: Currently GET request are allowed. */ if(!checkFormKey('documentaccess', 'GET')) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_request_token")); } switch ($_GET["action"]) { case "setowner": case "delaccess": case "inherit": $action = $_GET["action"]; break; case "setdefault": case "editaccess": case "addaccess": $action = $_GET["action"]; if (!isset($_GET["mode"]) || !is_numeric($_GET["mode"]) || $_GET["mode"]M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_access_mode")); } $mode = $_GET["mode"]; break; case "notinherit": $action = $_GET["action"]; if (strcasecmp($_GET["mode"], "copy") && strcasecmp($_GET["mode"], "empty")) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_access_mode")); } $mode = $_GET["mode"]; break; default: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_action")); break; } if (isset($_GET["userid"])) { if (!is_numeric($_GET["userid"])) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); } if (!strcasecmp($action, "addaccess") && $_GET["userid"]==-1) { $userid = -1; } else { if (!is_object($dms->getUser($_GET["userid"]))) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); } $userid = $_GET["userid"]; } } if (isset($_GET["groupid"])) { if (!is_numeric($_GET["groupid"])) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_group")); } if (!strcasecmp($action, "addaccess") && $_GET["groupid"]==-1) { $groupid = -1; } else { if (!is_object($dms->getGroup($_GET["groupid"]))) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_group")); } $groupid = $_GET["groupid"]; } } //ndern des Besitzers ---------------------------------------------------------------------------- if ($action == "setowner") { if (!$user->isAdmin()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_GET["ownerid"]) || !is_numeric($_GET["ownerid"]) || $_GET["ownerid"]<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); } $newOwner = $dms->getUser($_GET["ownerid"]); if (!is_object($newOwner)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); } $oldOwner = $document->getOwner(); if($document->setOwner($newOwner)) { $document->getNotifyList(); // Send notification to subscribers. if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("ownership_changed_email"); $message = getMLText("ownership_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("old").": ".$oldOwner->getFullName()."\r\n". getMLText("new").": ".$newOwner->getFullName()."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // Send notification to previous owner. $notifier->toIndividual($user, $oldOwner, $subject, $message); } } } //nderung auf nicht erben ------------------------------------------------------------------------ else if ($action == "notinherit") { $defAccess = $document->getDefaultAccess(); if($document->setInheritAccess(false)) { $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); // Send notification to subscribers. $subject = "###SITENAME###: ".$document->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } if($document->setDefaultAccess($defAccess)) { $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); // Send notification to subscribers. $subject = "###SITENAME###: ".$document->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } //copy ACL of parent folder if ($mode == "copy") { $accessList = $folder->getAccessList(); foreach ($accessList["users"] as $userAccess) $document->addAccess($userAccess->getMode(), $userAccess->getUserID(), true); foreach ($accessList["groups"] as $groupAccess) $document->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false); } } //nderung auf erben ------------------------------------------------------------------------------ else if ($action == "inherit") { $document->clearAccessList(); $document->setInheritAccess(true); } //Standardberechtigung setzen---------------------------------------------------------------------- else if ($action == "setdefault") { if($document->setDefaultAccess($mode)) { $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); // Send notification to subscribers. $subject = "###SITENAME###: ".$document->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } // Bestehende Berechtigung ndern -------------------------------------------- else if ($action == "editaccess") { if (isset($userid)) { $document->changeAccess($mode, $userid, true); } else if (isset($groupid)) { $document->changeAccess($mode, $groupid, false); } } //Berechtigung lschen ---------------------------------------------------------------------------- else if ($action == "delaccess") { if (isset($userid)) { $document->removeAccess($userid, true); } else if (isset($groupid)) { $document->removeAccess($groupid, false); } } //Neue Berechtigung hinzufgen -------------------------------------------------------------------- else if ($action == "addaccess") { if (isset($userid) && $userid != -1) { $document->addAccess($mode, $userid, true); } if (isset($groupid) && $groupid != -1) { $document->addAccess($mode, $groupid, false); } } add_log_line(""); header("Location:../out/out.DocumentAccess.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/convert_excel.js0000644000175000017500000000231412040235122020627 0ustar franciscofrancisco// MyDMS. Document Management System // Copyright (C) 2002-2005 Markus Westphal // Copyright (C) 2006-2008 Malcolm Cowe // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //var logFile = fs.CreateTextFile("convertlog.txt", true); var source = WScript.Arguments(0); var target = WScript.Arguments(1); var ExcelApp; ExcelApp = new ActiveXObject("Excel.Application"); var Newdoc; Newdoc = ExcelApp.Workbooks.Open(source); Newdoc.SaveAs(target, 44); // xlHTML = 44 ExcelApp.Quit(); //logFile.Close(); letodms-3.3.11+dfsg.1/op/op.Settings.php0000644000175000017500000001332412040235122020362 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_POST["action"])) $action=$_POST["action"]; else if (isset($_GET["action"])) $action=$_GET["action"]; else $action=NULL; // -------------------------------------------------------------------------- if ($action == "saveSettings") { // ------------------------------------------------------------------------- // get values // ------------------------------------------------------------------------- // SETTINGS - SITE - DISPLAY $settings->_siteName = $_POST["siteName"]; $settings->_footNote = $_POST["footNote"]; $settings->_printDisclaimer = getBoolValue("printDisclaimer"); $settings->_language = $_POST["language"]; $settings->_theme = $_POST["theme"]; // SETTINGS - SITE - EDITION $settings->_strictFormCheck = getBoolValue("strictFormCheck"); $settings->setViewOnlineFileTypesFromString($_POST["viewOnlineFileTypes"]); $settings->_enableConverting = getBoolValue("enableConverting"); $settings->_enableEmail =getBoolValue("enableEmail"); $settings->_enableUsersView = getBoolValue("enableUsersView"); $settings->_enableFullSearch = getBoolValue("enableFullSearch"); $settings->_enableFolderTree = getBoolValue("enableFolderTree"); $settings->_expandFolderTree = intval($_POST["expandFolderTree"]); $settings->_stopWordsFile = $_POST["stopWordsFile"]; // SETTINGS - SITE - CALENDAR $settings->_enableCalendar = getBoolValue("enableCalendar"); $settings->_calendarDefaultView = $_POST["calendarDefaultView"]; $settings->_firstDayOfWeek = intval($_POST["firstDayOfWeek"]); // SETTINGS - SYSTEM - SERVER $settings->_rootDir = $_POST["rootDir"]; $settings->_httpRoot = $_POST["httpRoot"]; $settings->_contentDir = $_POST["contentDir"]; $settings->_stagingDir = $_POST["stagingDir"]; $settings->_luceneDir = $_POST["luceneDir"]; $settings->_logFileEnable = getBoolValue("logFileEnable"); $settings->_logFileRotation = $_POST["logFileRotation"]; $settings->_enableLargeFileUpload = getBoolValue("enableLargeFileUpload"); $settings->_partitionSize = $_POST["partitionSize"]; // SETTINGS - SYSTEM - AUTHENTICATION $settings->_enableGuestLogin = getBoolValue("enableGuestLogin"); $settings->_restricted = getBoolValue("restricted"); $settings->_enableUserImage = getBoolValue("enableUserImage"); $settings->_disableSelfEdit = getBoolValue("disableSelfEdit"); $settings->_enablePasswordForgotten = getBoolValue("enablePasswordForgotten"); $settings->_encryptionKey = strval($_POST["encryptionKey"]); // TODO Connectors // SETTINGS - SYSTEM - DATABASE $settings->_ADOdbPath = $_POST["ADOdbPath"]; $settings->_dbDriver = $_POST["dbDriver"]; $settings->_dbHostname = $_POST["dbHostname"]; $settings->_dbDatabase = $_POST["dbDatabase"]; $settings->_dbUser = $_POST["dbUser"]; $settings->_dbPass = $_POST["dbPass"]; // SETTINGS - SYSTEM - SMTP $settings->_smtpServer = $_POST["smtpServer"]; $settings->_smtpPort = $_POST["smtpPort"]; $settings->_smtpSendFrom = $_POST["smtpSendFrom"]; // SETTINGS -ADVANCED - DISPLAY $settings->_siteDefaultPage = $_POST["siteDefaultPage"]; $settings->_rootFolderID = intval($_POST["rootFolderID"]); $settings->_titleDisplayHack = getBoolValue("titleDisplayHack"); // SETTINGS - ADVANCED - AUTHENTICATION $settings->_guestID = intval($_POST["guestID"]); $settings->_adminIP = $_POST["adminIP"]; // SETTINGS - ADVANCED - EDITION $settings->_versioningFileName = $_POST["versioningFileName"]; $settings->_enableAdminRevApp = getBoolValue("enableAdminRevApp"); // SETTINGS - ADVANCED - SERVER $settings->_coreDir = $_POST["coreDir"]; $settings->_luceneClassDir = $_POST["luceneClassDir"]; $settings->_contentOffsetDir = intval($_POST["contentOffsetDir"]); $settings->_maxDirID = intval($_POST["maxDirID"]); $settings->_updateNotifyTime = intval($_POST["updateNotifyTime"]); $settings->_maxExecutionTime = intval($_POST["maxExecutionTime"]); // ------------------------------------------------------------------------- // save // ------------------------------------------------------------------------- if (!$settings->save()) UI::exitError(getMLText("admin_tools"),getMLText("settings_SaveError")); add_log_line(".php&action=savesettings"); } header("Location:../out/out.AdminTools.php"); ?> letodms-3.3.11+dfsg.1/op/convert_pp.js0000644000175000017500000000234212040235122020147 0ustar franciscofrancisco// MyDMS. Document Management System // Copyright (C) 2002-2005 Markus Westphal // Copyright (C) 2006-2008 Malcolm Cowe // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //var logFile = fs.CreateTextFile("convertlog.txt", true); var source = WScript.Arguments(0); var target = WScript.Arguments(1); var PPApp; PPApp = new ActiveXObject("Powerpoint.Application"); var Newdoc; PPApp.Visible = true; Newdoc = PPApp.Presentations.Open(source); Newdoc.SaveAs(target, 12); // ppSaveAsHTML = 12 PPApp.Quit(); //logFile.Close(); letodms-3.3.11+dfsg.1/op/op.OverrideContentStatus.php0000644000175000017500000001071712040235122023103 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["version"]) || !is_numeric($_POST["version"]) || intval($_POST["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version = $_POST["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } if (!isset($_POST["overrideStatus"]) || !is_numeric($_POST["overrideStatus"]) || (intval($_POST["overrideStatus"])<-3 && intval($_POST["overrideStatus"])>2)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_status")); } $overallStatus = $content->getStatus(); // status change control if ($overallStatus["status"] == S_REJECTED || $overallStatus["status"] == S_EXPIRED || $overallStatus["status"] == S_DRAFT_REV || $overallStatus["status"] == S_DRAFT_APP ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("cannot_change_final_states")); } $reviewStatus = $content->getReviewStatus(); $approvalStatus = $content->getApprovalStatus(); $overrideStatus = $_POST["overrideStatus"]; $comment = $_POST["comment"]; if ($overrideStatus != $overallStatus["status"]) { if (!$content->setStatus($overrideStatus, $comment, $user)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { $nl=$document->getNotifyList(); // Send notification to subscribers. if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_status_changed_email"); $message = getMLText("document_status_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("status").": ".getOverallStatusText($overrideStatus)."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } // TODO: if user os not owner send notification to owner } } add_log_line("?documentid=".$documentid); header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$version); ?> letodms-3.3.11+dfsg.1/op/op.MoveFolder.php0000644000175000017500000000701112040235122020620 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } if ($folderid == $settings->_rootFolderID || !$folder->getParent()) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("cannot_move_root")); } if (!isset($_GET["targetidform1"]) || !is_numeric($_GET["targetidform1"]) || intval($_GET["targetidform1"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $targetid = $_GET["targetidform1"]; $targetFolder = $dms->getFolder($targetid); if (!is_object($targetFolder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } if ($folder->getAccessMode($user) < M_READWRITE || $targetFolder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } if ($folder->setParent($targetFolder)) { // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("folder_moved_email"); $message = getMLText("folder_moved_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$folder->_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } add_log_line(); header("Location:../out/out.ViewFolder.php?folderid=".$folderid."&showtree=".$_GET["showtree"]); ?> letodms-3.3.11+dfsg.1/op/op.UsrMgr.php0000644000175000017500000002056712040235122020010 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_POST["action"])) $action=$_POST["action"]; else $action=NULL; //Neuen Benutzer anlegen -------------------------------------------------------------------------- if ($action == "adduser") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('adduser')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } $login = $_POST["login"]; $name = $_POST["name"]; $email = $_POST["email"]; $comment = $_POST["comment"]; $role = preg_replace('/[^0-2]+/', '', $_POST["role"]); $isHidden = (isset($_POST["ishidden"]) && $_POST["ishidden"]==1 ? 1 : 0); if (is_object($dms->getUserByLogin($login))) { UI::exitError(getMLText("admin_tools"),getMLText("user_exists")); } $newUser = $dms->addUser($login, md5($_POST["pwd"]), $name, $email, $settings->_language, $settings->_theme, $comment, $role, $isHidden); if ($newUser) { if (isset($_FILES["userfile"]) && is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']==0) { $userfiletype = $_FILES["userfile"]["type"]; $userfilename = $_FILES["userfile"]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); $fileType = substr($userfilename, $lastDotIndex); if ($fileType != ".jpg" && $filetype != ".jpeg") { UI::exitError(getMLText("admin_tools"),getMLText("only_jpg_user_images")); } else { resizeImage($_FILES["userfile"]["tmp_name"]); $newUser->setImage($_FILES["userfile"]["tmp_name"], $userfiletype); } } } else UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); if (isset($_POST["usrReviewers"])){ foreach ($_POST["usrReviewers"] as $revID) $newUser->setMandatoryReviewer($revID,false); } if (isset($_POST["grpReviewers"])){ foreach ($_POST["grpReviewers"] as $revID) $newUser->setMandatoryReviewer($revID,true); } if (isset($_POST["usrApprovers"])){ foreach ($_POST["usrApprovers"] as $appID) $newUser->setMandatoryApprover($appID,false); } if (isset($_POST["grpApprovers"])){ foreach ($_POST["grpApprovers"] as $appID) $newUser->setMandatoryApprover($appID,true); } $userid=$newUser->getID(); add_log_line(".php&action=adduser&login=".$login); } //Benutzer lschen -------------------------------------------------------------------------------- else if ($action == "removeuser") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('removeuser')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (isset($_POST["userid"])) { $userid = $_POST["userid"]; } if (!isset($userid) || !is_numeric($userid) || intval($userid)<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } /* This used to be a check if an admin is deleted. Now it checks if one * wants to delete herself. */ if ($userid==$user->getID()) { UI::exitError(getMLText("admin_tools"),getMLText("cannot_delete_yourself")); } $userToRemove = $dms->getUser($userid); if (!is_object($userToRemove)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $userToAssign = $dms->getUser($_POST["assignTo"]); if (!$userToRemove->remove($user, $userToAssign)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line(".php&action=removeuser&userid=".$userid); $userid=-1; } //Benutzer bearbeiten ----------------------------------------------------------------------------- else if ($action == "edituser") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('edituser')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["userid"]) || !is_numeric($_POST["userid"]) || intval($_POST["userid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $userid=$_POST["userid"]; $editedUser = $dms->getUser($userid); if (!is_object($editedUser)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $login = $_POST["login"]; $pwd = $_POST["pwd"]; $name = $_POST["name"]; $email = $_POST["email"]; $comment = $_POST["comment"]; $role = preg_replace('/[^0-2]+/', '', $_POST["role"]); $isHidden = (isset($_POST["ishidden"]) && $_POST["ishidden"]==1 ? 1 : 0); if ($editedUser->getLogin() != $login) $editedUser->setLogin($login); if (isset($pwd) && ($pwd != "")) $editedUser->setPwd(md5($pwd)); if ($editedUser->getFullName() != $name) $editedUser->setFullName($name); if ($editedUser->getEmail() != $email) $editedUser->setEmail($email); if ($editedUser->getComment() != $comment) $editedUser->setComment($comment); if ($editedUser->getRole() != $role) $editedUser->setRole($role); if ($editedUser->isHidden() != $isHidden) $editedUser->setHidden($isHidden); if (isset($_FILES['userfile']) && is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']==0) { $userfiletype = $_FILES["userfile"]["type"]; $userfilename = $_FILES["userfile"]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); $fileType = substr($userfilename, $lastDotIndex); if ($fileType != ".jpg" && $filetype != ".jpeg") { UI::exitError(getMLText("admin_tools"),getMLText("only_jpg_user_images")); } else { resizeImage($_FILES["userfile"]["tmp_name"]); $editedUser->setImage($_FILES["userfile"]["tmp_name"], $userfiletype); } } $editedUser->delMandatoryReviewers(); if (isset($_POST["usrReviewers"])) foreach ($_POST["usrReviewers"] as $revID) $editedUser->setMandatoryReviewer($revID,false); if (isset($_POST["grpReviewers"])) foreach ($_POST["grpReviewers"] as $revID) $editedUser->setMandatoryReviewer($revID,true); $editedUser->delMandatoryApprovers(); if (isset($_POST["usrApprovers"])) foreach ($_POST["usrApprovers"] as $appID) $editedUser->setMandatoryApprover($appID,false); if (isset($_POST["grpApprovers"])) foreach ($_POST["grpApprovers"] as $appID) $editedUser->setMandatoryApprover($appID,true); add_log_line(".php&action=edituser&userid=".$userid); } else UI::exitError(getMLText("admin_tools"),getMLText("unknown_command")); function resizeImage($imageFile) { // Not perfect. Creates a new image even if the old one is acceptable, // and the output quality is low. Now uses the function imagecreatetruecolor(), // though, so at least the pictures are in colour. // Originalbild einlesen $origImg = imagecreatefromjpeg($imageFile); $width = imagesx($origImg); $height = imagesy($origImg); // Thumbnail im Speicher erzeugen $newHeight = 150; $newWidth = ($width/$height) * $newHeight; $newImg = imagecreatetruecolor($newWidth, $newHeight); // Verkleinern imagecopyresized($newImg, $origImg, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); // In File speichern imagejpeg($newImg, $imageFile); // Aufrumen imagedestroy($origImg); imagedestroy($newImg); return true; } header("Location:../out/out.UsrMgr.php?userid=".$userid); ?> letodms-3.3.11+dfsg.1/op/op.DefaultKeywords.php0000644000175000017500000001651712046371012021712 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_POST["action"])) $action=$_POST["action"]; else $action=NULL; //Neue Kategorie anlegen ----------------------------------------------------------------------------- if ($action == "addcategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('addcategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } $name = $_POST["name"]; if($name == '') { UI::exitError(getMLText("admin_tools"),getMLText("category_noname")); } if (is_object($dms->getKeywordCategoryByName($name, $user->getID()))) { UI::exitError(getMLText("admin_tools"),getMLText("keyword_exists")); } $newCategory = $dms->addKeywordCategory($user->getID(), $name); if (!$newCategory) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=$newCategory->getID(); } //Kategorie lschen ---------------------------------------------------------------------------------- else if ($action == "removecategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('removecategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getKeywordCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $owner = $category->getOwner(); if (!$owner->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!$category->remove()) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=-1; } //Kategorie bearbeiten: Neuer Name -------------------------------------------------------------------- else if ($action == "editcategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('editcategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getKeywordCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $owner = $category->getOwner(); if (!$owner->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $name = $_POST["name"]; if (!$category->setName($name)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } //Kategorie bearbeiten: Neue Stichwortliste ---------------------------------------------------------- else if ($action == "newkeywords") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('newkeywords')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } $categoryid = (int) $_POST["categoryid"]; $category = $dms->getKeywordCategory($categoryid); $owner = $category->getOwner(); if (!$owner->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $keywords = $_POST["keywords"]; if(trim($keywords)) { if (!$category->addKeywordList($keywords)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } } //Kategorie bearbeiten: Stichwortliste bearbeiten ---------------------------------------------------------- else if ($action == "editkeywords") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('editkeywords')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getKeywordCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $owner = $category->getOwner(); if (!$owner->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_POST["keywordsid"]) || !is_numeric($_POST["keywordsid"]) || intval($_POST["keywordsid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } $keywordsid = $_POST["keywordsid"]; $keywords = $_POST["keywords"]; if (!$category->editKeywordList($keywordsid, $keywords)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } //Kategorie bearbeiten: Neue Stichwortliste lschen ---------------------------------------------------------- else if ($action == "removekeywords") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('removekeywords')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getKeywordCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_keyword_category")); } $owner = $category->getOwner(); if (!$owner->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_POST["keywordsid"]) || !is_numeric($_POST["keywordsid"]) || intval($_POST["keywordsid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } $keywordsid = $_POST["keywordsid"]; if (!$category->removeKeywordList($keywordsid)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } else { UI::exitError(getMLText("admin_tools"),getMLText("unknown_command")); } header("Location:../out/out.DefaultKeywords.php?categoryid=".$categoryid); ?> letodms-3.3.11+dfsg.1/op/op.Search.php0000644000175000017500000002726712040235122020002 0ustar franciscofrancisco_rootFolderID; } else { $folderid = $_GET["folderid"]; } if(strlen($_GET["query"])==0) { header("Location: ../out/out.SearchForm.php?folderid=".$folderid); } else { if($_GET["fullsearch"]) { header("Location: ../op/op.SearchFulltext.php?folderid=".$folderid."&query=".$_GET["query"]); } } } // // Supporting functions. // function makeTimeStamp($hour, $min, $sec, $year, $month, $day) { $thirtyone = array (1, 3, 5, 7, 8, 10, 12); $thirty = array (4, 6, 9, 11); // Very basic check that the terms are valid. Does not fail for illegal // dates such as 31 Feb. if (!is_numeric($hour) || !is_numeric($min) || !is_numeric($sec) || !is_numeric($year) || !is_numeric($month) || !is_numeric($day) || $month<1 || $month>12 || $day<1 || $day>31 || $hour<0 || $hour>23 || $min<0 || $min>59 || $sec<0 || $sec>59) { return false; } $year = (int) $year; $month = (int) $month; $day = (int) $day; if (array_search($month, $thirtyone)) { $max=31; } else if (array_search($month, $thirty)) { $max=30; } else { $max=(($year % 4 == 0) && ($year % 100 != 0 || $year % 400 == 0)) ? 29 : 28; } // If the date falls out of bounds, set it to the maximum for the given // month. Makes assumption about the user's intention, rather than failing // for absolutely everything. if ($day>$max) { $day=$max; } return mktime($hour, $min, $sec, $month, $day, $year); } function getTime() { if (function_exists('microtime')) { $tm = microtime(); $tm = explode(' ', $tm); return (float) sprintf('%f', $tm[1] + $tm[0]); } return time(); } function markQuery($str, $tag = "b") { GLOBAL $query; $querywords = preg_split("/ /", $query); foreach ($querywords as $queryword) $str = str_ireplace("($queryword)", "<" . $tag . ">\\1", $str); return $str; } // // Parse all of the parameters for the search // // Create the keyword search string. This search spans up to three columns // in the database: keywords, name and comment. if (isset($_GET["query"]) && is_string($_GET["query"])) { $query = $_GET["query"]; } else { $query = ""; } $mode = "AND"; if (isset($_GET["mode"]) && is_numeric($_GET["mode"]) && $_GET["mode"]==0) { $mode = "OR"; } $searchin = array(); if (isset($_GET['searchin']) && is_array($_GET["searchin"])) { foreach ($_GET["searchin"] as $si) { if (isset($si) && is_numeric($si)) { switch ($si) { case 1: // keywords case 2: // name case 3: // comment $searchin[$si] = $si; break; } } } } // if none is checkd search all if (count($searchin)==0) $searchin=array( 0, 1, 2, 3); // Check to see if the search has been restricted to a particular sub-tree in // the folder hierarchy. if (isset($_GET["targetidform1"]) && is_numeric($_GET["targetidform1"]) && $_GET["targetidform1"]>0) { $targetid = $_GET["targetidform1"]; $startFolder = $dms->getFolder($targetid); } else { $targetid = $settings->_rootFolderID; $startFolder = $dms->getFolder($targetid); } if (!is_object($startFolder)) { UI::exitError(getMLText("search_results"),getMLText("invalid_folder_id")); } // Now that the target folder has been identified, it is possible to create // the full navigation bar. $folderPathHTML = getFolderPathHTML($startFolder, true); UI::htmlStartPage(getMLText("search_results")); UI::globalNavigation($startFolder); UI::pageNavigation($folderPathHTML, "", $startFolder); UI::contentHeading(getMLText("search_results")); // Check to see if the search has been restricted to a particular // document owner. $owner = null; if (isset($_GET["ownerid"]) && is_numeric($_GET["ownerid"]) && $_GET["ownerid"]!=-1) { $owner = $dms->getUser($_GET["ownerid"]); if (!is_object($owner)) { UI::contentContainer(getMLText("unknown_owner")); UI::htmlEndPage(); exit; } } // Is the search restricted to documents created between two specific dates? $startdate = array(); $stopdate = array(); if (isset($_GET["creationdate"]) && $_GET["creationdate"]!=null) { $startdate = array('year'=>$_GET["createstartyear"], 'month'=>$_GET["createstartmonth"], 'day'=>$_GET["createstartday"]); if (!checkdate($startdate['month'], $startdate['day'], $startdate['year'])) { UI::contentContainer(getMLText("invalid_create_date_start")); UI::htmlEndPage(); exit; } $stopdate = array('year'=>$_GET["createendyear"], 'month'=>$_GET["createendmonth"], 'day'=>$_GET["createendday"]); if (!checkdate($stopdate['month'], $stopdate['day'], $stopdate['year'])) { UI::contentContainer(getMLText("invalid_create_date_end")); UI::htmlEndPage(); exit; } } // status $status = array(); if (isset($_GET["pendingReview"])){ $status[] = S_DRAFT_REV; } if (isset($_GET["pendingApproval"])){ $status[] = S_DRAFT_APP; } if (isset($_GET["released"])){ $status[] = S_RELEASED; } if (isset($_GET["rejected"])){ $status[] = S_REJECTED; } if (isset($_GET["obsolete"])){ $status[] = S_OBSOLETE; } if (isset($_GET["expired"])){ $status[] = S_EXPIRED; } // category $categories = array(); if(isset($_GET['categoryids']) && $_GET['categoryids']) { foreach($_GET['categoryids'] as $catid) { if($catid > 0) $categories[] = $dms->getDocumentCategory($catid); } } // // Get the page number to display. If the result set contains more than // 25 entries, it is displayed across multiple pages. // // This requires that a page number variable be used to track which page the // user is interested in, and an extra clause on the select statement. // // Default page to display is always one. $pageNumber=1; $limit = 20; if (isset($_GET["pg"])) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (int) $_GET["pg"]; } elseif (!strcasecmp($_GET["pg"], "all")) { $limit = 0; } } // ------------------------------------- Suche starten -------------------------------------------- $startTime = getTime(); $resArr = $dms->search($query, $limit, ($pageNumber-1)*$limit, $mode, $searchin, $startFolder, $owner, $status, $startdate, $stopdate, $categories); $searchTime = getTime() - $startTime; $searchTime = round($searchTime, 2); // ---------------------------------- Ausgabe der Ergebnisse -------------------------------------- UI::contentContainerStart(); ?>
$resArr['totalDocs'], "foldercount" => $resArr['totalFolders'])); } ?> $searchTime));?>
"; print "\n\n"; print "\n"; print "".getMLText("name")."\n"; print "".getMLText("owner")."\n"; print "".getMLText("status")."\n"; print "".getMLText("version")."\n"; print "".getMLText("comment")."\n"; //print "".getMLText("reviewers")."\n"; //print "".getMLText("approvers")."\n"; print "\n\n\n"; $resultsFilteredByAccess = false; $entries = array_merge($resArr['folders'], $resArr['docs']); foreach ($entries as $entry) { if(get_class($entry) == 'LetoDMS_Core_Document') { $document = $entry; if ($document->getAccessMode($user) < M_READ) { $resultsFilteredByAccess = true; } else { $lc = $document->getLatestContent(); print ""; //print ""; if (in_array(2, $searchin)) { $docName = markQuery(htmlspecialchars($document->getName()), "i"); } else { $docName = htmlspecialchars($document->getName()); } print "getID()."\">getFileType())."\" title=\"".$lc->getMimeType()."\">"; print "getID()."\">/"; $folder = $document->getFolder(); $path = $folder->getPath(); for ($i = 1; $i < count($path); $i++) { print htmlspecialchars($path[$i]->getName())."/"; } print $docName; print ""; $owner = $document->getOwner(); print "".htmlspecialchars($owner->getFullName()).""; $display_status=$lc->getStatus(); print "".getOverallStatusText($display_status["status"]). ""; print "".$lc->getVersion().""; if (in_array(3, $searchin)) $comment = markQuery(htmlspecialchars($document->getComment())); else $comment = htmlspecialchars($document->getComment()); if (strlen($comment) > 50) $comment = substr($comment, 0, 47) . "..."; print "".$comment.""; print "\n"; } } elseif(get_class($entry) == 'LetoDMS_Core_Folder') { $folder = $entry; if ($folder->getAccessMode($user) < M_READ) { $resultsFilteredByAccess = true; } else { if (in_array(2, $searchin)) { $folderName = markQuery(htmlspecialchars($folder->getName()), "i"); } else { $folderName = htmlspecialchars($folder->getName()); } print "getID()."\">"; print "getID()."\">"; $path = $folder->getPath(); for ($i = 1; $i < count($path); $i++) { print "/".htmlspecialchars($path[$i]->getName()); } print $folderName; print ""; $owner = $folder->getOwner(); print "".htmlspecialchars($owner->getFullName()).""; print ""; print ""; if (in_array(3, $searchin)) $comment = markQuery(htmlspecialchars($folder->getComment())); else $comment = htmlspecialchars($folder->getComment()); if (strlen($comment) > 50) $comment = substr($comment, 0, 47) . "..."; print "".$comment.""; print "\n"; } } } if ($resultsFilteredByAccess) { print "". getMLText("search_results_access_filtered") . ""; } print "\n"; UI::pageList($pageNumber, $resArr['totalPages'], "../op/op.Search.php", $_GET); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/op/op.ManageNotify.php0000644000175000017500000001143512040235122021144 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } function add_folder_notify($folder,$userid,$recursefolder,$recursedoc) { global $dms; $folder->addNotify($userid, true); if ($recursedoc){ // include all folder's document $documents = $folder->getDocuments(); $documents = LetoDMS_Core_DMS::filterAccess($documents, $dms->getUser($userid), M_READ); foreach($documents as $document) $document->addNotify($userid, true); } if ($recursefolder){ // recurse all folder's folders $subFolders = $folder->getSubFolders(); $subFolders = LetoDMS_Core_DMS::filterAccess($subFolders, $dms->getUser($userid), M_READ); foreach($subFolders as $subFolder) add_folder_notify($subFolder,$userid,$recursefolder,$recursedoc); } } if (!isset($_GET["type"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); if (!isset($_GET["action"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); $userid=$user->getID(); if ($_GET["type"]=="document"){ if ($_GET["action"]=="add"){ if (!isset($_POST["docidform2"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); $documentid = $_POST["docidform2"]; }else if ($_GET["action"]=="del"){ if (!isset($_GET["id"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); $documentid = $_GET["id"]; }else UI::exitError(getMLText("my_account"),getMLText("error_occured")); if(!$documentid || !($document = $dms->getDocument($documentid))) { UI::exitError(getMLText("my_account"),getMLText("error_no_document_selected")); } if ($document->getAccessMode($user) < M_READ) UI::exitError(getMLText("my_account"),getMLText("error_occured")); if ($_GET["action"]=="add") $document->addNotify($userid, true); else if ($_GET["action"]=="del") $document->removeNotify($userid, true); } else if ($_GET["type"]=="folder") { if ($_GET["action"]=="add"){ if (!isset($_POST["targetidform1"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); $folderid = $_POST["targetidform1"]; }else if ($_GET["action"]=="del"){ if (!isset($_GET["id"])) UI::exitError(getMLText("my_account"),getMLText("error_occured")); $folderid = $_GET["id"]; }else UI::exitError(getMLText("my_account"),getMLText("error_occured")); if(!$folderid || !($folder = $dms->getFolder($folderid))) { UI::exitError(getMLText("my_account"),getMLText("error_no_folder_selected")); } if ($folder->getAccessMode($user) < M_READ) UI::exitError(getMLText("my_account"),getMLText("error_occured")); if ($_GET["action"]=="add"){ $recursefolder = isset($_POST["recursefolder"]); $recursedoc = isset($_POST["recursedoc"]); add_folder_notify($folder,$userid,$recursefolder,$recursedoc); } elseif ($_GET["action"]=="del") { if($folder->removeNotify($userid, true)) { $obj = $dms->getUser($userid); if($notifier) { // Email user / group, informing them of subscription. $path=""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $subject = "###SITENAME###: ".$folder->getName()." - ".getMLText("notify_deleted_email"); $message = getMLText("notify_deleted_email")."\r\n"; $message .= getMLText("name").": ".$folder->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$folder->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $obj, $subject, $message); } } } } header("Location:../out/out.ManageNotify.php"); ?> letodms-3.3.11+dfsg.1/op/op.MoveDocument.php0000644000175000017500000000723712040235122021175 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $oldFolder = $document->getFolder(); if (!isset($_GET["targetidform1"]) || !is_numeric($_GET["targetidform1"]) || $_GET["targetidform1"]<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_target_folder")); } $targetid = $_GET["targetidform1"]; $targetFolder = $dms->getFolder($targetid); if (!is_object($targetFolder)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_target_folder")); } if (($document->getAccessMode($user) < M_READWRITE) || ($targetFolder->getAccessMode($user) < M_READWRITE)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if ($targetid != $oldFolder->getID()) { if ($document->setFolder($targetFolder)) { $document->getNotifyList(); // Send notification to subscribers. if($notifier) { $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_moved_email"); $message = getMLText("document_moved_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$oldFolder->getFolderPathPlain()."\r\n". getMLText("new_folder").": ".$targetFolder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // if user is not owner send notification to owner if ($user->getID()!= $document->getOwner()) $notifier->toIndividual($user, $document->getOwner(), $subject, $message); } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } add_log_line(); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.Categories.php0000644000175000017500000000744112040235122020652 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_POST["action"])) $action=$_POST["action"]; else $action=NULL; //Neue Kategorie anlegen ----------------------------------------------------------------------------- if ($action == "addcategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('addcategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } $name = trim($_POST["name"]); if($name == '') { UI::exitError(getMLText("admin_tools"),getMLText("category_noname")); } if (is_object($dms->getDocumentCategoryByName($name))) { UI::exitError(getMLText("admin_tools"),getMLText("category_exists")); } $newCategory = $dms->addDocumentCategory($name); if (!$newCategory) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=$newCategory->getID(); } //Kategorie lschen ---------------------------------------------------------------------------------- else if ($action == "removecategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('removecategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_document_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getDocumentCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_document_category")); } if (!$category->remove()) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=-1; } //Kategorie bearbeiten: Neuer Name -------------------------------------------------------------------- else if ($action == "editcategory") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('editcategory')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["categoryid"]) || !is_numeric($_POST["categoryid"]) || intval($_POST["categoryid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_document_category")); } $categoryid = $_POST["categoryid"]; $category = $dms->getDocumentCategory($categoryid); if (!is_object($category)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_document_category")); } $name = $_POST["name"]; if (!$category->setName($name)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } else { UI::exitError(getMLText("admin_tools"),getMLText("unknown_command")); } header("Location:../out/out.Categories.php?categoryid=".$categoryid); ?> letodms-3.3.11+dfsg.1/op/op.SetExpires.php0000644000175000017500000000443412040235122020657 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $expires = ($_POST["expires"] == "true") ? mktime(0,0,0, intval($_POST["expmonth"]), intval($_POST["expday"]), intval($_POST["expyear"])) : false; if (!$document->setExpires($expires)){ UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } $document->verifyLastestContentExpriry(); add_log_line("?documentid=".$documentid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.AddDocumentLink.php0000644000175000017500000000555312040235122021574 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $public = (isset($_GET["public"]) && $_GET["public"] == "true") ? true : false; if ($public && ($document->getAccessMode($user) == M_READ)) { $public = false; } if (!isset($_GET["docidform1"]) || !is_numeric($_GET["docidform1"]) || intval($_GET["docidform1"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_target_doc_id")); } $docid = $_GET["docidform1"]; $doc = $dms->getDocument($docid); if (!is_object($doc)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_doc_id")); } if (!$document->addDocumentLink($docid, $user->getID(), $public)){ UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.EditComment.php0000644000175000017500000000755312040235122021001 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $versionid = $_POST["version"]; $version = $document->getContentByVersion($versionid); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $comment = $_POST["comment"]; if (($oldcomment = $version->getComment()) != $comment) { if($version->setComment($comment)) { $document->getNotifyList(); if($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$version->_version." - ".getMLText("comment_changed_email"); $message = getMLText("comment_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$version->_version."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$version->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); if(isset($document->_notifyList["users"])) { $notifier->toList($user, $document->_notifyList["users"], $subject, $message); } if(isset($document->_notifyList["groups"])) { foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } add_log_line("?documentid=".$documentid); header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$versionid); ?> letodms-3.3.11+dfsg.1/op/op.SetReviewersApprovers.php0000644000175000017500000005345012040235122023117 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["version"]) || !is_numeric($_POST["version"]) || intval($_POST["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version = $_POST["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } // control status. $overallStatus = $content->getStatus(); if ($overallStatus["status"]==S_REJECTED || $overallStatus["status"]==S_OBSOLETE ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("cannot_assign_invalid_state")); } // Retrieve a list of all users and groups that have review / approve // privileges. $docAccess = $document->getApproversList(); $accessIndex = array("i"=>array(), "g"=>array()); foreach ($docAccess["users"] as $i=>$da) { $accessIndex["i"][$da->getID()] = $i; } foreach ($docAccess["groups"] as $i=>$da) { $accessIndex["g"][$da->getID()] = $i; } // Retrieve list of currently assigned reviewers and approvers, along with // their latest status. $reviewStatus = $content->getReviewStatus(); $approvalStatus = $content->getApprovalStatus(); // Index the review results for easy cross-reference with the Approvers List. $reviewIndex = array("i"=>array(), "g"=>array()); foreach ($reviewStatus as $i=>$rs) { if ($rs["status"]!=-2) { if ($rs["type"]==0) { $reviewIndex["i"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } else if ($rs["type"]==1) { $reviewIndex["g"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } } } // Index the approval results for easy cross-reference with the Approvers List. $approvalIndex = array("i"=>array(), "g"=>array()); foreach ($approvalStatus as $i=>$rs) { if ($rs["status"]!=-2) { if ($rs["type"]==0) { $approvalIndex["i"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } else if ($rs["type"]==1) { $approvalIndex["g"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } } } // Get the list of proposed reviewers, stripping out any duplicates. $pIndRev = (isset($_POST["indReviewers"]) ? array_values(array_unique($_POST["indReviewers"])) : array()); $pGrpRev = (isset($_POST["grpReviewers"]) ? array_values(array_unique($_POST["grpReviewers"])) : array()); foreach ($pIndRev as $p) { if (is_numeric($p)) { if (isset($accessIndex["i"][$p])) { // Proposed reviewer is on the list of possible reviewers. if (!isset($reviewIndex["i"][$p])) { // Proposed reviewer is not a current reviewer, so add as a new // reviewer. $res = $content->addIndReviewer($docAccess["users"][$accessIndex["i"][$p]], $user); $unm = $docAccess["users"][$accessIndex["i"][$p]]->getFullName(); $uml = $docAccess["users"][$accessIndex["i"][$p]]->getEmail(); switch ($res) { case 0: // Send an email notification to the new reviewer. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("review_request_email"); $message = getMLText("review_request_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$p]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; case -4: // email error break; } } else { // Remove reviewer from the index of possible reviewers. If there are // any reviewers left over in the list of possible reviewers, they // will be removed from the review process for this document revision. unset($reviewIndex["i"][$p]); } } } } if (count($reviewIndex["i"]) > 0) { foreach ($reviewIndex["i"] as $rx=>$rv) { if ($rv["status"] == 0) { // User is to be removed from the review list. if (!isset($docAccess["users"][$accessIndex["i"][$rx]])) { // User does not have any review privileges for this document // revision or does not exist. $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $reviewStatus[$rv["idx"]]["reviewID"] ."', '-2', '".getMLText("removed_reviewer")."', NOW(), '". $user->getID() ."')"; $res = $db->getResult($queryStr); } else { $res = $content->delIndReviewer($docAccess["users"][$accessIndex["i"][$rx]], $user); $unm = $docAccess["users"][$accessIndex["i"][$rx]]->getFullName(); $uml = $docAccess["users"][$accessIndex["i"][$rx]]->getEmail(); switch ($res) { case 0: // Send an email notification to the reviewer. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("review_deletion_email"); $message = getMLText("review_deletion_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; case -4: // email error break; } } } } } foreach ($pGrpRev as $p) { if (is_numeric($p)) { if (isset($accessIndex["g"][$p])) { // Proposed reviewer is on the list of possible reviewers. if (!isset($reviewIndex["g"][$p])) { // Proposed reviewer is not a current reviewer, so add as a new // reviewer. $res = $content->addGrpReviewer($docAccess["groups"][$accessIndex["g"][$p]], $user); $gnm = $docAccess["groups"][$accessIndex["g"][$p]]->getName(); switch ($res) { case 0: // Send an email notification to the new reviewer. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("review_request_email"); $message = getMLText("review_request_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$p]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; case -4: // email error break; } } else { // Remove reviewer from the index of possible reviewers. unset($reviewIndex["g"][$p]); } } } } if (count($reviewIndex["g"]) > 0) { foreach ($reviewIndex["g"] as $rx=>$rv) { if ($rv["status"] == 0) { // Group is to be removed from the review list. if (!isset($docAccess["groups"][$accessIndex["g"][$rx]])) { // Group does not have any review privileges for this document // revision or does not exist. $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $reviewStatus[$rv["idx"]]["reviewID"] ."', '-2', '".getMLText("removed_reviewer")."', NOW(), '". $user->getID() ."')"; $res = $db->getResult($queryStr); } else { $res = $content->delGrpReviewer($docAccess["groups"][$accessIndex["g"][$rx]], $user); $gnm = $docAccess["groups"][$accessIndex["g"][$rx]]->getName(); switch ($res) { case 0: // Send an email notification to the review group. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("review_deletion_email"); $message = getMLText("review_deletion_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; case -4: // email error break; } } } } } // Get the list of proposed approvers, stripping out any duplicates. $pIndApp = (isset($_POST["indApprovers"]) ? array_values(array_unique($_POST["indApprovers"])) : array()); $pGrpApp = (isset($_POST["grpApprovers"]) ? array_values(array_unique($_POST["grpApprovers"])) : array()); foreach ($pIndApp as $p) { if (is_numeric($p)) { if (isset($accessIndex["i"][$p])) { // Proposed approver is on the list of possible approvers. if (!isset($approvalIndex["i"][$p])) { // Proposed approver is not a current approver, so add as a new // approver. $res = $content->addIndApprover($docAccess["users"][$accessIndex["i"][$p]], $user); $unm = $docAccess["users"][$accessIndex["i"][$p]]->getFullName(); $uml = $docAccess["users"][$accessIndex["i"][$p]]->getEmail(); switch ($res) { case 0: // Send an email notification to the new approver. if ($overallStatus["status"]!=0 && $notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("approval_request_email"); $message = getMLText("approval_request_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$p]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; case -4: // email error break; } } else { // Remove approver from the index of possible approvers. unset($approvalIndex["i"][$p]); } } } } if (count($approvalIndex["i"]) > 0) { foreach ($approvalIndex["i"] as $rx=>$rv) { if ($rv["status"] == 0) { // User is to be removed from the approvers list. if (!isset($docAccess["users"][$accessIndex["i"][$rx]])) { // User does not have any approval privileges for this document // revision or does not exist. $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $approvalStatus[$rv["idx"]]["approveID"] ."', '-2', '".getMLText("removed_approver")."', NOW(), '". $user->getID() ."')"; $res = $db->getResult($queryStr); } else { $res = $content->delIndApprover($docAccess["users"][$accessIndex["i"][$rx]], $user); $unm = $docAccess["users"][$accessIndex["i"][$rx]]->getFullName(); $uml = $docAccess["users"][$accessIndex["i"][$rx]]->getEmail(); switch ($res) { case 0: // Send an email notification to the approver. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("approval_deletion_email"); $message = getMLText("approval_deletion_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; case -4: // email error break; } } } } } foreach ($pGrpApp as $p) { if (is_numeric($p)) { if (isset($accessIndex["g"][$p])) { // Proposed approver is on the list of possible approvers. if (!isset($approvalIndex["g"][$p])) { // Proposed approver is not a current approver, so add as a new // approver. $res = $content->addGrpApprover($docAccess["groups"][$accessIndex["g"][$p]], $user); $gnm = $docAccess["groups"][$accessIndex["g"][$p]]->getName(); switch ($res) { case 0: // Send an email notification to the new approver. if ($overallStatus["status"]!=0 && $notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("approval_request_email"); $message = getMLText("approval_request_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$p]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; case -4: // email error break; } } else { // Remove approver from the index of possible approvers. unset($approvalIndex["g"][$p]); } } } } if (count($approvalIndex["g"]) > 0) { foreach ($approvalIndex["g"] as $rx=>$rv) { if ($rv["status"] == 0) { // User is to be removed from the approvers list. if (!isset($docAccess["groups"][$accessIndex["g"][$rx]])) { // Group does not have any approval privileges for this document // revision or does not exist. $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $approvalStatus[$rv["idx"]]["approveID"] ."', '-2', '".getMLText("removed_approver")."', NOW(), '". $user->getID() ."')"; $res = $db->getResult($queryStr); } else { $res = $content->delGrpApprover($docAccess["groups"][$accessIndex["g"][$rx]], $user); $gnm = $docAccess["groups"][$accessIndex["g"][$rx]]->getName(); switch ($res) { case 0: // Send an email notification to the approval group. if ($notifier) { $subject = "###SITENAME###: ".$document->getName().", v.".$content->_version." - ".getMLText("approval_deletion_email"); $message = getMLText("approval_deletion_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$content->_version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message); } break; case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; case -4: // email error break; } } } } } $content->verifyStatus(false,$user); add_log_line("?documentid=".$documentid); header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$version); ?> letodms-3.3.11+dfsg.1/op/op.AddFile.php0000644000175000017500000000731412040235122020054 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']!=0){ UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed")); } $name = $_POST["name"]; $comment = $_POST["comment"]; if($_FILES["userfile"]["error"]) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } $userfiletmp = $_FILES["userfile"]["tmp_name"]; $userfiletype = $_FILES["userfile"]["type"]; $userfilename = $_FILES["userfile"]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); $res = $document->addDocumentFile($name, $comment, $user, $userfiletmp, basename($userfilename),$fileType, $userfiletype ); if (is_bool($res) && !$res) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } else { $document->getNotifyList(); // Send notification to subscribers. if($notifier) { $subject = "###SITENAME###: ".$document->_name." - ".getMLText("new_file_email"); $message = getMLText("new_file_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; $subject=$subject; $message=$message; $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?name=".$name."&documentid=".$documentid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.UpdateDocument.php0000644000175000017500000001632712040235122021511 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); $folder = $document->getFolder(); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if ($document->isLocked()) { $lockingUser = $document->getLockingUser(); if (($lockingUser->getID() != $user->getID()) && ($document->getAccessMode($user) != M_ALL)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("no_update_cause_locked")); } else $document->setLocked(false); } if (is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']==0) { $comment = $_POST["comment"]; $userfiletmp = $_FILES["userfile"]["tmp_name"]; $userfiletype = $_FILES["userfile"]["type"]; $userfilename = $_FILES["userfile"]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); // Get the list of reviewers and approvers for this document. $reviewers = array(); $approvers = array(); // Retrieve the list of individual reviewers from the form. $reviewers["i"] = array(); if (isset($_POST["indReviewers"])) { foreach ($_POST["indReviewers"] as $ind) { $reviewers["i"][] = $ind; } } // Retrieve the list of reviewer groups from the form. $reviewers["g"] = array(); if (isset($_POST["grpReviewers"])) { foreach ($_POST["grpReviewers"] as $grp) { $reviewers["g"][] = $grp; } } // Retrieve the list of individual approvers from the form. $approvers["i"] = array(); if (isset($_POST["indApprovers"])) { foreach ($_POST["indApprovers"] as $ind) { $approvers["i"][] = $ind; } } // Retrieve the list of approver groups from the form. $approvers["g"] = array(); if (isset($_POST["grpApprovers"])) { foreach ($_POST["grpApprovers"] as $grp) { $approvers["g"][] = $grp; } } // add mandatory reviewers/approvers $docAccess = $folder->getApproversList(); $res=$user->getMandatoryReviewers(); foreach ($res as $r){ if ($r['reviewerUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['reviewerUserID']){ $reviewers["i"][] = $r['reviewerUserID']; break; } } else if ($r['reviewerGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['reviewerGroupID']){ $reviewers["g"][] = $r['reviewerGroupID']; break; } } } $res=$user->getMandatoryApprovers(); foreach ($res as $r){ if ($r['approverUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['approverUserID']){ $approvers["i"][] = $r['approverUserID']; break; } } else if ($r['approverGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['approverGroupID']){ $approvers["g"][] = $r['approverGroupID']; break; } } } $contentResult=$document->addContent($comment, $user, $userfiletmp, basename($userfilename), $fileType, $userfiletype, $reviewers, $approvers); if (is_bool($contentResult) && !$contentResult) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { // Send notification to subscribers. $document->getNotifyList(); if ($notifier){ $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_updated_email"); $message = getMLText("document_updated_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // if user is not owner send notification to owner if ($user->getID()!= $document->_ownerID) $notifier->toIndividual($user, $document->getOwner(), $subject, $message); } $expires = ($_POST["expires"] == "true") ? mktime(0,0,0, $_POST["expmonth"], $_POST["expday"], $_POST["expyear"]) : false; if ($expires) { if($document->setExpires($expires)) { $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); // Send notification to subscribers. $subject = "###SITENAME###: ".$document->_name." - ".getMLText("expiry_changed_email"); $message = getMLText("expiry_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } add_log_line("?documentid=".$documentid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.RemoveVersion.php0000644000175000017500000001305212040235122021363 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["version"]) || !is_numeric($_POST["version"]) || intval($_POST["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version_num = $_POST["version"]; $version = $document->getContentByVersion($version_num); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } if (count($document->getContent())==1) { if (!$document->remove()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { $document->getNotifyList(); if ($notifier){ $path = ""; $folder = $document->getFolder(); $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("document_deleted_email"); $message = getMLText("document_deleted_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); // Send notification to subscribers. $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } else { /* Before deleting the content get a list of all users that should * be informed about the removal. */ $emailList = array(); $emailList[] = $version->_userID; $status = $version->getReviewStatus(); foreach ($status as $st) { if ($st["status"]==0 && !in_array($st["required"], $emailList)) { $emailList[] = $st["required"]; } } $status = $version->getApprovalStatus(); foreach ($status as $st) { if ($st["status"]==0 && !in_array($st["required"], $emailList)) { $emailList[] = $st["required"]; } } if (!$document->removeContent($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { // Notify affected users. if ($notifier){ $recipients = array(); foreach ($emailList as $eID) { $eU = $version->_document->_dms->getUser($eID); $recipients[] = $eU; } $subject = "###SITENAME###: ".$document->getName().", v.".$version->_version." - ".getMLText("version_deleted_email"); $message = getMLText("version_deleted_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("version").": ".$version->_version."\r\n". getMLText("comment").": ".$version->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $recipients, $subject, $message); // Send notification to subscribers. $nl=$document->getNotifyList(); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } add_log_line("?documentid=".$documentid."&version".$version_num); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.AddEvent.php0000644000175000017500000000477312040235122020264 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } if (!isset($_POST["frommonth"]) || !isset($_POST["fromday"]) || !isset($_POST["fromyear"]) ) { UI::exitError(getMLText("add_event"),getMLText("error_occured")); } if (!isset($_POST["tomonth"]) || !isset($_POST["today"]) || !isset($_POST["toyear"]) ) { UI::exitError(getMLText("add_event"),getMLText("error_occured")); } if (!isset($_POST["name"]) || !isset($_POST["comment"]) ) { UI::exitError(getMLText("add_event"),getMLText("error_occured")); } $name = $_POST["name"]; $comment = $_POST["comment"]; $from = mktime(0,0,0, intval($_POST["frommonth"]), intval($_POST["fromday"]), intval($_POST["fromyear"])); $to = mktime(23,59,59, intval($_POST["tomonth"]), intval($_POST["today"]), intval($_POST["toyear"])); if ($to<$from){ $to= mktime(23,59,59, intval($_POST["frommonth"]), intval($_POST["fromday"]), intval($_POST["fromyear"])); } $res = addEvent($from, $to, $name, $comment); if (is_bool($res) && !$res) { UI::exitError(getMLText("add_event"),getMLText("error_occured")); } add_log_line("?name=".$name."&from=".$from."&to=".$to); header("Location:../out/out.Calendar.php?mode=w&day=".$_POST["fromday"]."&year=".$_POST["fromyear"]."&month=".$_POST["frommonth"]); ?> letodms-3.3.11+dfsg.1/op/op.EditUserData.php0000644000175000017500000000610312040235122021075 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_user_details"),getMLText("access_denied")); } if (!$user->isAdmin() && ($settings->_disableSelfEdit)) { UI::exitError(getMLText("edit_user_details"),getMLText("access_denied")); } $fullname = $_POST["fullname"]; $email = $_POST["email"]; $comment = $_POST["comment"]; $current_pwd = $_POST["currentpwd"]; if($user->getPwd() != md5($current_pwd)) { UI::exitError(getMLText("edit_user_details"),getMLText("password_wrong")); } if (isset($_POST["pwd"]) && ($_POST["pwd"] != "")) $user->setPwd(md5($_POST["pwd"])); if ($user->getFullName() != $fullname) $user->setFullName($fullname); if ($user->getEmail() != $email) $user->setEmail($email); if ($user->getComment() != $comment) $user->setComment($comment); if (isset($_FILES["userfile"]) && is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']==0) { $lastDotIndex = strrpos(basename($_FILES["userfile"]["name"]), "."); $fileType = substr($_FILES["userfile"]["name"], $lastDotIndex); if ($fileType != ".jpg" && $filetype != ".jpeg") { UI::exitError(getMLText("user_info"),getMLText("only_jpg_user_images")); } //verkleinern des Bildes, so dass es 150 Pixel hoch ist // Originalbild einlesen $origImg = imagecreatefromjpeg($_FILES["userfile"]["tmp_name"]); $width = imagesx($origImg); $height = imagesy($origImg); // Thumbnail im Speicher erzeugen $newHeight = 150; $newWidth = ($width/$height) * $newHeight; $newImg = imagecreatetruecolor($newWidth, $newHeight); // Verkleinern imagecopyresized($newImg, $origImg, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); // In File speichern imagejpeg($newImg, $_FILES["userfile"]["tmp_name"]); // Aufrumen imagedestroy($origImg); imagedestroy($newImg); $user->setImage($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["type"]); } add_log_line("?user=".$user->getLogin()); header("Location:../out/out.MyAccount.php"); ?> letodms-3.3.11+dfsg.1/op/op.RemoveDocumentLink.php0000644000175000017500000000570512040235122022340 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if (!isset($_POST["linkid"]) || !is_numeric($_POST["linkid"]) || intval($_POST["linkid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_link_id")); } $linkid = $_POST["linkid"]; $link = $document->getDocumentLink($linkid); if (!is_object($link)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_link_id")); } $responsibleUser = $link->getUser(); $accessMode = $document->getAccessMode($user); if ( ($accessMode < M_READ) || (($accessMode == M_READ) && ($responsibleUser->getID() != $user->getID())) || (($accessMode > M_READ) && (!$user->isAdmin()) && ($responsibleUser->getID() != $user->getID()) && !$link->isPublic()) ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!$document->removeDocumentLink($linkid)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } add_log_line("?documentid=".$documentid."&linkid=".$linkid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.EditDocument.php0000644000175000017500000001406312040235122021147 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $name = $_POST["name"]; $comment = $_POST["comment"]; $keywords = $_POST["keywords"]; $categories = preg_replace('/[^0-9,]+/', '', $_POST["categoryidform1"]); $sequence = $_POST["sequence"]; if (!is_numeric($sequence)) { $sequence="keep"; } if (($oldname = $document->getName()) != $name) { if($document->setName($name)) { // Send notification to subscribers. $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_renamed_email"); $message = getMLText("document_renamed_email")."\r\n"; $message .= getMLText("old").": ".$oldname."\r\n". getMLText("new").": ".$name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // if user is not owner send notification to owner if ($user->getID()!= $document->_ownerID) $notifier->toIndividual($user, $document->getOwner(), $subject, $message); } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } if (($oldcomment = $document->getComment()) != $comment) { if($document->setComment($comment)) { // Send notification to subscribers. $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("comment_changed_email"); $message = getMLText("comment_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // if user is not owner send notification to owner if ($user->getID() != $document->getOwner()) $notifier->toIndividual($user, $document->getOwner(), $subject, $message); } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } if (($oldkeywords = $document->getKeywords()) != $keywords) { if($document->setKeywords($keywords)) { } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } if($categories) { $categoriesarr = array(); foreach(explode(',', $categories) as $catid) { if($cat = $dms->getDocumentCategory($catid)) { $categoriesarr[] = $cat; } } $oldcategories = $document->getCategories(); $oldcatsids = array(); foreach($oldcategories as $oldcategory) $oldcatsids[] = $oldcategory->getID(); if (count($categoriesarr) != count($oldcategories) || array_diff(explode(',', $categories), $oldcatsids)) { if($document->setCategories($categoriesarr)) { } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } } else { if($document->setCategories(array())) { } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } if($sequence != "keep") { if($document->setSequence($sequence)) { } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } add_log_line("?documentid=".$documentid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.RemoveFolder.php0000644000175000017500000000634212040235122021155 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } if ($folderid == $settings->_rootFolderID || !$folder->getParent()) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("cannot_rm_root")); } if ($folder->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } $parent=$folder->getParent(); if ($folder->remove()) { // Send notification to subscribers. if ($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("folder_deleted_email"); $message = getMLText("folder_deleted_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$folder->_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } add_log_line(); header("Location:../out/out.ViewFolder.php?folderid=".$parent->getID()."&showtree=".$_POST["showtree"]); ?> letodms-3.3.11+dfsg.1/op/op.RemoveArchive.php0000644000175000017500000000333412040235122021321 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ if(!checkFormKey('removearchive')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["arkname"]) || !file_exists($settings->_contentDir.$_POST["arkname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } if (!LetoDMS_Core_File::removeFile($settings->_contentDir.$_POST["arkname"])) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line("?arkname=".$_POST["arkname"]); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.GroupView.php0000644000175000017500000000357712040235122020522 0ustar franciscofranciscogetGroup($_REQUEST['groupid']); $managers = $group->getManagers(); foreach($managers as $manager) { if($manager->getId() == $user->getId()) { $ismanager = true; break; } } } if($ismanager) { $curuser = $dms->getUser($_REQUEST['userid']); $members = $group->getUsers(); // Add user to group if ($_REQUEST['action'] == "add") { $curuser->joinGroup($group); } // Delete user from group elseif($_REQUEST['action'] == 'del') { $curuser->leaveGroup($group); } } else { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } header("Location:../out/out.GroupView.php"); ?> letodms-3.3.11+dfsg.1/op/op.GroupMgr.php0000644000175000017500000001572112040235122020327 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_POST["action"])) $action = $_POST["action"]; else $action = null; //Neue Gruppe anlegen ----------------------------------------------------------------------------- if ($action == "addgroup") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('addgroup')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } $name = $_POST["name"]; $comment = $_POST["comment"]; if (is_object($dms->getGroupByName($name))) { UI::exitError(getMLText("admin_tools"),getMLText("group_exists")); } $newGroup = $dms->addGroup($name, $comment); if (!$newGroup) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $groupid=$newGroup->getID(); add_log_line(); } //Gruppe lschen ---------------------------------------------------------------------------------- else if ($action == "removegroup") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('removegroup')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["groupid"]) || !is_numeric($_POST["groupid"]) || intval($_POST["groupid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $group = $dms->getGroup($_POST["groupid"]); if (!is_object($group)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } if (!$group->remove($user)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line(".php?groupid=".$groupid."&action=removegroup"); } //Gruppe bearbeiten ------------------------------------------------------------------------------- else if ($action == "editgroup") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('editgroup')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["groupid"]) || !is_numeric($_POST["groupid"]) || intval($_POST["groupid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $groupid=$_POST["groupid"]; $group = $dms->getGroup($groupid); if (!is_object($group)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $name = $_POST["name"]; $comment = $_POST["comment"]; if ($group->getName() != $name) $group->setName($name); if ($group->getComment() != $comment) $group->setComment($comment); add_log_line(); } //Benutzer zu Gruppe hinzufgen ------------------------------------------------------------------- else if ($action == "addmember") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('addmember')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["groupid"]) || !is_numeric($_POST["groupid"]) || intval($_POST["groupid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $groupid=$_POST["groupid"]; $group = $dms->getGroup($groupid); if (!is_object($group)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } if (!isset($_POST["userid"]) || !is_numeric($_POST["userid"]) || intval($_POST["userid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $newMember = $dms->getUser($_POST["userid"]); if (!is_object($newMember)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } if (!$group->isMember($newMember)){ $group->addUser($newMember); if (isset($_POST["manager"])) $group->toggleManager($newMember); } add_log_line(".php?groupid=".$groupid."&userid=".$_POST["userid"]."&action=addmember"); } //Benutzer aus Gruppe entfernen ------------------------------------------------------------------- else if ($action == "rmmember") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('rmmember')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["groupid"]) || !is_numeric($_POST["groupid"]) || intval($_POST["groupid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $groupid=$_POST["groupid"]; $group = $dms->getGroup($groupid); if (!is_object($group)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } if (!isset($_POST["userid"]) || !is_numeric($_POST["userid"]) || intval($_POST["userid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $oldMember = $dms->getUser($_POST["userid"]); if (!is_object($oldMember)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $group->removeUser($oldMember); add_log_line(); } // toggle manager flag else if ($action == "tmanager") { /* Check if the form data comes for a trusted request */ if(!checkFormKey('tmanager')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["groupid"]) || !is_numeric($_POST["groupid"]) || intval($_POST["groupid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } $groupid=$_POST["groupid"]; $group = $dms->getGroup($groupid); if (!is_object($group)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_group_id")); } if (!isset($_POST["userid"]) || !is_numeric($_POST["userid"]) || intval($_POST["userid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $usertoedit = $dms->getUser($_POST["userid"]); if (!is_object($usertoedit)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); } $group->toggleManager($usertoedit); add_log_line(); } header("Location:../out/out.GroupMgr.php?groupid=".$groupid); ?> letodms-3.3.11+dfsg.1/op/op.ApproveDocument.php0000644000175000017500000002226712040235122021703 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["version"]) || !is_numeric($_POST["version"]) || intval($_POST["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version = $_POST["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } // operation is only allowed for the last document version $latestContent = $document->getLatestContent(); if ($latestContent->getVersion()!=$version) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } // verify if document has expired if ($document->hasExpired()){ UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["approvalStatus"]) || !is_numeric($_POST["approvalStatus"]) || (intval($_POST["approvalStatus"])!=1 && intval($_POST["approvalStatus"])!=-1)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_approval_status")); } if ($_POST["approvalType"] == "ind") { $comment = $_POST["comment"]; if(0 > $latestContent->setApprovalByInd($user, $user, $_POST["approvalStatus"], $comment)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approval_update_failed")); } else { // Send an email notification to the document updater. if($notifier) { $subject = $settings->_siteName.": ".$document->getName().", v.".$version." - ".getMLText("approval_submit_email"); $message = getMLText("approval_submit_email")."\r\n"; $message .= getMLText("name").": ".$document->getName()."\r\n". getMLText("version").": ".$version."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". getMLText("status").": ".getApprovalStatusText($_POST["approvalStatus"])."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$documentid."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $content->getUser(), $subject, $message); // Send notification to subscribers. $nl=$document->getNotifyList(); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } else if ($_POST["approvalType"] == "grp") { $comment = $_POST["comment"]; $group = $dms->getGroup($_POST['approvalGroup']); if(0 > $latestContent->setApprovalByGrp($group, $user, $_POST["approvalStatus"], $comment)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approval_update_failed")); } else { // Send an email notification to the document updater. if($notifier) { $subject = $settings->_siteName.": ".$document->getName().", v.".$version." - ".getMLText("approval_submit_email"); $message = getMLText("approval_submit_email")."\r\n"; $message .= getMLText("name").": ".$document->getName()."\r\n". getMLText("version").": ".$version."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". getMLText("status").": ".getApprovalStatusText($_POST["approvalStatus"])."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$documentid."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $content->getUser(), $subject, $message); // Send notification to subscribers. $nl=$document->getNotifyList(); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } // // Check to see if the overall status for the document version needs to be // updated. // if ($_POST["approvalStatus"]==-1){ if($content->setStatus(S_REJECTED,$comment,$user)) { $nl=$document->getNotifyList(); // Send notification to subscribers. if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_status_changed_email"); $message = getMLText("document_status_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("status").": ".getOverallStatusText($status)."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } // TODO: if user os not owner send notification to owner } }else{ $docApprovalStatus = $content->getApprovalStatus(); if (is_bool($docApprovalStatus) && !$docApprovalStatus) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("cannot_retrieve_approval_snapshot")); } $approvalCT = 0; $approvalTotal = 0; foreach ($docApprovalStatus as $drstat) { if ($drstat["status"] == 1) { $approvalCT++; } if ($drstat["status"] != -2) { $approvalTotal++; } } // If all approvals have been received and there are no rejections, retrieve a // count of the approvals required for this document. if ($approvalCT == $approvalTotal) { // Change the status to released. $newStatus=2; if($content->setStatus($newStatus, getMLText("automatic_status_update"), $user)) { $nl=$document->getNotifyList(); // Send notification to subscribers. if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_status_changed_email"); $message = getMLText("document_status_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("status").": ".getOverallStatusText($newStatus)."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } // TODO: if user os not owner send notification to owner } } } header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.UserDefaultKeywords.php0000644000175000017500000001433512040235122022540 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_default_keywords"),getMLText("access_denied")); } $action = ''; if (isset($_REQUEST["action"])) { $action = $_REQUEST["action"]; } /* Create new category ------------------------------------------------ */ if ($action == "addcategory") { if (isset($_REQUEST["name"]) && $_REQUEST["name"]) { $name = $_REQUEST["name"]; $newCategory = $dms->addKeywordCategory($user->getID(), $name); if (!$newCategory) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } $categoryid=$newCategory->getID(); } else { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } /* Delete category ---------------------------------------------------- */ else if ($action == "removecategory") { $categoryid = 0; if (isset($_REQUEST["categoryid"]) && $_REQUEST["categoryid"]) { $categoryid = intval($_POST["categoryid"]); } $category = $dms->getKeywordCategory($categoryid); if (is_object($category)) { $owner = $category->getOwner(); if ($owner->getID() != $user->getID()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("access_denied")); } if (!$category->remove()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } $categoryid=-1; } /* Edit category: new name -------------------------------------------- */ else if ($action == "editcategory") { $categoryid = 0; if (isset($_REQUEST["categoryid"]) && $_REQUEST["categoryid"]) { $categoryid = intval($_POST["categoryid"]); } $category = $dms->getKeywordCategory($categoryid); if (is_object($category)) { $owner = $category->getOwner(); if ($owner->getID() != $user->getID()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("access_denied")); } if (isset($_REQUEST["name"]) && $_REQUEST["name"]) { $name = $_REQUEST["name"]; if (!$category->setName($name)) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } /* Edit category: new keyword list ----------------------------------- */ else if ($action == "newkeywords") { $categoryid = 0; if (isset($_REQUEST["categoryid"]) && $_REQUEST["categoryid"]) { $categoryid = intval($_POST["categoryid"]); } $category = $dms->getKeywordCategory($categoryid); if (is_object($category)) { $owner = $category->getOwner(); if ($owner->getID() != $user->getID()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("access_denied")); } if (isset($_POST["keywords"])) { $keywords = $_POST["keywords"]; } else { $keywords = $_GET["keywords"]; } if (!$category->addKeywordList($keywords)) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } /* Edit category: edit keyword list ----------------------------------*/ else if ($action == "editkeywords") { $categoryid = 0; if (isset($_REQUEST["categoryid"]) && $_REQUEST["categoryid"]) { $categoryid = intval($_POST["categoryid"]); } $category = $dms->getKeywordCategory($categoryid); if (is_object($category)) { $owner = $category->getOwner(); if ($owner->getID() != $user->getID()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("access_denied")); } if (isset($_POST["keywordsid"])) { $keywordsid = intval($_POST["keywordsid"]); } else { $keywordsid = intval($_GET["keywordsid"]); } if (!is_numeric($keywordsid)) { UI::exitError(getMLText("personal_default_keywords"),getMLText("unknown_keyword_category")); } if (!$category->editKeywordList($keywordsid, $_POST["keywords"])) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } /* Edit category: delete keyword list -------------------------------- */ else if ($action == "removekeywords") { $categoryid = 0; if (isset($_REQUEST["categoryid"]) && $_REQUEST["categoryid"]) { $categoryid = intval($_POST["categoryid"]); } $category = $dms->getKeywordCategory($categoryid); if (is_object($category)) { $owner = $category->getOwner(); if ($owner->getID() != $user->getID()) { UI::exitError(getMLText("personal_default_keywords"),getMLText("access_denied")); } if (isset($_POST["keywordsid"])) { $keywordsid = intval($_POST["keywordsid"]); } else { $keywordsid = intval($_GET["keywordsid"]); } if (!is_numeric($keywordsid)) { UI::exitError(getMLText("personal_default_keywords"),getMLText("unknown_keyword_category")); } if (!$category->removeKeywordList($keywordsid)) { UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } } else UI::exitError(getMLText("personal_default_keywords"),getMLText("error_occured")); } header("Location:../out/out.UserDefaultKeywords.php?categoryid=".$categoryid); ?> letodms-3.3.11+dfsg.1/op/op.ViewOnline.php0000644000175000017500000000537712040235122020652 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $version = $_GET["version"]; if (!isset($version) || !is_numeric($version) || intval($version)<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } if (isset($settings->_viewOnlineFileTypes) && is_array($settings->_viewOnlineFileTypes) && in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { header("Content-Type: " . $content->getMimeType()); } header("Content-Disposition: filename=\"" . $document->getName().$content->getFileType()) . "\""; header("Content-Length: " . filesize($dms->contentDir . $content->getPath())); header("Expires: 0"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); readfile($dms->contentDir . $content->getPath()); add_log_line(); exit; ?> letodms-3.3.11+dfsg.1/op/op.RemoveDump.php0000644000175000017500000000333612040235122020647 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ if(!checkFormKey('removedump')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } if (!isset($_POST["dumpname"]) || !file_exists($settings->_contentDir.$_POST["dumpname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } if (!LetoDMS_Core_File::removeFile($settings->_contentDir.$_POST["dumpname"])) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line("?dumpname=".$_POST["dumpname"]); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.PasswordForgotten.php0000644000175000017500000000443612040235122022260 0ustar franciscofrancisco" . getMLText("login") . "

\n"); UI::htmlEndPage(); return; } if (isset($_POST["email"])) { $email = $_POST["email"]; } if (isset($_POST["login"])) { $login = $_POST["login"]; } if (empty($email) || empty($login)) { _printMessage(getMLText("email_error_title"), "

".getMLText("email_not_given")."

\n". "

".getMLText("back")."

\n"); exit; } $user = $dms->getUserByLogin($login, $email); if($user) { $hash = $dms->createPasswordRequest($user); $emailobj = new LetoDMS_Email(); $subject = "###SITENAME###: ".getMLText("password_forgotten_email_subject"); $message = str_replace('###HASH###', $hash, getMLText("password_forgotten_email_body")); $emailobj->sendPassword('', $user, $subject, $message); } _printMessage(getMLText("password_forgotten_title"), "

".getMLText("password_forgotten_send_hash")."

"); exit; ?> letodms-3.3.11+dfsg.1/op/op.UpdateDocument2.php0000644000175000017500000001644412040235122021573 0ustar franciscofrancisco_stagingDir.$_POST['fileId']."-".$_POST['partitionIndex']; if( move_uploaded_file( $source_file_path, $target_file_path ) ) { if($_POST['partitionIndex']+1 == $_POST['partitionCount']) { $fpnew = fopen($settings->_stagingDir.$_POST['fileId'], 'w+'); for($i=0; $i<$_POST['partitionCount']; $i++) { $content = file_get_contents($settings->_stagingDir.$_POST['fileId']."-".$i, 'r'); fwrite($fpnew, $content); unlink($settings->_stagingDir.$_POST['fileId']."-".$i); } fclose($fpnew); if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { echo getMLText("invalid_doc_id"); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); $folder = $document->getFolder(); if (!is_object($document)) { echo getMLText("invalid_doc_id"); } if ($document->getAccessMode($user) < M_READWRITE) { echo getMLText("access_denied"); } if ($document->isLocked()) { $lockingUser = $document->getLockingUser(); if (($lockingUser->getID() != $user->getID()) && ($document->getAccessMode($user) != M_ALL)) { echo getMLText("no_update_cause_locked"); } else $document->setLocked(false); } $comment = $_POST["comment"]; $userfiletmp = $settings->_stagingDir.$_POST['fileId'];; $userfiletype = $_FILES[ $file_param_name ]["type"]; $userfilename = $_FILES[ $file_param_name ]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); // Get the list of reviewers and approvers for this document. $reviewers = array(); $approvers = array(); // Retrieve the list of individual reviewers from the form. $reviewers["i"] = array(); if (isset($_POST["indReviewers"])) { foreach ($_POST["indReviewers"] as $ind) { $reviewers["i"][] = $ind; } } // Retrieve the list of reviewer groups from the form. $reviewers["g"] = array(); if (isset($_POST["grpReviewers"])) { foreach ($_POST["grpReviewers"] as $grp) { $reviewers["g"][] = $grp; } } // Retrieve the list of individual approvers from the form. $approvers["i"] = array(); if (isset($_POST["indApprovers"])) { foreach ($_POST["indApprovers"] as $ind) { $approvers["i"][] = $ind; } } // Retrieve the list of approver groups from the form. $approvers["g"] = array(); if (isset($_POST["grpApprovers"])) { foreach ($_POST["grpApprovers"] as $grp) { $approvers["g"][] = $grp; } } // add mandatory reviewers/approvers $docAccess = $folder->getApproversList(); $res=$user->getMandatoryReviewers(); foreach ($res as $r){ if ($r['reviewerUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['reviewerUserID']){ $reviewers["i"][] = $r['reviewerUserID']; break; } } else if ($r['reviewerGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['reviewerGroupID']){ $reviewers["g"][] = $r['reviewerGroupID']; break; } } } $res=$user->getMandatoryApprovers(); foreach ($res as $r){ if ($r['approverUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['approverUserID']){ $approvers["i"][] = $r['approverUserID']; break; } } else if ($r['approverGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['approverGroupID']){ $approvers["g"][] = $r['approverGroupID']; break; } } } $contentResult=$document->addContent($comment, $user, $userfiletmp, basename($userfilename), $fileType, $userfiletype, $reviewers, $approvers); unlink($userfiletmp); if (is_bool($contentResult) && !$contentResult) { echo getMLText("error_occured"); } else { // Send notification to subscribers. $document->getNotifyList(); if ($notifier){ $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_updated_email"); $message = getMLText("document_updated_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } // if user is not owner send notification to owner if ($user->getID()!= $document->_ownerID) $notifier->toIndividual($user, $document->getOwner(), $subject, $message); } $expires = ($_POST["expires"] == "true") ? mktime(0,0,0, $_POST["expmonth"], $_POST["expday"], $_POST["expyear"]) : false; if ($document->setExpires($expires)) { $document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); // Send notification to subscribers. $subject = "###SITENAME###: ".$document->_name." - ".getMLText("expiry_changed_email"); $message = getMLText("expiry_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } } add_log_line("?documentid=".$documentid); } } ?> letodms-3.3.11+dfsg.1/op/op.CreateStatusIndex.php0000644000175000017500000000626512040235122022167 0ustar franciscofranciscoisAdmin()) { print "

Error: User must have administrative privileges to create the status index.

"; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } if (!isset($_GET["genIndex"]) || $_GET["genIndex"]!=1) { print "
"; print ""; print "

"; print "
"; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } $queryStr = "SELECT `tblDocumentContent`.`document`, `tblDocumentContent`.`version` FROM `tblDocumentContent`"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr)) { print "

Error: unable to retrieve document content listing.

"; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } print "
    "; foreach ($resArr as $row) { echo "
  • Creating status log for: '".$row["document"]."', version: '".$row["version"]."'"; $queryStr = "INSERT INTO `tblDocumentStatus` (`documentID`, `version`) ". "VALUES ('".$row["document"]."', '".$row["version"]."')"; if (!$db->getResult($queryStr)) { print "

    Error: unable to insert status row.

    "; echo "
  • "; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } $statusID = $db->getInsertID(); $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('".$statusID."', '2', '-', NOW(), '".$user->getID()."')"; if (!$db->getResult($queryStr)) { print "

    Error: unable to insert status log entry.

    "; echo ""; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } echo ""; } print "
      "; print "

      Status Index Generation is complete.

      "; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/op/op.Download.php0000644000175000017500000002132712040235122020333 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version = $_GET["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } //header("Content-Type: application/force-download; name=\"" . mydmsDecodeString($content->getOriginalFileName()) . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($dms->contentDir . $content->getPath() )); header("Content-Disposition: attachment; filename=\"" . $content->getOriginalFileName() . "\""); //header("Expires: 0"); header("Content-Type: " . $content->getMimeType()); //header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: must-revalidate"); //header("Pragma: no-cache"); readfile($dms->contentDir . $content->getPath()); } elseif (isset($_GET["file"])) { // file download if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!is_numeric($_GET["file"]) || intval($_GET["file"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_file_id")); } $fileid = $_GET["file"]; $file = $document->getDocumentFile($fileid); if (!is_object($file)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_file_id")); } header("Content-Type: application/force-download; name=\"" . $file->getOriginalFileName() . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($dms->contentDir . $file->getPath() )); header("Content-Disposition: attachment; filename=\"" . $file->getOriginalFileName() . "\""); //header("Expires: 0"); header("Content-Type: " . $file->getMimeType()); //header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: must-revalidate"); //header("Pragma: no-cache"); readfile($dms->contentDir . $file->getPath()); } elseif (isset($_GET["arkname"])) { // backup download if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["arkname"]) || !file_exists($settings->_contentDir.$_GET["arkname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } header('Content-Description: File Transfer'); //header("Content-Type: application/force-download; name=\"" . $_GET["arkname"] . "\""); //header("Content-Type: application/octet-stream"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($settings->_contentDir . $_GET["arkname"] )); header("Content-Disposition: attachment; filename=\"" .$_GET["arkname"] . "\""); // header("Expires: 0"); //header("Content-Type: " . $content->getMimeType()); //header("Cache-Control: no-cache, must-revalidate"); // header("Cache-Control: must-revalidate"); header("Cache-Control: public"); //header("Pragma: no-cache"); readfile($settings->_contentDir .$_GET["arkname"] ); } elseif (isset($_GET["logname"])) { // log download if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["logname"]) || !file_exists($settings->_contentDir.$_GET["arkname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } header("Content-Type: text/plain; name=\"" . $_GET["logname"] . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($settings->_contentDir . $_GET["logname"] )); header("Content-Disposition: attachment; filename=\"" .$_GET["logname"] . "\""); header("Cache-Control: must-revalidate"); readfile($settings->_contentDir .$_GET["logname"] ); } elseif (isset($_GET["vfile"])) { // versioning info download $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } // update infos createVersionigFile($document); header("Content-Type: text/plain; name=\"" . $settings->_versioningFileName . "\""); //header("Content-Type: application/force-download; name=\"" . $settings->_versioningFileName . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($dms->contentDir.$document->getDir().$settings->_versioningFileName )."\""); header("Content-Disposition: attachment; filename=\"". $settings->_versioningFileName . "\""); //header("Expires: 0"); //header("Content-Type: " . $content->getMimeType()); //header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: must-revalidate"); //header("Pragma: no-cache"); readfile($dms->contentDir . $document->getDir() .$settings->_versioningFileName); } elseif (isset($_GET["dumpname"])) { // dump file download if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["dumpname"]) || !file_exists($settings->_contentDir.$_GET["dumpname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } header("Content-Type: application/zip; name=\"" . $_GET["dumpname"] . "\""); //header("Content-Type: application/force-download; name=\"" . $_GET["dumpname"] . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($settings->_contentDir . $_GET["dumpname"] )); header("Content-Disposition: attachment; filename=\"" .$_GET["dumpname"] . "\""); //header("Expires: 0"); //header("Content-Type: " . $content->getMimeType()); //header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: must-revalidate"); //header("Pragma: no-cache"); readfile($settings->_contentDir .$_GET["dumpname"] ); } add_log_line(); exit(); ?> letodms-3.3.11+dfsg.1/op/op.CreateVersioningFiles.php0000644000175000017500000000401712040235122023013 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } function createVersionigFiles($folder) { global $settings; $documents = $folder->getDocuments(); foreach ($documents as $document) if (!createVersionigFile($document)) return false; $subFolders = $folder->getSubFolders(); foreach ($subFolders as $folder) if (!createVersionigFiles($folder)) return false; return true; } if (!isset($_GET["targetidform1"]) || !is_numeric($_GET["targetidform1"]) || intval($_GET["targetidform1"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } $folderid = $_GET["targetidform1"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } if (!createVersionigFiles($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line(); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.DocumentNotify.php0000644000175000017500000002066312040235122021535 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if (!isset($_GET["action"]) || (strcasecmp($_GET["action"], "delnotify") && strcasecmp($_GET["action"],"addnotify"))) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_action")); } $action = $_GET["action"]; if (isset($_GET["userid"]) && (!is_numeric($_GET["userid"]) || $_GET["userid"]<-1)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); } if(isset($_GET["userid"])) $userid = $_GET["userid"]; if (isset($_GET["groupid"]) && (!is_numeric($_GET["groupid"]) || $_GET["groupid"]<-1)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_group")); } if(isset($_GET["groupid"])) $groupid = $_GET["groupid"]; if (isset($_GET["groupid"])&&$_GET["groupid"]!=-1){ $group=$dms->getGroup($groupid); if (!$group->isMember($user,true) && !$user->isAdmin()) UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } // delete notification if ($action == "delnotify"){ if (isset($userid)) { if($res = $document->removeNotify($userid, true)) { $obj = $dms->getUser($userid); } } else if (isset($groupid)) { if($res = $document->removeNotify($groupid, false)) { $obj = $dms->getGroup($groupid); } } switch ($res) { case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),isset($userid) ? getMLText("unknown_user") : getMLText("unknown_group")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case 0: // Email user / group, informing them of subscription change. if($notifier) { $path=""; $folder = $document->getFolder(); $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("notify_deleted_email"); $message = getMLText("notify_deleted_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); if (isset($userid)) { $obj = $dms->getUser($userid); $notifier->toIndividual($user, $obj, $subject, $message); } else if (isset($groupid)) { $obj = $dms->getGroup($groupid); $notifier->toGroup($user, $obj, $subject, $message); } } break; } } // add notification else if ($action == "addnotify") { if ($userid != -1) { $res = $document->addNotify($userid, true); switch ($res) { case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_user")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case 0: // Email user / group, informing them of subscription. if ($notifier){ $path=""; $folder = $document->getFolder(); $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $obj = $dms->getUser($userid); $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("notify_added_email"); $message = getMLText("notify_added_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $obj, $subject, $message); } break; } } if ($groupid != -1) { $res = $document->addNotify($groupid, false); switch ($res) { case -1: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("unknown_group")); break; case -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; case 0: if ($notifier){ $path=""; $folder = $document->getFolder(); $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $obj = $dms->getGroup($groupid); $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("notify_added_email"); $message = getMLText("notify_added_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $obj, $subject, $message); } break; } } } header("Location:../out/out.DocumentNotify.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.AddDocument.php0000644000175000017500000001614312040235122020753 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } $comment = $_POST["comment"]; $version_comment = $_POST["version_comment"]; $keywords = $_POST["keywords"]; $categories = preg_replace('/[^0-9,]+/', '', $_POST["categoryidform1"]); $reqversion = (int)$_POST["reqversion"]; if ($reqversion<1) $reqversion=1; $sequence = $_POST["sequence"]; if (!is_numeric($sequence)) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_sequence")); } $expires = ($_POST["expires"] == "true") ? mktime(0,0,0, intval($_POST["expmonth"]), intval($_POST["expday"]), intval($_POST["expyear"])) : false; // Get the list of reviewers and approvers for this document. $reviewers = array(); $approvers = array(); $reviewers["i"] = array(); $reviewers["g"] = array(); $approvers["i"] = array(); $approvers["g"] = array(); // Retrieve the list of individual reviewers from the form. if (isset($_POST["indReviewers"])) { foreach ($_POST["indReviewers"] as $ind) { $reviewers["i"][] = $ind; } } // Retrieve the list of reviewer groups from the form. if (isset($_POST["grpReviewers"])) { foreach ($_POST["grpReviewers"] as $grp) { $reviewers["g"][] = $grp; } } // Retrieve the list of individual approvers from the form. if (isset($_POST["indApprovers"])) { foreach ($_POST["indApprovers"] as $ind) { $approvers["i"][] = $ind; } } // Retrieve the list of approver groups from the form. if (isset($_POST["grpApprovers"])) { foreach ($_POST["grpApprovers"] as $grp) { $approvers["g"][] = $grp; } } // add mandatory reviewers/approvers $docAccess = $folder->getApproversList(); $res=$user->getMandatoryReviewers(); foreach ($res as $r){ if ($r['reviewerUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['reviewerUserID']){ $reviewers["i"][] = $r['reviewerUserID']; break; } } else if ($r['reviewerGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['reviewerGroupID']){ $reviewers["g"][] = $r['reviewerGroupID']; break; } } } $res=$user->getMandatoryApprovers(); foreach ($res as $r){ if ($r['approverUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['approverUserID']){ $approvers["i"][] = $r['approverUserID']; break; } } else if ($r['approverGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['approverGroupID']){ $approvers["g"][] = $r['approverGroupID']; break; } } } for ($file_num=0;$file_num $folder->getName())),getMLText("uploading_failed")); } $userfiletmp = $_FILES["userfile"]["tmp_name"][$file_num]; $userfiletype = $_FILES["userfile"]["type"][$file_num]; $userfilename = $_FILES["userfile"]["name"][$file_num]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); if ((count($_FILES["userfile"]["tmp_name"])==1)&&($_POST["name"]!="")) $name = $_POST["name"]; else $name = basename($userfilename); $cats = array(); if($categories) { $catids = explode(',', $categories); foreach($catids as $catid) { $cats[] = $dms->getDocumentCategory($catid); } } $res = $folder->addDocument($name, $comment, $expires, $user, $keywords, $cats, $userfiletmp, basename($userfilename), $fileType, $userfiletype, $sequence, $reviewers, $approvers, $reqversion,$version_comment); if (is_bool($res) && !$res) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } else { $document = $res[0]; if(isset($GLOBALS['LETODMS_HOOKS']['postAddDocument'])) { foreach($GLOBALS['LETODMS_HOOKS']['postAddDocument'] as $hookObj) { if (method_exists($hookObj, 'postAddDocument')) { $hookObj->postAddDocument($document); } } } // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("new_document_email"); $message = getMLText("new_document_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("comment_for_current_version").": ".$version_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; $subject=$subject; $message=$message; $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?name=".$name."&folderid=".$folderid); } header("Location:../out/out.ViewFolder.php?folderid=".$folderid."&showtree=".$_POST["showtree"]); ?> letodms-3.3.11+dfsg.1/op/op.CreateDump.php0000644000175000017500000000404412040235122020612 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $dump_name = $settings->_contentDir.time().".sql"; $h=fopen($dump_name,"w"); if (is_bool($h)&&!$h) UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); $tables = $db->TableList('TABLES'); foreach ($tables as $table){ $query = "SELECT * FROM ".$table; $records = $db->getResultArray($query); fwrite($h,"\n-- TABLE: ".$table."--\n\n"); foreach ($records as $record){ $values=""; $i = 1; foreach ($record as $column) { if (is_numeric($column)) $values .= $column; else $values .= "'".$column."'"; if ($i<(count($record))) $values .= ","; $i++; } fwrite($h, "INSERT INTO " . $table . " VALUES (" . $values . ");\n"); } } fclose($h); if (LetoDMS_Core_File::gzcompressfile($dump_name,9)) unlink($dump_name); else UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); add_log_line(); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.FolderNotify.php0000644000175000017500000002013112040235122021160 0ustar franciscofrancisco $folder->getName())),getMLText("invalid_request_token")); } if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } if (!isset($_POST["action"]) || (strcasecmp($_POST["action"], "delnotify") && strcasecmp($_POST["action"], "addnotify"))) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_action")); } $action = $_POST["action"]; if (isset($_POST["userid"]) && (!is_numeric($_POST["userid"]) || $_POST["userid"]<-1)) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); } $userid = $_POST["userid"]; if (isset($_POST["groupid"]) && (!is_numeric($_POST["groupid"]) || $_POST["groupid"]<-1)) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_group")); } $groupid = $_POST["groupid"]; if (isset($_POST["groupid"])&&$_POST["groupid"]!=-1){ $group=$dms->getGroup($groupid); if (!$group->isMember($user,true) && !$user->isAdmin()) UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READ) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } //Benachrichtigung lschen ------------------------------------------------------------------------ if ($action == "delnotify") { if ($userid > 0) { $res = $folder->removeNotify($userid, true); $obj = $dms->getUser($userid); } elseif ($groupid > 0) { $res = $folder->removeNotify($groupid, false); $obj = $dms->getGroup($groupid); } switch ($res) { case -1: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),isset($userid) ? getMLText("unknown_user") : getMLText("unknown_group")); break; case -2: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("internal_error")); break; case 0: if($notifier) { // Email user / group, informing them of subscription. $path=""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $subject = "###SITENAME###: ".$folder->getName()." - ".getMLText("notify_deleted_email"); $message = getMLText("notify_deleted_email")."\r\n"; $message .= getMLText("name").": ".$folder->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$folder->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); if ($userid > 0) { $notifier->toIndividual($user, $obj, $subject, $message); } else { $notifier->toGroup($user, $obj, $subject, $message); } } break; } } //Benachrichtigung hinzufgen --------------------------------------------------------------------- else if ($action == "addnotify") { if ($userid != -1) { $res = $folder->addNotify($userid, true); switch ($res) { case -1: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); break; case -2: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("internal_error")); break; case 0: $obj = $dms->getUser($userid); // Email user / group, informing them of subscription. $path=""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } if($notifier) { $subject = "###SITENAME###: ".$folder->getName()." - ".getMLText("notify_added_email"); $message = getMLText("notify_added_email")."\r\n"; $message .= getMLText("name").": ".$folder->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$folder->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $obj, $subject, $message); } break; } } if ($groupid != -1) { $res = $folder->addNotify($groupid, false); switch ($res) { case -1: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_group")); break; case -2: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); break; case -3: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("already_subscribed")); break; case -4: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("internal_error")); break; case 0: $obj = $dms->getGroup($groupid); // Email user / group, informing them of subscription. $path=""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } if($notifier) { $subject = "###SITENAME###: ".$folder->getName()." - ".getMLText("notify_added_email"); $message = getMLText("notify_added_email")."\r\n"; $message .= getMLText("name").": ".$folder->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$folder->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toGroup($user, $obj, $subject, $message); } break; } } } header("Location:../out/out.FolderNotify.php?folderid=".$folderid); ?> letodms-3.3.11+dfsg.1/op/op.AddSubFolder.php0000644000175000017500000000702712040235122021063 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } $sequence = $_POST["sequence"]; if (!is_numeric($sequence)) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_sequence")); } $name = $_POST["name"]; $comment = $_POST["comment"]; $subFolder = $folder->addSubFolder($name, $comment, $user, $sequence); if (is_object($subFolder)) { // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("new_subfolder_email"); $message = getMLText("new_subfolder_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("folder").": ".$subFolder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("user").": ".$user->getFullName()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$subFolder->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } add_log_line("?name=".$name."&folderid=".$folderid); header("Location:../out/out.ViewFolder.php?folderid=".$folderid."&showtree=".$_POST["showtree"]); ?> letodms-3.3.11+dfsg.1/op/.htaccess0000644000175000017500000000026012040235122017225 0ustar franciscofranciscoRewriteEngine on RewriteCond %{REQUEST_URI} (.*)viewonline/([0-9]+)/([0-9]+)/(.+)$ RewriteRule (.*)viewonline/([0-9]+)/([0-9]+)/(.+)$ $1op.ViewOnline.php?request=$2:$3 [PT] letodms-3.3.11+dfsg.1/op/op.EditFolder.php0000644000175000017500000001053612040235122020605 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } $name = $_POST["name"]; $comment = $_POST["comment"]; $sequence = $_POST["sequence"]; if (!is_numeric($sequence)) { $sequence = "keep"; } $wasupdated = false; if(($oldname = $folder->getName()) != $name) { if($folder->setName($name)) { // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("folder_renamed_email"); $message = getMLText("folder_renamed_email")."\r\n"; $message .= getMLText("old").": ".$oldname."\r\n". getMLText("new").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } } if(($oldcomment = $folder->getComment()) != $comment) { if($folder->setComment($comment)) { // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("comment_changed_email"); $message = getMLText("comment_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } } if(strcasecmp($sequence, "keep")) { if($folder->setSequence($sequence)) { } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } } add_log_line("?folderid=".$folderid); header("Location:../out/out.ViewFolder.php?folderid=".$folderid."&showtree=".$_POST["showtree"]); ?> letodms-3.3.11+dfsg.1/op/op.Login.php0000644000175000017500000002166012040235122017634 0ustar franciscofrancisco".getMLText("login_not_given")."

      \n". "

      ".getMLText("back")."

      \n"); exit; } $pwd = (string) $_POST["pwd"]; if (get_magic_quotes_gpc()) { $pwd = stripslashes($pwd); } $guestUser = $dms->getUser($settings->_guestID); if ((!isset($pwd) || strlen($pwd)==0) && ($login != $guestUser->getLogin())) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("login_error_text")."

      \n". "

      ".getMLText("back")."

      \n"); exit; } // // LDAP Sign In // /* new code by doudoux - TO BE TESTED */ if (isset($settings->_ldapBaseDN)) { $ldapSearchAttribut = "uid="; $tmpDN = "uid=".$login.",".$settings->_ldapBaseDN; } if (isset($settings->_ldapType)) { if ($settings->_ldapType==1) { $ldapSearchAttribut = "sAMAccountName="; $tmpDN = $login.'@'.$settings->_ldapAccountDomainName; } } /* end of new code */ $user = false; if (isset($settings->_ldapHost) && strlen($settings->_ldapHost)>0) { if (isset($settings->_ldapPort) && is_int($settings->_ldapPort)) { $ds = ldap_connect($settings->_ldapHost, $settings->_ldapPort); } else { $ds = ldap_connect($settings->_ldapHost); } if (!is_bool($ds)) { // Ensure that the LDAP connection is set to use version 3 protocol. // Required for most authentication methods, including SASL. ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // try an anonymous bind first. If it succeeds, get the DN for the user. $bind = @ldap_bind($ds); $dn = false; /* new code by doudoux - TO BE TESTED */ if ($bind) { $search = ldap_search($ds, $settings->_ldapBaseDN, $ldapSearchAttribut.$login); if (!is_bool($search)) { $info = ldap_get_entries($ds, $search); if (!is_bool($info) && $info["count"]>0) { $dn = $info[0]['dn']; } } } /* end of new code */ /* old code */ if ($bind) { $search = ldap_search($ds, $settings->_ldapBaseDN, "uid=".$login); if (!is_bool($search)) { $info = ldap_get_entries($ds, $search); if (!is_bool($info) && $info["count"]>0) { $dn = $info[0]['dn']; } } } /* end of old code */ if (is_bool($dn)) { // This is the fallback position, in case the anonymous bind does not // succeed. /* new code by doudoux - TO BE TESTED */ $dn = $tmpDN; /* old code */ //$dn = "uid=".$login.",".$settings->_ldapBaseDN; } $bind = @ldap_bind($ds, $dn, $pwd); if ($bind) { // Successfully authenticated. Now check to see if the user exists within // the database. If not, add them in, but do not add their password. $user = $dms->getUserByLogin($login); if (is_bool($user) && !$settings->_restricted) { // Retrieve the user's LDAP information. /* new code by doudoux - TO BE TESTED */ $search = ldap_search($ds, $settings->_ldapBaseDN, $ldapSearchAttribut . $login); /* old code */ //$search = ldap_search($ds, $dn, "uid=".$login); if (!is_bool($search)) { $info = ldap_get_entries($ds, $search); if (!is_bool($info) && $info["count"]==1 && $info[0]["count"]>0) { $user = $dms->addUser($login, null, $info[0]['cn'][0], $info[0]['mail'][0], $settings->_language, $settings->_theme, ""); } } } if (!is_bool($user)) { $userid = $user->getID(); } } ldap_close($ds); } } if (is_bool($user)) { // // LDAP Authentication did not succeed or is not configured. Try internal // authentication system. // // Try to find user with given login. $user = $dms->getUserByLogin($login); if (!$user) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("login_error_text")."

      \n". "

      ".getMLText("back")."

      \n"); exit; } $userid = $user->getID(); if (($userid == $settings->_guestID) && (!$settings->_enableGuestLogin)) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("guest_login_disabled"). "

      \n

      ".getMLText("back")."

      \n"); exit; } // Check if password matches (if not a guest user) // Assume that the password has been sent via HTTP POST. It would be careless // (and dangerous) for passwords to be sent via GET. if (($userid != $settings->_guestID) && (md5($pwd) != $user->getPwd())) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("login_error_text"). "

      \n

      ".getMLText("back")."

      \n"); exit; } // control admin IP address if required // TODO: extend control to LDAP autentication if ($user->isAdmin() && ($_SERVER['REMOTE_ADDR'] != $settings->_adminIP ) && ( $settings->_adminIP != "") ){ _printMessage(getMLText("login_error_title"), "

      ".getMLText("invalid_user_id"). "

      \n

      ".getMLText("back")."

      \n"); exit; } } // Capture the user's language and theme settings. if (isset($_REQUEST["lang"]) && strlen($_REQUEST["lang"])>0 && is_numeric(array_search($_REQUEST["lang"],getLanguages())) ) { $lang = $_REQUEST["lang"]; $user->setLanguage($lang); } else { $lang = $user->getLanguage(); if (strlen($lang)==0) { $lang = $settings->_language; $user->setLanguage($lang); } } if (isset($_REQUEST["sesstheme"]) && strlen($_REQUEST["sesstheme"])>0 && is_numeric(array_search($_REQUEST["sesstheme"],UI::getStyles())) ) { $sesstheme = $_REQUEST["sesstheme"]; $user->setTheme($sesstheme); } else { $sesstheme = $user->getTheme(); if (strlen($sesstheme)==0) { $sesstheme = $settings->_theme; $user->setTheme($sesstheme); } } $session = new LetoDMS_Session($db); // Delete all sessions that are more than 24 hours old. Probably not the most // reliable place to put this check -- move to inc.Authentication.php? if(!$session->deleteByTime(86400)) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("error_occured").": ".$db->getErrorMsg()."

      "); exit; } // Create new session in database if(!$id = $session->create(array('userid'=>$userid, 'theme'=>$sesstheme, 'lang'=>$lang))) { _printMessage(getMLText("login_error_title"), "

      ".getMLText("error_occured").": ".$db->getErrorMsg()."

      "); exit; } // Set the session cookie. setcookie("mydms_session", $id, 0, $settings->_httpRoot); // TODO: by the PHP manual: The superglobals $_GET and $_REQUEST are already decoded. // Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results. if (isset($_POST["referuri"]) && strlen($_POST["referuri"])>0) { $referuri = urldecode($_POST["referuri"]); } else if (isset($_GET["referuri"]) && strlen($_GET["referuri"])>0) { $referuri = urldecode($_GET["referuri"]); } add_log_line(); if (isset($referuri) && strlen($referuri)>0) { header("Location: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'] . $referuri); } else { header("Location: ../".(isset($settings->_siteDefaultPage) && strlen($settings->_siteDefaultPage)>0 ? $settings->_siteDefaultPage : "out/out.ViewFolder.php?folderid=1")); } //_printMessage(getMLText("login_ok"), // "

      ".getMLText("continue")."

      "); ?> letodms-3.3.11+dfsg.1/op/op.LockDocument.php0000644000175000017500000000455712040235122021161 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".$document->getName().""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if ($document->isLocked()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("document_already_locked")); } if (!$document->setLocked($user)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } add_log_line(); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.AddMultiDocument.php0000644000175000017500000001576212040235122021774 0ustar franciscofrancisco_stagingDir.$_POST['fileId']."-".$_POST['partitionIndex']; if( move_uploaded_file( $source_file_path, $target_file_path ) ) { if($_POST['partitionIndex']+1 == $_POST['partitionCount']) { $fpnew = fopen($settings->_stagingDir.$_POST['fileId'], 'w+'); for($i=0; $i<$_POST['partitionCount']; $i++) { $content = file_get_contents($settings->_stagingDir.$_POST['fileId']."-".$i, 'r'); fwrite($fpnew, $content); unlink($settings->_stagingDir.$_POST['fileId']."-".$i); } fclose($fpnew); if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { echo getMLText("invalid_folder_id"); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { echo getMLText("invalid_folder_id"); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { echo getMLText("access_denied"); } if(isset($_POST["comment"])) $comment = $_POST["comment"]; else $comment = ''; if(isset($_POST['version_comment'])) $version_comment = $_POST["version_comment"]; else $version_comment = ''; if(isset($_POST["keywords"])) $keywords = $_POST["keywords"]; else $keywords = ''; $reqversion = (int)$_POST["reqversion"]; if ($reqversion<1) $reqversion=1; $sequence = $_POST["sequence"]; if (!is_numeric($sequence)) { $sequence = 1; } $expires = ($_POST["expires"] == "true") ? mktime(0,0,0, intval($_POST["expmonth"]), intval($_POST["expday"]), intval($_POST["expyear"])) : false; // Get the list of reviewers and approvers for this document. $reviewers = array(); $approvers = array(); $reviewers["i"] = array(); $reviewers["g"] = array(); $approvers["i"] = array(); $approvers["g"] = array(); // Retrieve the list of individual reviewers from the form. if (isset($_POST["indReviewers"])) { foreach ($_POST["indReviewers"] as $ind) { $reviewers["i"][] = $ind; } } // Retrieve the list of reviewer groups from the form. if (isset($_POST["grpReviewers"])) { foreach ($_POST["grpReviewers"] as $grp) { $reviewers["g"][] = $grp; } } // Retrieve the list of individual approvers from the form. if (isset($_POST["indApprovers"])) { foreach ($_POST["indApprovers"] as $ind) { $approvers["i"][] = $ind; } } // Retrieve the list of approver groups from the form. if (isset($_POST["grpApprovers"])) { foreach ($_POST["grpApprovers"] as $grp) { $approvers["g"][] = $grp; } } // add mandatory reviewers/approvers $docAccess = $folder->getApproversList(); $res=$user->getMandatoryReviewers(); foreach ($res as $r){ if ($r['reviewerUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['reviewerUserID']){ $reviewers["i"][] = $r['reviewerUserID']; break; } } else if ($r['reviewerGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['reviewerGroupID']){ $reviewers["g"][] = $r['reviewerGroupID']; break; } } } $res=$user->getMandatoryApprovers(); foreach ($res as $r){ if ($r['approverUserID']!=0){ foreach ($docAccess["users"] as $usr) if ($usr->getID()==$r['approverUserID']){ $approvers["i"][] = $r['approverUserID']; break; } } else if ($r['approverGroupID']!=0){ foreach ($docAccess["groups"] as $grp) if ($grp->getID()==$r['approverGroupID']){ $approvers["g"][] = $r['approverGroupID']; break; } } } $userfiletmp = $settings->_stagingDir.$_POST['fileId'];; $userfiletype = $_FILES[ $file_param_name ]["type"]; $userfilename = $_FILES[ $file_param_name ]["name"]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); if($_POST["name"] != "") $name = $_POST["name"]; else $name = basename($userfilename); $categories = preg_replace('/[^0-9,]+/', '', $_POST["categoryids"]); $cats = array(); if($categories) { $catids = explode(',', $categories); foreach($catids as $catid) { $cats[] = $dms->getDocumentCategory($catid); } } $res = $folder->addDocument($name, $comment, $expires, $user, $keywords, $cats, $userfiletmp, basename($userfilename), $fileType, $userfiletype, $sequence, $reviewers, $approvers, $reqversion,$version_comment); unlink($userfiletmp); if (is_bool($res) && !$res) { echo getMLText("error_occured"); } else { $document = $res[0]; if(isset($GLOBALS['LETODMS_HOOKS']['postAddDocument'])) { foreach($GLOBALS['LETODMS_HOOKS']['postAddDocument'] as $hookObj) { if (method_exists($hookObj, 'postAddDocument')) { $hookObj->postAddDocument($document); } } } // Send notification to subscribers. if($notifier) { $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("new_document_email"); $message = getMLText("new_document_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("comment_for_current_version").": ".$version_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; $subject=$subject; $message=$message; $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?name=".$name."&folderid=".$folderid); } } ?> letodms-3.3.11+dfsg.1/op/op.CreateSubFolderIndex.php0000644000175000017500000000661112040235122022564 0ustar franciscofranciscoisAdmin()) { UI::contentContainer("

      Permission denied.

      "); UI::htmlPageEnd(); exit; } function getTime() { if (function_exists('microtime')) { $tm = microtime(); $tm = explode(' ', $tm); return (float) sprintf('%f', $tm[1] + $tm[0]); } return time(); } // ------------------------------------- Suche starten -------------------------------------------- UI::contentContainerStart(); $startTime = getTime(); $results = array(); //searchInFolder($startFolder); // // Construct the SQL query that will be used to search the database. // // Create the keyword search string. This search spans up to three columns // in the database: keywords, name and comment. // // The base query. // $searchQuery = "SELECT `tblDocuments`.* FROM `tblDocuments` "; // Send the search query to the database. $resArr = $db->getResultArray($searchQuery); // Assemble the results into an array of MyDMS Document objects. if (!is_bool($resArr) && count($resArr)>0) { echo "
        "; foreach($resArr as $docArr) { $doc = new LetoDMS_Core_Document($docArr["id"], $docArr["name"], $docArr["comment"], $docArr["date"], $docArr["expires"], $docArr["owner"], $docArr["folder"], $docArr["inheritAccess"], $docArr["defaultAccess"], $docArr["lockUser"], $docArr["keywords"], $docArr["sequence"]); // Make sure that the folder search path is also updated. $folder = $doc->getFolder(); $path = $folder->getPath(); $flist = ""; foreach ($path as $f) { $flist .= ":".$f->getID(); } if (strlen($flist)>1) { $flist .= ":"; } $queryStr = "UPDATE tblDocuments SET folderList = '" . $flist . "' WHERE id = ". $doc->getID(); $db->getResult($queryStr); echo "
      1. Updating docID '".$doc->getID()."' -- '".$flist."'
      2. "; } echo "
      "; } $searchTime = getTime() - $startTime; $searchTime = round($searchTime, 2); echo "

      "; printMLText("search_time", array("time" => $searchTime)); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/op/op.RemoveEvent.php0000644000175000017500000000413312040235122021017 0ustar franciscofranciscogetID()!=$event["userID"])&&(!$user->isAdmin())){ UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } $res = delEvent($_POST["eventid"]); if (is_bool($res) && !$res) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } add_log_line("?id=".$_POST["eventid"]); $dt=getdate($event["start"]); header("Location:../out/out.Calendar.php?mode=w&day=".$dt["mday"]."&year=".$dt["year"]."&month=".$dt["mon"]); ?> letodms-3.3.11+dfsg.1/op/op.RemoveLog.php0000644000175000017500000000360312040235122020460 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_POST["logname"]) || !file_exists($settings->_contentDir.$_POST["logname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } if (@readlink($settings->_contentDir."current.log")==$settings->_contentDir.$_POST["logname"]){ UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!LetoDMS_Core_File::removeFile($settings->_contentDir.$_POST["logname"])) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line("?logname=".$_POST["logname"]); header("Location:../out/out.LogManagement.php"); ?> letodms-3.3.11+dfsg.1/op/op.RemoveFolderFiles.php0000644000175000017500000000423412040235122022136 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ if(!checkFormKey('removefolderfiles')) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); } function removeFolderFiles($folder) { global $dms; $documents = $folder->getDocuments(); foreach ($documents as $document) LetoDMS_Core_File::removeDir($dms->contentDir . $document->getDir()); $subFolders = $folder->getSubFolders(); foreach ($subFolders as $folder) removeFolderFiles($folder); return true; } if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } $folderid = $_POST["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } if (!removeFolderFiles($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } add_log_line(); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.CreateFolderArchive.php0000644000175000017500000001415512040235122022426 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } /** * Adds file header to the tar file, it is used before adding file content. * code by calmarius at nospam dot atw dot hu * * @param resource $f file resource (provided by eg. fopen) * $param string $phisfn path to file * $param string $archfn path to file in archive, directory names must * be followed by '/' */ function TarAddHeader($f,$phisfn,$archfn) { /* {{{ */ $info=@stat($phisfn); if($info === false) return false; $ouid=sprintf("%6s ", decoct($info[4])); $ogid=sprintf("%6s ", decoct($info[5])); $omode=sprintf("%6s ", decoct(fileperms($phisfn))); $omtime=sprintf("%11s", decoct(filemtime($phisfn))); if (@is_dir($phisfn)) { $type="5"; $osize=sprintf("%11s ", decoct(0)); } else { $type=''; $osize=sprintf("%11s ", decoct(filesize($phisfn))); clearstatcache(); } $dmajor = ''; $dminor = ''; $gname = ''; $linkname = ''; $magic = ''; $prefix = ''; $uname = ''; $version = ''; $chunkbeforeCS=pack("a100a8a8a8a12A12",$archfn, $omode, $ouid, $ogid, $osize, $omtime); $chunkafterCS=pack("a1a100a6a2a32a32a8a8a155a12", $type, $linkname, $magic, $version, $uname, $gname, $dmajor, $dminor ,$prefix,''); $checksum = 0; for ($i=0; $i<148; $i++) $checksum+=ord(substr($chunkbeforeCS,$i,1)); for ($i=148; $i<156; $i++) $checksum+=ord(' '); for ($i=156, $j=0; $i<512; $i++, $j++) $checksum+=ord(substr($chunkafterCS,$j,1)); fwrite($f,$chunkbeforeCS,148); $checksum=sprintf("%6s ",decoct($checksum)); $bdchecksum=pack("a8", $checksum); fwrite($f,$bdchecksum,8); fwrite($f,$chunkafterCS,356); return true; } /* }}} */ // Writes file content to the tar file must be called after a TarAddHeader // f:file resource provided by fopen // phisfn: path to file // code by calmarius at nospam dot atw dot hu function TarWriteContents($f,$phisfn) { /* {{{ */ if(!file_exists($phisfn)) return; if (@is_dir($phisfn)) { return; } $size=filesize($phisfn); $padding=$size % 512 ? 512-$size%512 : 0; $f2=fopen($phisfn,"rb"); while (!feof($f2)) fwrite($f,fread($f2,1024*1024)); $pstr=sprintf("a%d",$padding); fwrite($f,pack($pstr,'')); } /* }}} */ // Adds 1024 byte footer at the end of the tar file // f: file resource // code by calmarius at nospam dot atw dot hu function TarAddFooter($f) { /* {{{ */ fwrite($f,pack('a1024','')); } /* }}} */ // thanks to Doudoux function getFolderPathPlainAST($folder) { /* {{{ */ $path=""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i+1 < count($folderPath)) $path .= "/"; } return $path; } /* }}} */ function createFolderTar($folder,$ark) { /* {{{ */ global $human_readable,$dms; $documents=$folder->getDocuments(); foreach ($documents as $document){ if (file_exists($dms->contentDir.$document->getDir())){ if ($human_readable){ // create an archive containing the files with original names and DMS path // thanks to Doudoux $latestContent = $document->getLatestContent(); if (is_object($latestContent)) { TarAddHeader( $ark, $dms->contentDir.$latestContent->getPath(), getFolderPathPlainAST($folder)."/".$document->getID()."_".$latestContent->getOriginalFileName()); TarWriteContents($ark, $dms->contentDir.$latestContent->getPath()); } } else { // create a server backup archive $handle = opendir($dms->contentDir.$document->getDir()); while ($entry = readdir($handle) ) { if (!is_dir($dms->contentDir.$document->getDir().$entry)){ TarAddHeader($ark,$dms->contentDir.$document->getDir().$entry,$document->getDir().$entry); TarWriteContents($ark,$dms->contentDir.$document->getDir().$entry); } } closedir($handle); } } } $subFolders=$folder->getSubfolders(); foreach ($subFolders as $folder) if (!createFolderTar($folder,$ark)) return false; return true; } /* }}} */ if (!isset($_GET["targetidform2"]) || !is_numeric($_GET["targetidform2"]) || intval($_GET["targetidform2"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } $folderid = $_GET["targetidform2"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } $human_readable = (isset($_GET["human_readable"]) && $_GET["human_readable"]==1 ? true : false); if ($human_readable)$ark_name = $settings->_contentDir.time()."_".$folderid."_HR.tar"; else $ark_name = $settings->_contentDir.time()."_".$folderid.".tar"; $ark = fopen($ark_name,"w"); if (!createFolderTar($folder,$ark)) { fclose($ark); unlink($ark_name); UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } TarAddFooter($ark); fclose($ark); if (LetoDMS_Core_File::gzcompressfile($ark_name,9)) unlink($ark_name); else UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); add_log_line(); header("Location:../out/out.BackupTools.php"); ?> letodms-3.3.11+dfsg.1/op/op.EditEvent.php0000644000175000017500000000555712040235122020462 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ if(!checkFormKey('editevent')) { UI::exitError(getMLText("edit_event"),getMLText("invalid_request_token")); } if (!isset($_POST["frommonth"]) || !isset($_POST["fromday"]) || !isset($_POST["fromyear"]) ) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } if (!isset($_POST["tomonth"]) || !isset($_POST["today"]) || !isset($_POST["toyear"]) ) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } if (!isset($_POST["name"]) || !isset($_POST["comment"]) ) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } if (!isset($_POST["eventid"])) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } $name = $_POST["name"]; $comment = $_POST["comment"]; $from = mktime(0,0,0, intval($_POST["frommonth"]), intval($_POST["fromday"]), intval($_POST["fromyear"])); $to = mktime(23,59,59, intval($_POST["tomonth"]), intval($_POST["today"]), intval($_POST["toyear"])); if ($to<$from){ $to= mktime(23,59,59, intval($_POST["frommonth"]), intval($_POST["fromday"]), intval($_POST["fromyear"])); } $res = editEvent($_POST["eventid"], $from, $to, $name, $comment ); if (is_bool($res) && !$res) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } add_log_line("?eventid=".$_POST["eventid"]."&name=".$name."&from=".$from."&to=".$to); header("Location:../out/out.Calendar.php?mode=w&day=".$_POST["fromday"]."&year=".$_POST["fromyear"]."&month=".$_POST["frommonth"]); ?> letodms-3.3.11+dfsg.1/op/op.ReviewDocument.php0000644000175000017500000002553712040235122021533 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["version"]) || !is_numeric($_POST["version"]) || intval($_POST["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } $version = $_POST["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } // operation is only allowed for the last document version $latestContent = $document->getLatestContent(); if ($latestContent->getVersion()!=$version) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } // verify if document has expired if ($document->hasExpired()){ UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!isset($_POST["reviewStatus"]) || !is_numeric($_POST["reviewStatus"]) || (intval($_POST["reviewStatus"])!=1 && intval($_POST["reviewStatus"])!=-1)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_review_status")); } if ($_POST["reviewType"] == "ind") { $comment = $_POST["comment"]; if(0 > $latestContent->setReviewByInd($user, $user, $_POST["reviewStatus"], $comment)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("review_update_failed")); } else { // Send an email notification to the document updater. if($notifier) { $subject = $settings->_siteName.": ".$document->getName().", v.".$version." - ".getMLText("review_submit_email"); $message = getMLText("review_submit_email")."\r\n"; $message .= getMLText("name").": ".$document->getName()."\r\n". getMLText("version").": ".$version."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". getMLText("status").": ".getReviewStatusText($_POST["reviewStatus"])."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$documentid."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $content->getUser(), $subject, $message); // Send notification to subscribers. $nl=$document->getNotifyList(); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } else if ($_POST["reviewType"] == "grp") { $comment = $_POST["comment"]; $group = $dms->getGroup($_POST['reviewGroup']); if(0 > $latestContent->setReviewByGrp($group, $user, $_POST["reviewStatus"], $comment)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("review_update_failed")); } else { // Send an email notification to the document updater. if($notifier) { $subject = $settings->_siteName.": ".$document->getName().", v.".$version." - ".getMLText("review_submit_email"); $message = getMLText("review_submit_email")."\r\n"; $message .= getMLText("name").": ".$document->getName()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". getMLText("version").": ".$version."\r\n". getMLText("status").": ".getReviewStatusText($_POST["reviewStatus"])."\r\n". getMLText("comment").": ".$comment."\r\n". "URL: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$documentid."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toIndividual($user, $content->getUser(), $subject, $message); // Send notification to subscribers. $nl=$document->getNotifyList(); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } // // Check to see if the overall status for the document version needs to be // updated. // if ($_POST["reviewStatus"]==-1){ if($content->setStatus(S_REJECTED,$comment,$user)) { $nl=$document->getNotifyList(); // Send notification to subscribers. if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_status_changed_email"); $message = getMLText("document_status_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("status").": ".getOverallStatusText(S_REJECTED)."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } // TODO: if user os not owner send notification to owner } }else{ $docReviewStatus = $content->getReviewStatus(); if (is_bool($docReviewStatus) && !$docReviewStatus) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("cannot_retrieve_review_snapshot")); } $reviewCT = 0; $reviewTotal = 0; foreach ($docReviewStatus as $drstat) { if ($drstat["status"] == 1) { $reviewCT++; } if ($drstat["status"] != -2) { $reviewTotal++; } } // If all reviews have been received and there are no rejections, retrieve a // count of the approvals required for this document. if ($reviewCT == $reviewTotal) { $docApprovalStatus = $content->getApprovalStatus(); if (is_bool($docApprovalStatus) && !$docApprovalStatus) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("cannot_retrieve_approval_snapshot")); } $approvalCT = 0; $approvalTotal = 0; foreach ($docApprovalStatus as $dastat) { if ($dastat["status"] == 1) { $approvalCT++; } if ($dastat["status"] != -2) { $approvalTotal++; } } // If the approvals received is less than the approvals total, then // change status to pending approval. if ($approvalCT<$approvalTotal) { $newStatus=1; } else { // Otherwise, change the status to released. $newStatus=2; } if ($content->setStatus($newStatus, getMLText("automatic_status_update"), $user)) { // Send notification to subscribers. $nl=$document->getNotifyList(); if($notifier) { $folder = $document->getFolder(); $subject = "###SITENAME###: ".$document->_name." - ".getMLText("document_status_changed_email"); $message = getMLText("document_status_changed_email")."\r\n"; $message .= getMLText("document").": ".$document->_name."\r\n". getMLText("status").": ".getOverallStatusText($newStatus)."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$content->_version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } // TODO: if user os not owner send notification to owner // Notify approvers, if necessary. if ($newStatus == S_DRAFT_APP) { $requestUser = $document->getOwner(); if($notifier) { $subject = $settings->_siteName.": ".$document->getName().", v.".$version." - ".getMLText("approval_request_email"); $message = getMLText("approval_request_email")."\r\n"; $message .= getMLText("name").": ".$content->getOriginalFileName()."\r\n". getMLText("version").": ".$version."\r\n". getMLText("comment").": ".$content->getComment()."\r\n". "URL: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$documentid."&version=".$version."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); foreach ($docApprovalStatus as $dastat) { if ($dastat["status"] == 0) { if ($dastat["type"] == 0) { $approver = $dms->getUser($dastat["required"]); $notifier->toIndividual($document->getOwner(), $approver, $subject, $message); } else if ($dastat["type"] == 1) { $group = $dms->getGroup($dastat["required"]); $notifier->toGroup($document->getOwner(), $group, $subject, $message); } } } } } } } } header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.AddFile2.php0000644000175000017500000000741312040235122020136 0ustar franciscofrancisco_stagingDir.$_POST['fileId']."-".$_POST['partitionIndex']; if( move_uploaded_file( $source_file_path, $target_file_path ) ) { if($_POST['partitionIndex']+1 == $_POST['partitionCount']) { $fpnew = fopen($settings->_stagingDir.$_POST['fileId'], 'w+'); for($i=0; $i<$_POST['partitionCount']; $i++) { $content = file_get_contents($settings->_stagingDir.$_POST['fileId']."-".$i, 'r'); fwrite($fpnew, $content); unlink($settings->_stagingDir.$_POST['fileId']."-".$i); } fclose($fpnew); if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { echo getMLText("invalid_doc_id"); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { echo getMLText("invalid_doc_id"); } $folder = $document->getFolder(); if ($document->getAccessMode($user) < M_READWRITE) { echo getMLText("access_denied"); } $userfiletmp = $settings->_stagingDir.$_POST['fileId'];; $userfiletype = $_FILES[ $file_param_name ]["type"]; $userfilename = $_FILES[ $file_param_name ]["name"]; $name = $_POST["name"]; if(!$name) $name = $userfilename; $comment = $_POST["comment"]; $lastDotIndex = strrpos(basename($userfilename), "."); if (is_bool($lastDotIndex) && !$lastDotIndex) $fileType = "."; else $fileType = substr($userfilename, $lastDotIndex); $res = $document->addDocumentFile($name, $comment, $user, $userfiletmp, basename($userfilename),$fileType, $userfiletype ); if (is_bool($res) && !$res) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured")); } else { $document->getNotifyList(); // Send notification to subscribers. if($notifier) { $subject = "###SITENAME###: ".$document->_name." - ".getMLText("new_file_email"); $message = getMLText("new_file_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; $subject=$subject; $message=$message; $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?name=".$name."&documentid=".$documentid); } } ?> letodms-3.3.11+dfsg.1/op/op.ChangePassword.php0000644000175000017500000000416612040235122021476 0ustar franciscofrancisco" . getMLText("login") . "

      \n"); UI::htmlEndPage(); return; } if (isset($_POST["hash"])) { $hash = $_POST["hash"]; } if (isset($_POST["newpassword"])) { $newpassword = $_POST["newpassword"]; } if (isset($_POST["newpasswordrepeat"])) { $newpasswordrepeat = $_POST["newpasswordrepeat"]; } if (empty($newpassword) || empty($newpasswordrepeat) || $newpassword != $newpasswordrepeat) { _printMessage(getMLText("password_mismatch_error_title"), "

      ".getMLText("password_mismatch_error")."

      \n"); exit; } $user = $dms->checkPasswordRequest($hash); if($user) { $user->setPwd(md5($newpassword)); $dms->deletePasswordRequest($hash); } _printMessage(getMLText("change_password"), "

      ".getMLText("change_password_message")."

      "); exit; ?> letodms-3.3.11+dfsg.1/op/op.FolderAccess.php0000644000175000017500000002544412040235122021125 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } /* Check if the form data comes for a trusted request */ /* FIXME: Currently GET request are allowed. */ if(!checkFormKey('folderaccess', 'GET')) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_request_token")); } switch ($_GET["action"]) { case "setowner": case "delaccess": case "inherit": $action = $_GET["action"]; break; case "setdefault": case "editaccess": case "addaccess": $action = $_GET["action"]; if (!isset($_GET["mode"]) || !is_numeric($_GET["mode"]) || $_GET["mode"]M_ALL) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_access_mode")); } $mode = $_GET["mode"]; break; case "notinherit": $action = $_GET["action"]; if (strcasecmp($_GET["mode"], "copy") && strcasecmp($_GET["mode"], "empty")) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_access_mode")); } $mode = $_GET["mode"]; break; default: UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("invalid_action")); break; } if (isset($_GET["userid"])) { if (!is_numeric($_GET["userid"])) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); } if (!strcasecmp($action, "addaccess") && $_GET["userid"]==-1) { $userid = -1; } else { if (!is_object($dms->getUser($_GET["userid"]))) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); } $userid = $_GET["userid"]; } } if (isset($_GET["groupid"])) { if (!is_numeric($_GET["groupid"])) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_group")); } if (!strcasecmp($action, "addaccess") && $_GET["groupid"]==-1) { $groupid = -1; } else { if (!is_object($dms->getGroup($_GET["groupid"]))) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_group")); } $groupid = $_GET["groupid"]; } } //ndern des Besitzers ---------------------------------------------------------------------------- if ($action == "setowner") { if (!$user->isAdmin()) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("access_denied")); } if (!isset($_GET["ownerid"]) || !is_numeric($_GET["ownerid"]) || $_GET["ownerid"]<1) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); } $newOwner = $dms->getUser($_GET["ownerid"]); if (!is_object($newOwner)) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("unknown_user")); } $oldOwner = $folder->getOwner(); if($folder->setOwner($newOwner)) { if($notifier) { // Send notification to subscribers. $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("ownership_changed_email"); $message = getMLText("ownership_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("old").": ".$oldOwner->getFullName()."\r\n". getMLText("new").": ".$newOwner->getFullName()."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". getMLText("comment").": ".$folder->_comment."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } else { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("set_owner_error")); } } //nderung auf nicht erben ------------------------------------------------------------------------ else if ($action == "notinherit") { $defAccess = $folder->getDefaultAccess(); if($folder->setInheritAccess(false)) { if($notifier) { // Send notification to subscribers. $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } if($folder->setDefaultAccess($defAccess)) { if($notifier) { // Send notification to subscribers. $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } if ($mode == "copy") { $parent = $folder->getParent(); $accessList = $parent->getAccessList(); foreach ($accessList["users"] as $userAccess) $folder->addAccess($userAccess->getMode(), $userAccess->getUserID(), true); foreach ($accessList["groups"] as $groupAccess) $folder->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false); } } //nderung auf erben ------------------------------------------------------------------------------ else if ($action == "inherit") { if ($folderid == $settings->_rootFolderID || !$folder->getParent()) return; $folder->clearAccessList(); if($folder->setInheritAccess(true)) { if($notifier) { // Send notification to subscribers. $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } //Standardberechtigung setzen---------------------------------------------------------------------- else if ($action == "setdefault") { if($folder->setDefaultAccess($mode)) { if($notifier) { // Send notification to subscribers. $folder->getNotifyList(); $subject = "###SITENAME###: ".$folder->_name." - ".getMLText("access_permission_changed_email"); $message = getMLText("access_permission_changed_email")."\r\n"; $message .= getMLText("name").": ".$folder->_name."\r\n". getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->_id."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); foreach ($folder->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } } //Bestehende Berechtigung nndern ----------------------------------------------------------------- else if ($action == "editaccess") { if (isset($userid)) { $folder->changeAccess($mode, $userid, true); } else if (isset($groupid)) { $folder->changeAccess($mode, $groupid, false); } } //Berechtigung lschen ---------------------------------------------------------------------------- else if ($action == "delaccess") { if (isset($userid)) { $folder->removeAccess($userid, true); } else if (isset($groupid)) { $folder->removeAccess($groupid, false); } } //Neue Berechtigung hinzufgen -------------------------------------------------------------------- else if ($action == "addaccess") { if (isset($userid) && $userid != -1) { $folder->addAccess($mode, $userid, true); } if (isset($groupid) && $groupid != -1) { $folder->addAccess($mode, $groupid, false); } } add_log_line(); header("Location:../out/out.FolderAccess.php?folderid=".$folderid); ?> letodms-3.3.11+dfsg.1/op/op.RemoveDocument.php0000644000175000017500000000646712040235122021530 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("access_denied")); } $folder = $document->getFolder(); /* Get the notify list before removing the document */ $nl = $document->getNotifyList(); if (!$document->remove()) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("error_occured")); } else { if ($notifier){ $path = ""; $folderPath = $folder->getPath(); for ($i = 0; $i < count($folderPath); $i++) { $path .= $folderPath[$i]->getName(); if ($i +1 < count($folderPath)) $path .= " / "; } $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("document_deleted_email"); $message = getMLText("document_deleted_email")."\r\n"; $message .= getMLText("document").": ".$document->getName()."\r\n". getMLText("folder").": ".$path."\r\n". getMLText("comment").": ".$document->getComment()."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); // Send notification to subscribers. $notifier->toList($user, $nl["users"], $subject, $message); foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?documentid=".$documentid); header("Location:../out/out.ViewFolder.php?folderid=".$folder->getID()); ?> letodms-3.3.11+dfsg.1/op/convert_word.js0000644000175000017500000000231312040235122020501 0ustar franciscofrancisco// MyDMS. Document Management System // Copyright (C) 2002-2005 Markus Westphal // Copyright (C) 2006-2008 Malcolm Cowe // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //var logFile = fs.CreateTextFile("convertlog.txt", true); var source = WScript.Arguments(0); var target = WScript.Arguments(1); var WordApp; WordApp = new ActiveXObject("Word.Application"); var Newdoc; Newdoc = WordApp.Documents.Open(source); Newdoc.SaveAs(target, 8); // wdFormatHTML = 8 WordApp.Quit(); //logFile.Close(); letodms-3.3.11+dfsg.1/op/op.RemoveDocumentFile.php0000644000175000017500000000702212040235122022314 0ustar franciscofrancisco getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if (!isset($_POST["fileid"]) || !is_numeric($_POST["fileid"]) || intval($_POST["fileid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_file_id")); } $fileid = $_POST["fileid"]; $file = $document->getDocumentFile($fileid); if (!is_object($file)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_file_id")); } if (($document->getAccessMode($user) < M_ALL)&&($user->getID()!=$file->getUserID())) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } if (!$document->removeDocumentFile($fileid)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { // Send notification to subscribers. $document->getNotifyList(); if($notifier) { $subject = "###SITENAME###: ".$document->_name." - ".getMLText("removed_file_email"); $message = getMLText("removed_file_email")."\r\n"; $message .= getMLText("name").": ".$name."\r\n". getMLText("comment").": ".$comment."\r\n". getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; // $subject=mydmsDecodeString($subject); // $message=mydmsDecodeString($message); $notifier->toList($user, $document->_notifyList["users"], $subject, $message); foreach ($document->_notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message); } } } add_log_line("?documentid=".$documentid."&fileid=".$fileid); header("Location:../out/out.ViewDocument.php?documentid=".$documentid); ?> letodms-3.3.11+dfsg.1/op/op.Logout.php0000644000175000017500000000264012040235122020032 0ustar franciscofranciscodelete($dms_session)) { UI::exitError(getMLText("logout"),$db->getErrorMsg()); } // Delete Cookie setcookie("mydms_session", $_COOKIE["mydms_session"], time()-3600, $settings->_httpRoot); //Forward to Login-page header("Location: ../out/out.Login.php"); ?> letodms-3.3.11+dfsg.1/install/0000755000175000017500000000000012056056635016502 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/index.php0000644000175000017500000000117312040235120020301 0ustar franciscofrancisco_rootDir = $rootDir.'/'; include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); UI::htmlStartPage("INSTALL"); UI::contentHeading("letoDMS Installation..."); UI::contentContainerStart(); echo "

      ".getMLText('settings_install_welcome_title')."

      "; echo "
      ".getMLText('settings_install_welcome_text')."
      "; echo '

      ' . getMLText("settings_start_install") . '

      '; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/install/update-1.8.1/0000755000175000017500000000000012040235117020412 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-1.8.1/update.php0000644000175000017500000000716712040235117022420 0ustar franciscofrancisco"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; die; } function update_content() { GLOBAL $db,$settings; // create temp folder if (!makedir($settings->_contentDir."/temp")) return false; // for all contents $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; for ($i=0;$i_contentDir."/temp/".$contents[$i]["document"])) return false; // move every content in temp/documentID/version.fileType $source = $settings->_contentDir."/".$contents[$i]["dir"]."/data".$contents[$i]["fileType"]; $target = $settings->_contentDir."/temp/".$contents[$i]["document"]."/".$contents[$i]["version"].$contents[$i]["fileType"]; if (!copyFile($source, $target)) return false; } // change directory if (!renameDir($settings->_contentDir."/".$settings->_contentOffsetDir,$settings->_contentDir."/old")) return false; if (!renameDir($settings->_contentDir."/temp",$settings->_contentDir."/".$settings->_contentOffsetDir)) return false; return true; } function update_db() { GLOBAL $db,$settings; // for all contents $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; for ($i=0;$i_contentOffsetDir."/".$contents[$i]["document"]."/' WHERE document = ".$contents[$i]["document"]; if (!$db->getResult($queryStr)) return false; } // run the update-2.0.sql $fd = fopen ("update.sql", "r"); if (is_bool($fd)&&!$fd) return false; $queryStr = fread($fd, filesize("update.sql")); if (is_bool($queryStr)&&!$queryStr) return false; fclose ($fd); if (!$db->getResult($queryStr)) return false; return true; } print "Updating ...please wait
      "; if (!update_content()) { print "ERROR: An error occurred during the directory reordering"; die; } if (!update_db()) { print "ERROR: An error occurred during the DB update"; print "
      Please try to execute the update.sql manually"; die; } print "Update done
      "; print ""; ?> letodms-3.3.11+dfsg.1/install/update-1.8.1/update.sql0000644000175000017500000000156012040235117022417 0ustar franciscofrancisco-- mysql -uroot -ppassword mydms < update.sql -- this script must be executed when updating form a version < 1.8.1 -- -------------------------------------------------------- -- -- New table for document-related files -- CREATE TABLE `tblDocumentFiles` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `comment` text, `name` varchar(150) default NULL, `date` int(12) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Not longer required by new filesystem structure -- DROP TABLE `tblDirPath`; DROP TABLE `tblPathList`; letodms-3.3.11+dfsg.1/install/update-2.0.1/0000755000175000017500000000000012040235120020375 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-2.0.1/update.php0000644000175000017500000000403112040235120022366 0ustar franciscofrancisco"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; die; } function update_db() { global $db; $fd = fopen ("update.sql", "r"); if (is_bool($fd)&&!$fd) return false; $queryStr = fread($fd, filesize("update.sql")); if (is_bool($queryStr)&&!$queryStr) return false; fclose ($fd); if (!$db->getResult($queryStr)) return false; return true; } print "Updating ...please wait
      "; print "
      ";
      
      if (!update_db()) {
      
      	print "
      "; print "ERROR: An error occurred during the DB update"; print "
      Please try to execute the update.sql manually"; die; }else print "Update done
      "; print ""; ?> letodms-3.3.11+dfsg.1/install/update-2.0.1/update.sql0000644000175000017500000000102012040235120022371 0ustar franciscofrancisco-- mysql -uyouruser -pyourpassword yourdb < update.sql -- this script must be executed when updating form a version < 2.0 -- -------------------------------------------------------- -- -- Table structure for events (calendar) -- CREATE TABLE `tblEvents` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `start` int(12) default NULL, `stop` int(12) default NULL, `date` int(12) default NULL, `userID` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ; letodms-3.3.11+dfsg.1/install/install.php0000644000175000017500000003502412056056635020665 0ustar franciscofrancisco"; print "Error
      "; print $error; print ""; } /* }}} */ function printWarning($error) { /* {{{ */ print "
      "; print "Warning
      "; print $error; print "
      "; } /* }}} */ function printCheckError($resCheck) { /* {{{ */ $hasError = false; foreach($resCheck as $keyRes => $paramRes) { if(isset($paramRes['type']) && $paramRes['type'] == 'error') $hasError = true; $errorMes = getMLText("settings_$keyRes"). " : " . getMLText("settings_".$paramRes["status"]); if (isset($paramRes["currentvalue"])) $errorMes .= "
      => " . getMLText("settings_currentvalue") . " : " . $paramRes["currentvalue"]; if (isset($paramRes["suggestionvalue"])) $errorMes .= "
      => " . getMLText("settings_suggestionvalue") . " : " . $paramRes["suggestionvalue"]; if (isset($paramRes["suggestion"])) $errorMes .= "
      => " . getMLText("settings_".$paramRes["suggestion"]); if (isset($paramRes["systemerror"])) $errorMes .= "
      => " . $paramRes["systemerror"]; if(isset($paramRes['type']) && $paramRes['type'] == 'error') printError($errorMes); else printWarning($errorMes); } return $hasError; } /* }}} */ /** * Load default settings + set */ define("LETODMS_INSTALL", "on"); define("LETODMS_VERSION", "3.3.11"); require_once('../inc/inc.ClassSettings.php'); $configDir = Settings::getConfigDir(); /** * Check if ENABLE_INSTALL_TOOL exists in config dir */ if (!$configDir) { echo "Fatal error! I could not even find a configuration directory."; exit; } if (!file_exists($configDir."/ENABLE_INSTALL_TOOL")) { echo "For installation of LetoDMS, you must create the file conf/ENABLE_INSTALL_TOOL"; exit; } if (!file_exists($configDir."/settings.xml")) { if(!copy("settings.xml.template_install", $configDir."/settings.xml")) { echo "Could not create initial configuration file from template. Check directory permission of conf/."; exit; } } // Set folders settings $settings = new Settings(); $settings->load($configDir."/settings.xml"); $rootDir = realpath (".."); $rootDir = str_replace ("\\", "/" , $rootDir) . "/"; $installPath = realpath ("install.php"); $installPath = str_replace ("\\", "/" , $installPath); $tmpToDel = str_replace ($rootDir, "" , $installPath); $httpRoot = str_replace ($tmpToDel, "" , $_SERVER["REQUEST_URI"]); do { $httpRoot = str_replace ("//", "/" , $httpRoot, $count); } while ($count<>0); if(!$settings->_rootDir) $settings->_rootDir = $rootDir; //$settings->_coreDir = $settings->_rootDir; //$settings->_luceneClassDir = $settings->_rootDir; //$settings->_ADOdbPath = $settings->_rootDir; if(!$settings->_contentDir) { $settings->_contentDir = $settings->_rootDir . 'data/'; $settings->_luceneDir = $settings->_rootDir . 'data/lucene/'; $settings->_stagingDir = $settings->_rootDir . 'data/staging/'; } $settings->_httpRoot = $httpRoot; if(isset($settings->_ADOdbPath)) ini_set('include_path', $settings->_ADOdbPath. PATH_SEPARATOR .ini_get('include_path')); /** * Include GUI + Language */ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); UI::htmlStartPage("INSTALL"); UI::contentHeading("letoDMS Installation for version ".LETODMS_VERSION); UI::contentContainerStart(); /** * Show phpinfo */ if (isset($_GET['phpinfo'])) { echo '' . getMLText("back") . ''; phpinfo(); UI::contentContainerEnd(); UI::htmlEndPage(); exit(); } /** * check if ENABLE_INSTALL_TOOL shall be removed */ if (isset($_GET['disableinstall'])) { /* {{{ */ if(file_exists($configDir."/ENABLE_INSTALL_TOOL")) { if(unlink($configDir."/ENABLE_INSTALL_TOOL")) { echo getMLText("settings_install_disabled"); echo "

      "; echo '' . getMLText("settings_more_settings") .''; } else { echo getMLText("settings_cannot_disable"); echo "

      "; echo '' . getMLText("back") . ''; } } else { echo getMLText("settings_cannot_disable"); echo "

      "; echo '' . getMLText("back") . ''; } UI::contentContainerEnd(); UI::htmlEndPage(); exit(); } /* }}} */ /** * Check System */ if (printCheckError( $settings->checkSystem())) { /* {{{ */ if (function_exists("apache_get_version")) { echo "
      Apache version: " . apache_get_version(); } echo "
      PHP version: " . phpversion(); echo "
      PHP include path: " . ini_get('include_path'); echo '
      '; echo '
      '; echo '' . getMLText("refresh") . ''; echo ' - '; echo '' . getMLText("version_info") . ''; exit; } /* }}} */ if (isset($_POST["action"])) $action=$_POST["action"]; else if (isset($_GET["action"])) $action=$_GET["action"]; else $action=NULL; //var_dump($settings); if ($action=="setSettings") { /** * Get Parameters */ $settings->_rootDir = $_POST["rootDir"]; $settings->_httpRoot = $_POST["httpRoot"]; $settings->_contentDir = $_POST["contentDir"]; $settings->_luceneDir = $_POST["luceneDir"]; $settings->_stagingDir = $_POST["stagingDir"]; $settings->_ADOdbPath = $_POST["ADOdbPath"]; $settings->_dbDriver = $_POST["dbDriver"]; $settings->_dbHostname = $_POST["dbHostname"]; $settings->_dbDatabase = $_POST["dbDatabase"]; $settings->_dbUser = $_POST["dbUser"]; $settings->_dbPass = $_POST["dbPass"]; $settings->_coreDir = $_POST["coreDir"]; $settings->_luceneClassDir = $_POST["luceneClassDir"]; /** * Check Parameters, require version 3.3.x */ $hasError = printCheckError( $settings->check(substr(str_replace('.', '', LETODMS_VERSION), 0,2))); if (!$hasError) { // Create database if (isset($_POST["createDatabase"])) { $createOK = false; $errorMsg = ""; require_once($settings->_ADOdbPath."adodb/adodb.inc.php"); $connTmp = ADONewConnection($settings->_dbDriver); if ($connTmp) { $connTmp->Connect($settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); if ($connTmp->IsConnected()) { // read SQL file if ($settings->_dbDriver=="mysql") $queries = file_get_contents("create_tables-innodb.sql"); else $queries = file_get_contents("create_tables.sql"); // generate SQL query $queries = explode(";", $queries); // execute queries foreach($queries as $query) { // var_dump($query); $query = trim($query); if (!empty($query)) { $connTmp->Execute($query); if ($connTmp->ErrorNo()<>0) { $errorMsg .= $connTmp->ErrorMsg() . "
      "; } } } // error ? if (empty($errorMsg)) $createOK = true; } else { $errorMsg = $connTmp->ErrorMsg(); } $connTmp->Disconnect(); } // Show error if (!$createOK) { echo $errorMsg; $hasError = true; } } // create database if (!$hasError) { // Save settings $settings->save(); $needsupdate = false; require_once($settings->_ADOdbPath."adodb/adodb.inc.php"); $connTmp = ADONewConnection($settings->_dbDriver); if ($connTmp) { $connTmp->Connect($settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); if ($connTmp->IsConnected()) { $res = $connTmp->Execute('select * from tblVersion'); if($rec = $res->FetchRow()) { $updatedirs = array(); $d = dir("."); while (false !== ($entry = $d->read())) { if(preg_match('/update-([0-9.]*)/', $entry, $matches)) { $updatedirs[] = $matches[1]; } } $d->close(); echo "Your current database schema has version ".$rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']."

      "; if($updatedirs) { foreach($updatedirs as $updatedir) { if($updatedir > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) { $needsupdate = true; print "

      Database update to version ".$updatedir." needed

      "; if(file_exists('update-'.$updatedir.'/update.txt')) { print "

      Please read the comments on updating this version. Read now

      "; } if(file_exists('update-'.$updatedir.'/update.php')) { print "

      Afterwards run the update script.

      "; } } } } else { print "

      Your current database is up to date.

      "; } } } } // Show Web page if(!$needsupdate) { echo getMLText("settings_install_success"); echo "

      "; echo getMLText("settings_delete_install_folder"); echo "

      "; echo '' . getMLText("settings_disable_install") . ''; echo "

      "; echo '' . getMLText("settings_more_settings") .''; } } } // Back link echo '
      '; echo '
      '; echo '' . getMLText("back") . ''; } else { /** * Set parameters */ ?>
      "> "> "> "> "> "> "> "> "> "> "> "> ">
      :
      :
      :
      :
      :
      :
      :
      :
      :
      :
      :
      :
      :
      :
      " />
      _printDisclaimer = false; $settings->_footNote = false; // end of the page UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/install/update-3.2.0/0000755000175000017500000000000012040235117020405 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-3.2.0/update.sql0000644000175000017500000000006412040235117022410 0ustar franciscofranciscoUPDATE tblVersion set major=3, minor=2, subminor=0; letodms-3.3.11+dfsg.1/install/update-3.1.0/0000755000175000017500000000000012040235117020404 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-3.1.0/update.sql0000644000175000017500000000054112040235117022407 0ustar franciscofranciscoCREATE TABLE `tblCategory` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO tblCategory VALUES (0, ''); CREATE TABLE `tblDocumentCategory` ( `categoryID` int(11) NOT NULL default 0, `documentID` int(11) NOT NULL default 0 ) ENGINE=MyISAM DEFAULT CHARSET=utf8; letodms-3.3.11+dfsg.1/install/update-3.3.0/0000755000175000017500000000000012040235117020406 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-3.3.0/update.txt0000644000175000017500000000707512040235117022442 0ustar franciscofranciscoRelease information for 3.3.0 ------------------------------------- This release contains various improvements which require your manual interaction during an upgrade from an earlier version. You should definitely make a backup of your database and possibly your content folder. Folder search ------------- The new folder search has introduced a new database field which has to be initially filled. Without that field searching for subfolders in a folder will not work. See below. Data conversion --------------- The conversion of strings like names and comments of documents and folders, when saved in the database, has been completely droped. The conversion was originally done for security reasons, both to prevent sql injections and cross side scripting. Basically any field data that could do any harm, was replaced by 'harmless' chars. Ampersands, semi colons, quotes, etc., they all have been replaced by their html entity or masked by a backslash. The output of those fields on html pages was not decoded anymore, but any other application that accessed the database had to decode the data. The new approach with less impact on the data keeps the data unmodified when saving it in the database without opening new security wholes. Protection against cross side scripting is done when the data is placed on a html page. As a consequence the complete database has to be searched for those previously converted strings and converted back into the original value. The conversion is done right after the database update during the installation and upgrade process. Content directory ----------------- Each document in LetoDMS is associated with a directory in the file system. Consequently, there is a limitation of documents set by the maximum number of subdirectories in a directory of the filesystem. The currently most used filesystem on Linux (ext3) supports only 31998 directories. In order to overcome this limitation another level of directories has been put inbetween the content directory and the document directory numbered from 1 to maxDirID. This allows a theorethical maximum of square(maxDirID) documents. The path to the document folder consists of the new path id and the document id (/). The path id is derived from the document id by the formula floor(docid/maxDirID) + 1 Hence, all documents with an id from 1 to maxDirID have the path '1/'. The limiting factor of this schema is the number of document ids. It cannot be higher than square(maxDirID). If you intend to switch to the new multi level content directory format, you will have to set maxDirID to a value > 0 (possibly 31998) and create one or more new directories starting with name '1' below the content dir and move all document directories into it. How many new directories are needed depends on the maximum document id already used. If the maximum document id is <= maxDirID, then you will only need one directory named '1'. If the maximum document id is <= 2*maxDirID you will need another directory named '2'. If you have already a document with id 1 (or 2, 3, 4, ...), you must choose a different name for your new sub directory and rename to 1 (or 2, 3, 4, ...) after all document directories have been moved. If you want to keep the current content directory structure set maxDirID to 0. Make sure the maxDirID remains unchanged for a content directory. After finishing update ---------------------- Once you are done with the update, log in as administrator and make an object check in the admin tools. This will fill the new database field needed for the folder search and fill it with the appropriate value. letodms-3.3.11+dfsg.1/install/update-3.3.0/update.php0000644000175000017500000001045212040235117022403 0ustar franciscofrancisco'id', 'fields'=>array('name', 'comment', 'keywords')); $arr['tblDocumentFiles'] = array('key'=>'id', 'fields'=>array('name', 'comment', 'mimeType')); $arr['tblFolders'] = array('key'=>'id', 'fields'=>array('name', 'comment')); $arr['tblUsers'] = array('key'=>'id', 'fields'=>array('fullName', 'comment')); $arr['tblGroups'] = array('key'=>'id', 'fields'=>array('name', 'comment')); $arr['tblKeywords'] = array('key'=>'id', 'fields'=>array('keywords')); $arr['tblKeywordCategories'] = array('key'=>'id', 'fields'=>array('name')); $arr['tblCategory'] = array('key'=>'id', 'fields'=>array('name')); $arr['tblEvents'] = array('key'=>'id', 'fields'=>array('name', 'comment')); $arr['tblDocumentApproveLog'] = array('key'=>'approveLogId', 'fields'=>array('comment')); $arr['tblDocumentStatusLog'] = array('key'=>'statusLogId', 'fields'=>array('comment')); $arr['tblDocumentReviewLog'] = array('key'=>'reviewLogId', 'fields'=>array('comment')); $arr['tblDocumentContent'] = array('keys'=>array('document', 'version'), 'fields'=>array('comment', 'mimeType')); $allupdates = array(); echo "\n"; echo "\n"; foreach($arr as $tblname => $schema) { if(isset($schema['key'])) $queryStr = "SELECT ".$schema['key'].", `".implode('`,`', $schema['fields'])."` FROM ".$tblname; elseif(isset($schema['keys'])) $queryStr = "SELECT ".implode(',', $schema['keys']).", `".implode('`,`', $schema['fields'])."` FROM ".$tblname; $res = $db->Execute($queryStr); $recs = $res->GetArray(); foreach($recs as $rec) { foreach($schema['fields'] as $field) { if($rec[$field] !== mydmsDecodeString($rec[$field])) { $updateSql = "UPDATE ".$tblname." SET `".$field."`=".$db->qstr(mydmsDecodeString($rec[$field]))." where "; if(isset($schema['key'])) $updateSql .= $schema['key']."=".$rec[$schema['key']]; elseif(isset($schema['keys'])) { $where = array(); foreach($schema['keys'] as $key) { $where[] = $key."=".$rec[$key]; } $updateSql .= implode(' AND ', $where); } $allupdates[] = $updateSql; echo "\n"; if($doupdate) { $res = $db->Execute($updateSql); if(!$res) { $errormsg = 'Could not execute update statement'; echo "\n"; } else { $errormsg = 'Object updated'; echo "\n"; } } } } } } echo "
      TableFieldOld ValueNew ValueUpdate statement
      ".$tblname."".$field."".htmlspecialchars($rec[$field])."".htmlspecialchars(mydmsDecodeString($rec[$field]))."
      ".htmlspecialchars($updateSql)."
      ".$errormsg."
      ".$errormsg."
      \n"; if($allupdates) { echo "Summary of all updates
      \n"; echo "
      ".implode("
      ", $allupdates)."
      "; } return true; } /* }}} */ if(isset($_GET['doupdate']) && $_GET['doupdate'] == 1) $doupdate = 1; else $doupdate = 0; $doupdate = 1; if (!check($doupdate)) { print "

      Update failed

      "; } if(!$doupdate) { print "

      If the above update statements look ok, either execute them in your prefered mysql client or click on the link below.

      "; print "Execute update
      \n"; } ?> letodms-3.3.11+dfsg.1/install/update-3.3.0/update.sql0000644000175000017500000000075612040235117022421 0ustar franciscofranciscoCREATE TABLE `tblUserPasswordRequest` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `hash` varchar(50) default NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; UPDATE tblVersion set major=3, minor=3, subminor=7; ALTER TABLE tblDocumentContent MODIFY mimeType varchar(100); ALTER TABLE tblDocumentFiles MODIFY mimeType varchar(100); ALTER TABLE tblFolders ADD COLUMN `folderList` text NOT NULL; letodms-3.3.11+dfsg.1/install/create_tables-innodb.sql0000644000175000017500000003615212040235117023261 0ustar franciscofrancisco-- -- Table structure for table `tblACLs` -- CREATE TABLE `tblACLs` ( `id` int(11) NOT NULL auto_increment, `target` int(11) NOT NULL default '0', `targetType` tinyint(4) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', `mode` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUsers` -- CREATE TABLE `tblUsers` ( `id` int(11) NOT NULL auto_increment, `login` varchar(50) default NULL, `pwd` varchar(50) default NULL, `fullName` varchar(100) default NULL, `email` varchar(70) default NULL, `language` varchar(32) NOT NULL, `theme` varchar(32) NOT NULL, `comment` text NOT NULL, `role` smallint(1) NOT NULL default '0', `hidden` smallint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUserPasswordRequest` -- CREATE TABLE `tblUserPasswordRequest` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `hash` varchar(50) default NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUserImages` -- CREATE TABLE `tblUserImages` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `image` blob NOT NULL, `mimeType` varchar(10) NOT NULL default '', PRIMARY KEY (`id`), CONSTRAINT `tblUserImages_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblFolders` -- CREATE TABLE `tblFolders` ( `id` int(11) NOT NULL auto_increment, `name` varchar(70) default NULL, `parent` int(11) default NULL, `folderList` text NOT NULL, `comment` text, `date` int(12) default NULL, `owner` int(11) default NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `sequence` double NOT NULL default '0', PRIMARY KEY (`id`), KEY `parent` (`parent`), CONSTRAINT `tblFolders_owner` FOREIGN KEY (`owner`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocuments` -- CREATE TABLE `tblDocuments` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `date` int(12) default NULL, `expires` int(12) default NULL, `owner` int(11) default NULL, `folder` int(11) default NULL, `folderList` text NOT NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `locked` int(11) NOT NULL default '-1', `keywords` text NOT NULL, `sequence` double NOT NULL default '0', PRIMARY KEY (`id`), CONSTRAINT `tblDocuments_folder` FOREIGN KEY (`folder`) REFERENCES `tblFolders` (`id`) ON DELETE CASCADE, CONSTRAINT `tblDocuments_owner` FOREIGN KEY (`owner`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApprovers` -- CREATE TABLE `tblDocumentApprovers` ( `approveID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`approveID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`), CONSTRAINT `tblDocumentApprovers_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApproveLog` -- CREATE TABLE `tblDocumentApproveLog` ( `approveLogID` int(11) NOT NULL auto_increment, `approveID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`approveLogID`), CONSTRAINT `tblDocumentApproveLog_approve` FOREIGN KEY (`approveID`) REFERENCES `tblDocumentApprovers` (`approveID`) ON DELETE CASCADE, CONSTRAINT `tblDocumentApproveLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContent` -- CREATE TABLE `tblDocumentContent` ( `document` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL, `comment` text, `date` int(12) default NULL, `createdBy` int(11) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(100) NOT NULL default '', UNIQUE (`document`, `version`), CONSTRAINT `tblDocumentDocument_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLinks` -- CREATE TABLE `tblDocumentLinks` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `target` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `public` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), CONSTRAINT `tblDocumentLinks_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, CONSTRAINT `tblDocumentLinks_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentFiles` -- CREATE TABLE `tblDocumentFiles` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `comment` text, `name` varchar(150) default NULL, `date` int(12) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), CONSTRAINT `tblDocumentFiles_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, CONSTRAINT `tblDocumentFiles_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLocks` -- CREATE TABLE `tblDocumentLocks` ( `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`document`), CONSTRAINT `tblDocumentLocks_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE, CONSTRAINT `tblDocumentLocks_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewLog` -- CREATE TABLE `tblDocumentReviewLog` ( `reviewLogID` int(11) NOT NULL auto_increment, `reviewID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`reviewLogID`), CONSTRAINT `tblDocumentReviewLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewers` -- CREATE TABLE `tblDocumentReviewers` ( `reviewID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`reviewID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`), CONSTRAINT `tblDocumentReviewers_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatus` -- CREATE TABLE `tblDocumentStatus` ( `statusID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`statusID`), UNIQUE KEY `documentID` (`documentID`,`version`), CONSTRAINT `tblDocumentStatus_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatusLog` -- CREATE TABLE `tblDocumentStatusLog` ( `statusLogID` int(11) NOT NULL auto_increment, `statusID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`statusLogID`), KEY `statusID` (`statusID`), CONSTRAINT `tblDocumentStatusLog_status` FOREIGN KEY (`statusID`) REFERENCES `tblDocumentStatus` (`statusID`) ON DELETE CASCADE, CONSTRAINT `tblDocumentStatusLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblGroupMembers` -- CREATE TABLE `tblGroupMembers` ( `groupID` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `manager` smallint(1) NOT NULL default '0', PRIMARY KEY (`groupID`,`userID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblGroups` -- CREATE TABLE `tblGroups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) default NULL, `comment` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywordCategories` -- CREATE TABLE `tblKeywordCategories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `owner` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywords` -- CREATE TABLE `tblKeywords` ( `id` int(11) NOT NULL auto_increment, `category` int(11) NOT NULL default '0', `keywords` text NOT NULL, PRIMARY KEY (`id`), CONSTRAINT `tblKeywords_category` FOREIGN KEY (`category`) REFERENCES `tblKeywordCategories` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblCategory` -- CREATE TABLE `tblCategory` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentCategory` -- CREATE TABLE `tblDocumentCategory` ( `categoryID` int(11) NOT NULL default 0, `documentID` int(11) NOT NULL default 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblNotify` -- CREATE TABLE `tblNotify` ( `target` int(11) NOT NULL default '0', `targetType` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', PRIMARY KEY (`target`,`targetType`,`userID`,`groupID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblSessions` -- CREATE TABLE `tblSessions` ( `id` varchar(50) NOT NULL default '', `userID` int(11) NOT NULL default '0', `lastAccess` int(11) NOT NULL default '0', `theme` varchar(30) NOT NULL default '', `language` varchar(30) NOT NULL default '', PRIMARY KEY (`id`), CONSTRAINT `tblSessions_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- dirID is the current target content subdirectory. The last file loaded -- into MyDMS will be physically stored here. Is updated every time a new -- file is uploaded. -- -- dirPath is a essentially a foreign key from tblPathList, referencing the -- parent directory path for dirID, relative to MyDMS's _contentDir. -- CREATE TABLE `tblDirPath` ( `dirID` int(11) NOT NULL auto_increment, `dirPath` varchar(255) NOT NULL, PRIMARY KEY (`dirID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- CREATE TABLE `tblPathList` ( `id` int(11) NOT NULL auto_increment, `parentPath` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for mandatory reviewers -- CREATE TABLE `tblMandatoryReviewers` ( `userID` int(11) NOT NULL default '0', `reviewerUserID` int(11) NOT NULL default '0', `reviewerGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Table structure for mandatory approvers -- CREATE TABLE `tblMandatoryApprovers` ( `userID` int(11) NOT NULL default '0', `approverUserID` int(11) NOT NULL default '0', `approverGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Table structure for events (calendar) -- CREATE TABLE `tblEvents` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `start` int(12) default NULL, `stop` int(12) default NULL, `date` int(12) default NULL, `userID` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Table structure for version -- CREATE TABLE `tblVersion` ( `date` datetime, `major` smallint, `minor` smallint, `subminor` smallint ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Initial content for database -- INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0); INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0); INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0); INSERT INTO tblVersion VALUES (NOW(), 3, 3, 0); INSERT INTO tblCategory VALUES (0, ''); letodms-3.3.11+dfsg.1/install/update.php0000644000175000017500000000540312040235120020454 0ustar franciscofranciscoload($configDir."/settings.xml"); /** * Check if ENABLE_INSTALL_TOOL exists in config dir */ if (!file_exists($configDir."/ENABLE_INSTALL_TOOL")) { echo "For installation of LetoDMS, you must create the file conf/ENABLE_INSTALL_TOOL"; exit; } require_once("../inc/inc.Language.php"); require_once("../inc/inc.ClassUI.php"); UI::htmlStartPage('Database update'); UI::contentHeading("letoDMS Installation for version ".$_GET['version']); UI::contentContainerStart(); require_once($settings->_ADOdbPath."adodb/adodb.inc.php"); $db = ADONewConnection($settings->_dbDriver); if ($db) { $db->Connect($settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); if (!$db->IsConnected()) { die; } } $errorMsg = ''; $res = $db->Execute('select * from tblVersion'); if($rec = $res->FetchRow()) { if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) { $queries = file_get_contents('update-'.$_GET['version'].'/update.sql'); $queries = explode(";", $queries); // execute queries if($queries) { echo "

      Updating database schema

      "; foreach($queries as $query) { $query = trim($query); if (!empty($query)) { echo $query."
      "; $db->Execute($query); if ($db->ErrorNo()<>0) { $errorMsg .= $db->ErrorMsg() . "
      "; } } } } } else { echo "

      Database schema already up to date.

      "; } if(!$errorMsg) { echo "

      Running update script

      "; include('update-'.$_GET['version'].'/update.php'); } else { echo $errorMsg; } echo "

      Go back to installation.

      "; } else { echo "

      Could not determine database schema version.

      "; } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/install/update-3.0.0/0000755000175000017500000000000012040235120020375 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-3.0.0/update.sql0000644000175000017500000000076412040235120022407 0ustar franciscofranciscoALTER TABLE tblUsers ADD COLUMN `role` smallint(1) NOT NULL default '0' AFTER `isAdmin`; UPDATE tblUsers SET `role` = 1 WHERE `isAdmin` = 1; UPDATE tblUsers SET `role` = 2 WHERE `id` = 2; ALTER TABLE tblUsers DROP COLUMN isAdmin; ALTER TABLE tblFolders ADD COLUMN `date` int(12) default NULL AFTER `comment`; CREATE TABLE `tblVersion` ( `date` datetime, `major` smallint, `minor` smallint, `subminor` smallint ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO tblVersion VALUES (NOW(), 3, 0, 0); letodms-3.3.11+dfsg.1/install/settings.xml.template_install0000644000175000017500000002057012040235117024413 0ustar franciscofrancisco letodms-3.3.11+dfsg.1/install/update-1.9.0/0000755000175000017500000000000012040235117020412 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/install/update-1.9.0/update.php0000644000175000017500000000403112040235117022403 0ustar franciscofrancisco"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; die; } function update_db() { global $db; $fd = fopen ("update.sql", "r"); if (is_bool($fd)&&!$fd) return false; $queryStr = fread($fd, filesize("update.sql")); if (is_bool($queryStr)&&!$queryStr) return false; fclose ($fd); if (!$db->getResult($queryStr)) return false; return true; } print "Updating ...please wait
      "; print "
      ";
      
      if (!update_db()) {
      
      	print "
      "; print "ERROR: An error occurred during the DB update"; print "
      Please try to execute the update.sql manually"; die; }else print "Update done
      "; print ""; ?> letodms-3.3.11+dfsg.1/install/update-1.9.0/update.sql0000644000175000017500000000202312040235117022412 0ustar franciscofrancisco-- mysql -uyouruser -pyourpassword yourdb < update.sql -- this script must be executed when updating form a version < 1.9 -- -------------------------------------------------------- -- -- New field for hidden users -- ALTER TABLE `tblUsers` ADD `hidden` smallint(1) NOT NULL default '0' ; -- -- New field for group manager permission -- ALTER TABLE `tblGroupMembers` ADD `manager` smallint(1) NOT NULL default '0' ; -- -- Table structure for mandatory reviewers -- CREATE TABLE `tblMandatoryReviewers` ( `userID` int(11) NOT NULL default '0', `reviewerUserID` int(11) NOT NULL default '0', `reviewerGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) ) ; -- -- Table structure for mandatory approvers -- CREATE TABLE `tblMandatoryApprovers` ( `userID` int(11) NOT NULL default '0', `approverUserID` int(11) NOT NULL default '0', `approverGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) ) ; letodms-3.3.11+dfsg.1/install/create_tables.sql0000644000175000017500000003142512040235120022002 0ustar franciscofrancisco-- -- Table structure for table `tblACLs` -- CREATE TABLE `tblACLs` ( `id` int(11) NOT NULL auto_increment, `target` int(11) NOT NULL default '0', `targetType` tinyint(4) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', `mode` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUsers` -- CREATE TABLE `tblUsers` ( `id` int(11) NOT NULL auto_increment, `login` varchar(50) default NULL, `pwd` varchar(50) default NULL, `fullName` varchar(100) default NULL, `email` varchar(70) default NULL, `language` varchar(32) NOT NULL, `theme` varchar(32) NOT NULL, `comment` text NOT NULL, `role` smallint(1) NOT NULL default '0', `hidden` smallint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUserPasswordRequest` -- CREATE TABLE `tblUserPasswordRequest` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `hash` varchar(50) default NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblUserImages` -- CREATE TABLE `tblUserImages` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `image` blob NOT NULL, `mimeType` varchar(10) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblFolders` -- CREATE TABLE `tblFolders` ( `id` int(11) NOT NULL auto_increment, `name` varchar(70) default NULL, `parent` int(11) default NULL, `folderList` text NOT NULL, `comment` text, `date` int(12) default NULL, `owner` int(11) default NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `sequence` double NOT NULL default '0', PRIMARY KEY (`id`), KEY `parent` (`parent`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocuments` -- CREATE TABLE `tblDocuments` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `date` int(12) default NULL, `expires` int(12) default NULL, `owner` int(11) default NULL, `folder` int(11) default NULL, `folderList` text NOT NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `locked` int(11) NOT NULL default '-1', `keywords` text NOT NULL, `sequence` double NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApprovers` -- CREATE TABLE `tblDocumentApprovers` ( `approveID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`approveID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApproveLog` -- CREATE TABLE `tblDocumentApproveLog` ( `approveLogID` int(11) NOT NULL auto_increment, `approveID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`approveLogID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContent` -- CREATE TABLE `tblDocumentContent` ( `document` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL, `comment` text, `date` int(12) default NULL, `createdBy` int(11) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(100) NOT NULL default '', UNIQUE (`document`,`version`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLinks` -- CREATE TABLE `tblDocumentLinks` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `target` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `public` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentFiles` -- CREATE TABLE `tblDocumentFiles` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `comment` text, `name` varchar(150) default NULL, `date` int(12) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(100) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLocks` -- CREATE TABLE `tblDocumentLocks` ( `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`document`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewLog` -- CREATE TABLE `tblDocumentReviewLog` ( `reviewLogID` int(11) NOT NULL auto_increment, `reviewID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`reviewLogID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewers` -- CREATE TABLE `tblDocumentReviewers` ( `reviewID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`reviewID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatus` -- CREATE TABLE `tblDocumentStatus` ( `statusID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`statusID`), UNIQUE KEY `documentID` (`documentID`,`version`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatusLog` -- CREATE TABLE `tblDocumentStatusLog` ( `statusLogID` int(11) NOT NULL auto_increment, `statusID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`statusLogID`), KEY `statusID` (`statusID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblGroupMembers` -- CREATE TABLE `tblGroupMembers` ( `groupID` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `manager` smallint(1) NOT NULL default '0', PRIMARY KEY (`groupID`,`userID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblGroups` -- CREATE TABLE `tblGroups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) default NULL, `comment` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywordCategories` -- CREATE TABLE `tblKeywordCategories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `owner` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywords` -- CREATE TABLE `tblKeywords` ( `id` int(11) NOT NULL auto_increment, `category` int(11) NOT NULL default '0', `keywords` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblCategory` -- CREATE TABLE `tblCategory` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentCategory` -- CREATE TABLE `tblDocumentCategory` ( `categoryID` int(11) NOT NULL default 0, `documentID` int(11) NOT NULL default 0 ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblNotify` -- CREATE TABLE `tblNotify` ( `target` int(11) NOT NULL default '0', `targetType` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', PRIMARY KEY (`target`,`targetType`,`userID`,`groupID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `tblSessions` -- CREATE TABLE `tblSessions` ( `id` varchar(50) NOT NULL default '', `userID` int(11) NOT NULL default '0', `lastAccess` int(11) NOT NULL default '0', `theme` varchar(30) NOT NULL default '', `language` varchar(30) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- dirID is the current target content subdirectory. The last file loaded -- into MyDMS will be physically stored here. Is updated every time a new -- file is uploaded. -- -- dirPath is a essentially a foreign key from tblPathList, referencing the -- parent directory path for dirID, relative to MyDMS's _contentDir. -- CREATE TABLE `tblDirPath` ( `dirID` int(11) NOT NULL auto_increment, `dirPath` varchar(255) NOT NULL, PRIMARY KEY (`dirPath`,`dirID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- CREATE TABLE `tblPathList` ( `id` int(11) NOT NULL auto_increment, `parentPath` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for mandatory reviewers -- CREATE TABLE `tblMandatoryReviewers` ( `userID` int(11) NOT NULL default '0', `reviewerUserID` int(11) NOT NULL default '0', `reviewerGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Table structure for mandatory approvers -- CREATE TABLE `tblMandatoryApprovers` ( `userID` int(11) NOT NULL default '0', `approverUserID` int(11) NOT NULL default '0', `approverGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Table structure for events (calendar) -- CREATE TABLE `tblEvents` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `start` int(12) default NULL, `stop` int(12) default NULL, `date` int(12) default NULL, `userID` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Table structure for version -- CREATE TABLE `tblVersion` ( `date` datetime, `major` smallint, `minor` smallint, `subminor` smallint ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Initial content for database -- INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0); INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0); INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0); INSERT INTO tblVersion VALUES (NOW(), 3, 3, 0); INSERT INTO tblCategory VALUES (0, ''); letodms-3.3.11+dfsg.1/reset_db.sql0000644000175000017500000002753312040235117017341 0ustar franciscofrancisco-- -- Table structure for table `tblACLs` -- DROP TABLE `tblACLs` ; CREATE TABLE `tblACLs` ( `id` int(11) NOT NULL auto_increment, `target` int(11) NOT NULL default '0', `targetType` tinyint(4) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', `mode` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApproveLog` -- DROP TABLE `tblDocumentApproveLog` ; CREATE TABLE `tblDocumentApproveLog` ( `approveLogID` int(11) NOT NULL auto_increment, `approveID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`approveLogID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApprovers` -- DROP TABLE `tblDocumentApprovers` ; CREATE TABLE `tblDocumentApprovers` ( `approveID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`approveID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContent` -- DROP TABLE `tblDocumentContent` ; CREATE TABLE `tblDocumentContent` ( `document` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL auto_increment, `comment` text, `date` int(12) default NULL, `createdBy` int(11) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', PRIMARY KEY (`document`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLinks` -- DROP TABLE `tblDocumentLinks` ; CREATE TABLE `tblDocumentLinks` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `target` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `public` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentFiles` -- DROP TABLE `tblDocumentFiles` ; CREATE TABLE `tblDocumentFiles` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `comment` text, `name` varchar(150) default NULL, `date` int(12) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLocks` -- DROP TABLE `tblDocumentLocks` ; CREATE TABLE `tblDocumentLocks` ( `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`document`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewLog` -- DROP TABLE `tblDocumentReviewLog` ; CREATE TABLE `tblDocumentReviewLog` ( `reviewLogID` int(11) NOT NULL auto_increment, `reviewID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`reviewLogID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewers` -- DROP TABLE `tblDocumentReviewers` ; CREATE TABLE `tblDocumentReviewers` ( `reviewID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`reviewID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatus` -- DROP TABLE `tblDocumentStatus` ; CREATE TABLE `tblDocumentStatus` ( `statusID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`statusID`), UNIQUE KEY `documentID` (`documentID`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatusLog` -- DROP TABLE `tblDocumentStatusLog` ; CREATE TABLE `tblDocumentStatusLog` ( `statusLogID` int(11) NOT NULL auto_increment, `statusID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`statusLogID`), KEY `statusID` (`statusID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocuments` -- DROP TABLE `tblDocuments` ; CREATE TABLE `tblDocuments` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `date` int(12) default NULL, `expires` int(12) default NULL, `owner` int(11) default NULL, `folder` int(11) default NULL, `folderList` text NOT NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `locked` int(11) NOT NULL default '-1', `keywords` text NOT NULL, `sequence` double NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblFolders` -- DROP TABLE `tblFolders` ; CREATE TABLE `tblFolders` ( `id` int(11) NOT NULL auto_increment, `name` varchar(70) default NULL, `parent` int(11) default NULL, `comment` text, `owner` int(11) default NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `sequence` double NOT NULL default '0', PRIMARY KEY (`id`), KEY `parent` (`parent`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblGroupMembers` -- DROP TABLE `tblGroupMembers` ; CREATE TABLE `tblGroupMembers` ( `groupID` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `manager` smallint(1) NOT NULL default '0', PRIMARY KEY (`groupID`,`userID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblGroups` -- DROP TABLE `tblGroups` ; CREATE TABLE `tblGroups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) default NULL, `comment` text NOT NULL, PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywordCategories` -- DROP TABLE `tblKeywordCategories` ; CREATE TABLE `tblKeywordCategories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `owner` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywords` -- DROP TABLE `tblKeywords` ; CREATE TABLE `tblKeywords` ( `id` int(11) NOT NULL auto_increment, `category` int(11) NOT NULL default '0', `keywords` text NOT NULL, PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblNotify` -- DROP TABLE `tblNotify` ; CREATE TABLE `tblNotify` ( `target` int(11) NOT NULL default '0', `targetType` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', PRIMARY KEY (`target`,`targetType`,`userID`,`groupID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblSessions` -- DROP TABLE `tblSessions` ; CREATE TABLE `tblSessions` ( `id` varchar(50) NOT NULL default '', `userID` int(11) NOT NULL default '0', `lastAccess` int(11) NOT NULL default '0', `theme` varchar(30) NOT NULL default '', `language` varchar(30) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblUserImages` -- DROP TABLE `tblUserImages` ; CREATE TABLE `tblUserImages` ( `id` int(11) NOT NULL auto_increment, `userID` int(11) NOT NULL default '0', `image` blob NOT NULL, `mimeType` varchar(10) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblUsers` -- DROP TABLE `tblUsers` ; CREATE TABLE `tblUsers` ( `id` int(11) NOT NULL auto_increment, `login` varchar(50) default NULL, `pwd` varchar(50) default NULL, `fullName` varchar(100) default NULL, `email` varchar(70) default NULL, `language` varchar(32) NOT NULL, `theme` varchar(32) NOT NULL, `comment` text NOT NULL, `isAdmin` smallint(1) NOT NULL default '0', `hidden` smallint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- dirID is the current target content subdirectory. The last file loaded -- into MyDMS will be physically stored here. Is updated every time a new -- file is uploaded. -- -- dirPath is a essentially a foreign key from tblPathList, referencing the -- parent directory path for dirID, relative to MyDMS's _contentDir. -- DROP TABLE `tblDirPath` ; CREATE TABLE `tblDirPath` ( `dirID` int(11) NOT NULL auto_increment, `dirPath` varchar(255) NOT NULL, PRIMARY KEY (`dirPath`,`dirID`) ) ; -- -------------------------------------------------------- DROP TABLE `tblPathList` ; CREATE TABLE `tblPathList` ( `id` int(11) NOT NULL auto_increment, `parentPath` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for mandatory reviewers -- DROP TABLE `tblMandatoryReviewers` ; CREATE TABLE `tblMandatoryReviewers` ( `userID` int(11) NOT NULL default '0', `reviewerUserID` int(11) NOT NULL default '0', `reviewerGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) ) ; -- -- Table structure for mandatory approvers -- DROP TABLE `tblMandatoryApprovers` ; CREATE TABLE `tblMandatoryApprovers` ( `userID` int(11) NOT NULL default '0', `approverUserID` int(11) NOT NULL default '0', `approverGroupID` int(11) NOT NULL default '0', PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) ) ; -- -- Table structure for events (calendar) -- DROP TABLE `tblEvents` ; CREATE TABLE `tblEvents` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `start` int(12) default NULL, `stop` int(12) default NULL, `date` int(12) default NULL, `userID` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -- Initial content for database -- INSERT INTO tblFolders VALUES (1, 'DMS', 0, 'DMS root', 1, 0, 2, 0); INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0); INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 0, 0); letodms-3.3.11+dfsg.1/TODO0000644000175000017500000000477512040235117015524 0ustar franciscofranciscoSettings::searchConfigFilePath() and Settings::getConfigDir() use different approaches to get the configuration directory. Show expiration status of documents in document list Add a Search Function to Related Documents. When attaching a related document their should be a search function to easily find the document you would like to relate. Export/Import content as xml (even for subfolders) Copy recursivly folders Allow operations like delete, move, approve, etc. on a list of documents Do not use sanitizeString anymore. LetoDMS_Core should take care of escaping chars when saving to database. LetoDMS should make sure to replace html when the data is output. Check all places where data from the database is shown on the page or put in javascript code (like href="javascript: ..."). Upload of multiple documents without an applet Delete document from full text index when document is deleted Do not show documents which are not reviewed or approved or rejected installation script: - user simply unpack the tar.gz in a server folder and access that folder - on startup if there are installation problems php automatically run the configuration script - the data folder creation can be automatic (user/password for server) or manual (yet ready folder) - same for the db and the db user - db creation (run of create table.sql) shoul control if db is yet filled and control for update to do - the inc/inc.Setting.php is filled asking user entry - the script can be used to test installation problem without affecting the current installation The document state is currently not updated when a user is deleted from users list. For example user A is the only pending approver for a document, then the document is in draft state. When A is deleted the document should pass automatically in release status. This could be done with a new function controlling the existance of all the pending approver/reviewer and eventually updating the status of the document. This function will be called by user-remove function. Sometimes in the DB are written messages strings in plain language whose language depends on the current user and will never be translated. This can be avoided using only coded messages The mail language is translated using the current user language but should use the receiver language (not easy). In my Documents->all documents there should be two lists: one (the current) with the user's document, and another with the user's updated document (that's because one user could have updated a document not owned by himself) letodms-3.3.11+dfsg.1/Makefile0000644000175000017500000000141712056056541016473 0ustar franciscofranciscoVERSION=3.3.11 SRC=CHANGELOG* inc conf utils index.php languages op out README README.Notification reset_db.sql drop-tables-innodb.sql delete_all_contents.sql styles js TODO LICENSE Makefile webdav install dist: mkdir -p tmp/letoDMS-$(VERSION) cp -a $(SRC) tmp/letoDMS-$(VERSION) (cd tmp; tar --exclude=.svn -czvf ../LetoDMS-$(VERSION).tar.gz letoDMS-$(VERSION)) rm -rf tmp pear: (cd LetoDMS_Core/; pear package) (cd LetoDMS_Lucene/; pear package) webdav: mkdir -p tmp/letoDMS-webdav-$(VERSION) cp webdav/* tmp/letoDMS-webdav-$(VERSION) (cd tmp; tar --exclude=.svn -czvf ../LetoDMS-webdav-$(VERSION).tar.gz letoDMS-webdav-$(VERSION)) rm -rf tmp doc: phpdoc -d LetoDMS_Core --ignore 'getusers.php,getfoldertree.php,config.php,reverselookup.php' -t html .PHONY: webdav letodms-3.3.11+dfsg.1/delete_all_contents.sql0000644000175000017500000002050512040235117021551 0ustar franciscofrancisco-- this delete all the db content except users -- mysql -uroot -ppassword mydms < delete_all_contents.sql -- -- Table structure for table `tblACLs` -- DROP TABLE `tblACLs`; CREATE TABLE `tblACLs` ( `id` int(11) NOT NULL auto_increment, `target` int(11) NOT NULL default '0', `targetType` tinyint(4) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', `mode` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApproveLog` -- DROP TABLE `tblDocumentApproveLog`; CREATE TABLE `tblDocumentApproveLog` ( `approveLogID` int(11) NOT NULL auto_increment, `approveID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`approveLogID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentApprovers` -- DROP TABLE `tblDocumentApprovers`; CREATE TABLE `tblDocumentApprovers` ( `approveID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`approveID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentContent` -- DROP TABLE `tblDocumentContent`; CREATE TABLE `tblDocumentContent` ( `document` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL auto_increment, `comment` text, `date` int(12) default NULL, `createdBy` int(11) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', PRIMARY KEY (`document`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLinks` -- DROP TABLE `tblDocumentLinks`; CREATE TABLE `tblDocumentLinks` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `target` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `public` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentFiles` -- DROP TABLE `tblDocumentFiles`; CREATE TABLE `tblDocumentFiles` ( `id` int(11) NOT NULL auto_increment, `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', `comment` text, `name` varchar(150) default NULL, `date` int(12) default NULL, `dir` varchar(255) NOT NULL default '', `orgFileName` varchar(150) NOT NULL default '', `fileType` varchar(10) NOT NULL default '', `mimeType` varchar(70) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentLocks` -- DROP TABLE `tblDocumentLocks`; CREATE TABLE `tblDocumentLocks` ( `document` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`document`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewLog` -- DROP TABLE `tblDocumentReviewLog`; CREATE TABLE `tblDocumentReviewLog` ( `reviewLogID` int(11) NOT NULL auto_increment, `reviewID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`reviewLogID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentReviewers` -- DROP TABLE `tblDocumentReviewers`; CREATE TABLE `tblDocumentReviewers` ( `reviewID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', `type` tinyint(4) NOT NULL default '0', `required` int(11) NOT NULL default '0', PRIMARY KEY (`reviewID`), UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatus` -- DROP TABLE `tblDocumentStatus`; CREATE TABLE `tblDocumentStatus` ( `statusID` int(11) NOT NULL auto_increment, `documentID` int(11) NOT NULL default '0', `version` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`statusID`), UNIQUE KEY `documentID` (`documentID`,`version`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocumentStatusLog` -- DROP TABLE `tblDocumentStatusLog`; CREATE TABLE `tblDocumentStatusLog` ( `statusLogID` int(11) NOT NULL auto_increment, `statusID` int(11) NOT NULL default '0', `status` tinyint(4) NOT NULL default '0', `comment` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `userID` int(11) NOT NULL default '0', PRIMARY KEY (`statusLogID`), KEY `statusID` (`statusID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblDocuments` -- DROP TABLE `tblDocuments`; CREATE TABLE `tblDocuments` ( `id` int(11) NOT NULL auto_increment, `name` varchar(150) default NULL, `comment` text, `date` int(12) default NULL, `expires` int(12) default NULL, `owner` int(11) default NULL, `folder` int(11) default NULL, `folderList` text NOT NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `locked` int(11) NOT NULL default '-1', `keywords` text NOT NULL, `sequence` double NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblFolders` -- DROP TABLE `tblFolders`; CREATE TABLE `tblFolders` ( `id` int(11) NOT NULL auto_increment, `name` varchar(70) default NULL, `parent` int(11) default NULL, `comment` text, `owner` int(11) default NULL, `inheritAccess` tinyint(1) NOT NULL default '1', `defaultAccess` tinyint(4) NOT NULL default '0', `sequence` double NOT NULL default '0', PRIMARY KEY (`id`), KEY `parent` (`parent`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywordCategories` -- DROP TABLE `tblKeywordCategories`; CREATE TABLE `tblKeywordCategories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `owner` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblKeywords` -- DROP TABLE `tblKeywords`; CREATE TABLE `tblKeywords` ( `id` int(11) NOT NULL auto_increment, `category` int(11) NOT NULL default '0', `keywords` text NOT NULL, PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblNotify` -- DROP TABLE `tblNotify`; CREATE TABLE `tblNotify` ( `target` int(11) NOT NULL default '0', `targetType` int(11) NOT NULL default '0', `userID` int(11) NOT NULL default '-1', `groupID` int(11) NOT NULL default '-1', PRIMARY KEY (`target`,`targetType`,`userID`,`groupID`) ) ; -- -------------------------------------------------------- -- -- Table structure for table `tblSessions` -- DROP TABLE `tblSessions`; CREATE TABLE `tblSessions` ( `id` varchar(50) NOT NULL default '', `userID` int(11) NOT NULL default '0', `lastAccess` int(11) NOT NULL default '0', `theme` varchar(30) NOT NULL default '', `language` varchar(30) NOT NULL default '', PRIMARY KEY (`id`) ) ; -- -------------------------------------------------------- -- -- Initial content for database -- INSERT INTO tblFolders VALUES (1, 'DMS', 0, 'DMS root', 1, 0, 2, 0); letodms-3.3.11+dfsg.1/inc/0000755000175000017500000000000012056056670015604 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/inc/inc.Utils.php0000644000175000017500000002670512040235120020155 0ustar franciscofrancisco1000000000) return number_format($size_bytes/1000000000,1,".","")." GBytes"; else if ($size_bytes>1000000) return number_format($size_bytes/1000000,1,".","")." MBytes"; else if ($size_bytes>1000) return number_format($size_bytes/1000,1,".","")." KBytes"; return number_format($size_bytes,0,"","")." Bytes"; } /* }}} */ function getReadableDate($timestamp) { return date("d.m.Y", $timestamp); } function getLongReadableDate($timestamp) { return date("d/m/Y H:i", $timestamp); } // // The original string sanitizer, kept for reference. //function sanitizeString($string) { // $string = str_replace("'", "'", $string); // $string = str_replace("--", "", $string); // $string = str_replace("<", "<", $string); // $string = str_replace(">", ">", $string); // $string = str_replace("/*", "", $string); // $string = str_replace("*/", "", $string); // $string = str_replace("\"", """, $string); // // return $string; //} function sanitizeString($string) { /* {{{ */ $string = (string) $string; if (get_magic_quotes_gpc()) { $string = stripslashes($string); } // The following three are against sql injection. They are not // needed anymore because strings are quoted propperly when saved into // the database. // $string = str_replace("\\", "\\\\", $string); // $string = str_replace("--", "\-\-", $string); // $string = str_replace(";", "\;", $string); // Use HTML entities to represent the other characters that have special // meaning in SQL. These can be easily converted back to ASCII / UTF-8 // with a decode function if need be. $string = str_replace("&", "&", $string); $string = str_replace("%", "%", $string); // percent $string = str_replace("\"", """, $string); // double quote $string = str_replace("/*", "/*", $string); // start of comment $string = str_replace("*/", "*/", $string); // end of comment $string = str_replace("<", "<", $string); $string = str_replace(">", ">", $string); $string = str_replace("=", "=", $string); $string = str_replace(")", ")", $string); $string = str_replace("(", "(", $string); $string = str_replace("'", "'", $string); $string = str_replace("+", "+", $string); return trim($string); } /* }}} */ function mydmsDecodeString($string) { /* {{{ */ $string = (string)$string; $string = str_replace("&", "&", $string); $string = str_replace("%", "%", $string); // percent $string = str_replace(""", "\"", $string); // double quote $string = str_replace("/*", "/*", $string); // start of comment $string = str_replace("*/", "*/", $string); // end of comment $string = str_replace("<", "<", $string); $string = str_replace(">", ">", $string); $string = str_replace("=", "=", $string); $string = str_replace(")", ")", $string); $string = str_replace("(", "(", $string); $string = str_replace("'", "'", $string); $string = str_replace("+", "+", $string); return $string; } /* }}} */ function createVersionigFile($document) { /* {{{ */ global $settings, $dms; // if directory has been removed recreate it if (!file_exists($dms->contentDir . $document->getDir())) if (!LetoDMS_Core_File::makeDir($dms->contentDir . $document->getDir())) return false; $handle = fopen($dms->contentDir . $document->getDir() .$settings-> _versioningFileName , "wb"); if (is_bool($handle)&&!$handle) return false; $tmp = $document->getName()." (ID ".$document->getID()."\n\n"; fwrite($handle, $tmp); $owner = $document->getOwner(); $tmp = getMLText("owner")." = ".$owner->getFullName()." <".$owner->getEmail().">\n"; fwrite($handle, $tmp); $tmp = getMLText("creation_date")." = ".getLongReadableDate($document->getDate())."\n"; fwrite($handle, $tmp); $latestContent = $document->getLatestContent(); $tmp = "\n### ".getMLText("current_version")." ###\n\n"; fwrite($handle, $tmp); $tmp = getMLText("version")." = ".$latestContent->getVersion()."\n"; fwrite($handle, $tmp); $tmp = getMLText("file")." = ".$latestContent->getOriginalFileName()." (".$latestContent->getMimeType().")\n"; fwrite($handle, $tmp); $tmp = getMLText("comment")." = ". $latestContent->getComment()."\n"; fwrite($handle, $tmp); $status = $latestContent->getStatus(); $tmp = getMLText("status")." = ".getOverallStatusText($status["status"])."\n"; fwrite($handle, $tmp); $reviewStatus = $latestContent->getReviewStatus(); $tmp = "\n### ".getMLText("reviewers")." ###\n"; fwrite($handle, $tmp); foreach ($reviewStatus as $r) { switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); if (!is_object($required)) $reqName = getMLText("unknown_user")." = ".$r["required"]; else $reqName = getMLText("user")." = ".$required->getFullName(); break; case 1: // Reviewer is a group. $required = $dms->getGroup($r["required"]); if (!is_object($required)) $reqName = getMLText("unknown_group")." = ".$r["required"]; else $reqName = getMLText("group")." = ".$required->getName(); break; } $tmp = "\n".$reqName."\n"; fwrite($handle, $tmp); $tmp = getMLText("status")." = ".getReviewStatusText($r["status"])."\n"; fwrite($handle, $tmp); $tmp = getMLText("comment")." = ". $r["comment"]."\n"; fwrite($handle, $tmp); $tmp = getMLText("last_update")." = ".$r["date"]."\n"; fwrite($handle, $tmp); } $approvalStatus = $latestContent->getApprovalStatus(); $tmp = "\n### ".getMLText("approvers")." ###\n"; fwrite($handle, $tmp); foreach ($approvalStatus as $r) { switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); if (!is_object($required)) $reqName = getMLText("unknown_user")." = ".$r["required"]; else $reqName = getMLText("user")." = ".$required->getFullName(); break; case 1: // Reviewer is a group. $required = $dms->getGroup($r["required"]); if (!is_object($required)) $reqName = getMLText("unknown_group")." = ".$r["required"]; else $reqName = getMLText("group")." = ".$required->getName(); break; } $tmp = "\n".$reqName."\n"; fwrite($handle, $tmp); $tmp = getMLText("status")." = ".getApprovalStatusText($r["status"])."\n"; fwrite($handle, $tmp); $tmp = getMLText("comment")." = ". $r["comment"]."\n"; fwrite($handle, $tmp); $tmp = getMLText("last_update")." = ".$r["date"]."\n"; fwrite($handle, $tmp); } $versions = $document->getContent(); $tmp = "\n### ".getMLText("previous_versions")." ###\n"; fwrite($handle, $tmp); for ($i = count($versions)-2; $i >= 0; $i--){ $version = $versions[$i]; $status = $version->getStatus(); $tmp = "\n".getMLText("version")." = ".$version->getVersion()."\n"; fwrite($handle, $tmp); $tmp = getMLText("file")." = ".$version->getOriginalFileName()." (".$version->getMimeType().")\n"; fwrite($handle, $tmp); $tmp = getMLText("comment")." = ". $version->getComment()."\n"; fwrite($handle, $tmp); $status = $latestContent->getStatus(); $tmp = getMLText("status")." = ".getOverallStatusText($status["status"])."\n"; fwrite($handle, $tmp); } fclose($handle); return true; } /* }}} */ function add_log_line($msg="") { /* {{{ */ global $logger, $user; if(!$logger) return; $logger->log($user->getLogin()." (".$_SERVER['REMOTE_ADDR'].") ".basename($_SERVER["REQUEST_URI"], ".php").$msg); } /* }}} */ function _add_log_line($msg="") { /* {{{ */ global $settings,$user; if ($settings->_logFileEnable!=TRUE) return; if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); else $logname=date("Ym", time()); if($h = fopen($settings->_contentDir.$logname.".log", "a")) { fwrite($h,date("Y/m/d H:i", time())." ".$user->getLogin()." (".$_SERVER['REMOTE_ADDR'].") ".basename($_SERVER["REQUEST_URI"], ".php").$msg."\n"); fclose($h); } } /* }}} */ function getFolderPathHTML($folder, $tagAll=false) { /* {{{ */ $path = $folder->getPath(); $txtpath = ""; for ($i = 0; $i < count($path); $i++) { if ($i +1 < count($path)) { $txtpath .= "getID()."&showtree=".showtree()."\">". htmlspecialchars($path[$i]->getName())." / "; } else { $txtpath .= ($tagAll ? "getID()."&showtree=".showtree()."\">". htmlspecialchars($path[$i]->getName())."" : htmlspecialchars($path[$i]->getName())); } } return $txtpath; } /* }}} */ function showtree() { /* {{{ */ global $settings; if (isset($_GET["showtree"])) return intval($_GET["showtree"]); else if ($settings->_enableFolderTree==0) return 0; return 1; } /* }}} */ /** * Create a unique key which is used for form validation to prevent * CSRF attacks. The key is added to a any form that has to be secured * as a hidden field. Once the form is submitted the key is compared * to the current key in the session and the request is only executed * if both are equal. The key is derived from the session id, a configurable * encryption key and form identifierer. * * @param string $formid individual form identifier * @return string session key */ function createFormKey($formid='') { /* {{{ */ global $settings, $session; if($id = $session->getId()) { return md5($id.$settings->_encryptionKey.$formid); } else { return false; } } /* }}} */ /** * Create a hidden field with the name 'formtoken' and set its value * to the key returned by createFormKey() * * @param string $formid individual form identifier * @return string input field for html formular */ function createHiddenFieldWithKey($formid='') { /* {{{ */ return ''; } /* }}} */ /** * Check if the form key in the POST or GET request variable 'formtoken' * has the value of key returned by createFormKey(). Request to modify * data in the DMS should always use POST because it is harder to run * CSRF attacks using POST than GET. * * @param string $formid individual form identifier * @param string $method defines if the form data is pass via GET or * POST (default) * @return boolean true if key matches otherwise false */ function checkFormKey($formid='', $method='POST') { /* {{{ */ switch($method) { case 'GET': if(isset($_GET['formtoken']) && $_GET['formtoken'] == createFormKey($formid)) return true; break; default: if(isset($_POST['formtoken']) && $_POST['formtoken'] == createFormKey($formid)) return true; } return false; } /* }}} */ ?> letodms-3.3.11+dfsg.1/inc/inc.Authentication.php0000644000175000017500000000306112040235120022022 0ustar franciscofrancisco * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Uwe Steinmann * @version Release: @package_version@ */ $refer=urlencode($_SERVER["REQUEST_URI"]); if (!strncmp("/op", $refer, 3)) { $refer=""; } if (!isset($_COOKIE["mydms_session"])) { header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer); exit; } require_once("inc.Utils.php"); require_once("inc.ClassEmail.php"); require_once("inc.ClassSession.php"); /* Load session */ $dms_session = $_COOKIE["mydms_session"]; $session = new LetoDMS_Session($db); if(!$resArr = $session->load($dms_session)) { setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer); exit; } /* Load user data */ $user = $dms->getUser($resArr["userID"]); if (!is_object($user)) { setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer); exit; } $dms->setUser($user); $notifier = new LetoDMS_Email(); $notifier->setSender($user); $theme = $resArr["theme"]; include $settings->_rootDir . "languages/" . $resArr["language"] . "/lang.inc"; ?> letodms-3.3.11+dfsg.1/inc/inc.Version.php0000644000175000017500000000211612056056670020512 0ustar franciscofrancisco_string .", ". $this->_number; } } ?> letodms-3.3.11+dfsg.1/inc/inc.ClassEmail.php0000644000175000017500000000763012040235120021066 0ustar franciscofrancisco * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010 Uwe Steinmann * @version Release: @package_version@ */ /** * Include parent class */ require_once("inc.ClassNotify.php"); /** * Class to send email notifications to individuals or groups * * @category DMS * @package LetoDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010 Uwe Steinmann * @version Release: @package_version@ */ class LetoDMS_Email extends LetoDMS_Notify { function toIndividual($sender, $recipient, $subject, $message) { /* {{{ */ global $settings; if ($settings->_enableEmail==FALSE) return 0; if ($recipient->getEmail()=="") return 0; if ((!is_object($sender) && strcasecmp(get_class($sender), "LetoDMS_Core_User")) || (!is_object($recipient) && strcasecmp(get_class($recipient), "LetoDMS_Core_User"))) { return -1; } $header = "From: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n" . "Reply-To: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n"; $message = getMLText("email_header")."\r\n\r\n".$message; $message .= "\r\n\r\n".getMLText("email_footer"); return (mail($recipient->getEmail(), $this->replaceMarker($subject), $this->replaceMarker($message), $header) ? 0 : -1); } /* }}} */ function toGroup($sender, $groupRecipient, $subject, $message) { /* {{{ */ global $settings; if (!$settings->_enableEmail) return 0; if ((!is_object($sender) && strcasecmp(get_class($sender), "LetoDMS_Core_User")) || (!is_object($groupRecipient) && strcasecmp(get_class($groupRecipient), "LetoDMS_Core_Group"))) { return -1; } $header = "From: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n" . "Reply-To: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n"; $toList = ""; foreach ($groupRecipient->getUsers() as $recipient) { if ($recipient->getEmail()!="") $toList .= (strlen($toList)==0 ? "" : ", ") . $recipient->getEmail(); } if (strlen($toList)==0) { return -1; } $message = getMLText("email_header")."\r\n\r\n".$message; $message .= "\r\n\r\n".getMLText("email_footer"); return (mail($toList, parent::replaceMarker($subject), parent::replaceMarker($message), $header) ? 0 : -1); } /* }}} */ function toList($sender, $recipients, $subject, $message) { /* {{{ */ global $settings; if (!$settings->_enableEmail) return 0; if ((!is_object($sender) && strcasecmp(get_class($sender), "LetoDMS_Core_User")) || (!is_array($recipients) && count($recipients)==0)) { return -1; } $header = "From: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n" . "Reply-To: ". $sender->getFullName() ." <". $sender->getEmail() .">\r\n"; $toList = ""; foreach ($recipients as $recipient) { if (is_object($recipient) && !strcasecmp(get_class($recipient), "LetoDMS_Core_User")) { if ($recipient->getEmail()!="") $toList .= (strlen($toList)==0 ? "" : ", ") . $recipient->getEmail(); } } if (strlen($toList)==0) { return -1; } $message = getMLText("email_header")."\r\n\r\n".$message; $message .= "\r\n\r\n".getMLText("email_footer"); return (mail($toList, $this->replaceMarker($subject), $this->replaceMarker($message), $header) ? 0 : -1); } /* }}} */ function sendPassword($sender, $recipient, $subject, $message) { global $settings; $header = "From: " . "\r\n" . "Reply-To: " . "\r\n"; $header = ''; return (mail($recipient->getEmail(), $this->replaceMarker($subject), $this->replaceMarker($message), $header) ? 0 : -1); } } ?> letodms-3.3.11+dfsg.1/inc/inc.Language.php0000644000175000017500000001253212040235120020571 0ustar franciscofrancisco_rootDir . "languages/"; $handle = opendir($path); while ($entry = readdir($handle) ) { if ($entry == ".." || $entry == ".") continue; else if (is_dir($path . $entry)) array_push($languages, $entry); } closedir($handle); return $languages; } include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc"; function getMLText($key, $replace = array()) { GLOBAL $settings, $text; if (!isset($text[$key])) return "Error getting Text: " . $key . " (" . $settings->_language . ")"; $tmpText = $text[$key]; if (count($replace) == 0) return $tmpText; $keys = array_keys($replace); foreach ($keys as $key) $tmpText = str_replace("[".$key."]", $replace[$key], $tmpText); return $tmpText; } function printMLText($key, $replace = array()) { print getMLText($key, $replace); } function printReviewStatusText($status, $date=0) { if (is_null($status)) { print getMLText("status_unknown"); } else { switch ($status) { case -2: print getMLText("status_reviewer_removed"); break; case -1: print getMLText("status_reviewer_rejected").($date !=0 ? " ".$date : ""); break; case 0: print getMLText("status_not_reviewed"); break; case 1: print getMLText("status_reviewed").($date !=0 ? " ".$date : ""); break; default: print getMLText("status_unknown"); break; } } } function getReviewStatusText($status, $date=0) { if (is_null($status)) { return getMLText("status_unknown"); } else { switch ($status) { case -2: return getMLText("status_reviewer_removed"); break; case -1: return getMLText("status_reviewer_rejected").($date !=0 ? " ".$date : ""); break; case 0: return getMLText("status_not_reviewed"); break; case 1: return getMLText("status_reviewed").($date !=0 ? " ".$date : ""); break; default: return getMLText("status_unknown"); break; } } } function printApprovalStatusText($status, $date=0) { if (is_null($status)) { print getMLText("status_unknown"); } else { switch ($status) { case -2: print getMLText("status_approver_removed"); break; case -1: print getMLText("status_approval_rejected").($date !=0 ? " ".$date : ""); break; case 0: print getMLText("status_not_approved"); break; case 1: print getMLText("status_approved").($date !=0 ? " ".$date : ""); break; default: print getMLText("status_unknown"); break; } } } function getApprovalStatusText($status, $date=0) { if (is_null($status)) { return getMLText("status_unknown"); } else { switch ($status) { case -2: return getMLText("status_approver_removed"); break; case -1: return getMLText("status_approval_rejected").($date !=0 ? " ".$date : ""); break; case 0: return getMLText("status_not_approved"); break; case 1: return getMLText("status_approved").($date !=0 ? " ".$date : ""); break; default: return getMLText("status_unknown"); break; } } } function printOverallStatusText($status) { if (is_null($status)) { print getMLText("assumed_released"); } else { switch($status) { case S_DRAFT_REV: print getMLText("draft_pending_review"); break; case S_DRAFT_APP: print getMLText("draft_pending_approval"); break; case S_RELEASED: print getMLText("released"); break; case S_REJECTED: print getMLText("rejected"); break; case S_OBSOLETE: print getMLText("obsolete"); break; case S_EXPIRED: print getMLText("expired"); break; default: print getMLText("status_unknown"); break; } } } function getOverallStatusText($status) { if (is_null($status)) { return getMLText("assumed_released"); } else { switch($status) { case S_DRAFT_REV: return getMLText("draft_pending_review"); break; case S_DRAFT_APP: return getMLText("draft_pending_approval"); break; case S_RELEASED: return getMLText("released"); break; case S_REJECTED: return getMLText("rejected"); break; case S_OBSOLETE: return getMLText("obsolete"); break; case S_EXPIRED: return getMLText("expired"); break; default: return getMLText("status_unknown"); break; } } } ?> letodms-3.3.11+dfsg.1/inc/inc.ClassSession.php0000644000175000017500000000726512040235120021466 0ustar franciscofrancisco * @copyright 2011 Uwe Steinmann * @version Release: @package_version@ */ /** * Class to represent a session * * This class provides some very basic methods to load, save and delete * sessions. It does not set or retrieve a cockie. This is up to the * application. The class basically provides access to the session database * table. * * @category DMS * @package LetoDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @copyright 2011 Uwe Steinmann * @version Release: @package_version@ */ class LetoDMS_Session { /** * @var object $db reference to database object. This must be an instance * of {@link LetoDMS_Core_DatabaseAccess}. * @access protected */ protected $db; /** * @var array $data session data * @access protected */ protected $data; /** * @var string $id session id * @access protected */ protected $id; /** * Create a new instance of the session handler * * @param object $db object to access the underlying database * @return object instance of LetoDMS_Session */ function __construct($db) { /* {{{ */ $this->db = $db; $this->id = false; } /* }}} */ /** * Load session by its id from database * * @param string $id id of session * @return boolean true if successful otherwise false */ function load($id) { /* {{{ */ $queryStr = "SELECT * FROM tblSessions WHERE id = ".$this->db->qstr($id); $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; if (count($resArr) == 0) return false; $queryStr = "UPDATE tblSessions SET lastAccess = " . mktime() . " WHERE id = " . $this->db->qstr($id); if (!$this->db->getResult($queryStr)) return false; $this->id = $id; return $resArr[0]; } /* }}} */ /** * Create a new session and saving the given data into the database * * @param array $data data saved in session (the only fields supported * are userid, theme, language) * @return string/boolean id of session of false in case of an error */ function create($data) { /* {{{ */ $id = "" . rand() . mktime() . rand() . ""; $id = md5($id); $queryStr = "INSERT INTO tblSessions (id, userID, lastAccess, theme, language) ". "VALUES ('".$id."', ".$data['userid'].", ".mktime().", '".$data['theme']."', '".$data['lang']."')"; if (!$this->db->getResult($queryStr)) { return false; } $this->id = $id; $this->data = $data; return $id; } /* }}} */ /** * Delete sessions older than a given time from the database * * @param integer $sec maximum number of seconds a session may live * @return boolean true if successful otherwise false */ function deleteByTime($sec) { /* {{{ */ $queryStr = "DELETE FROM tblSessions WHERE " . mktime() . " - lastAccess > ".$sec; if (!$this->db->getResult($queryStr)) { return false; } return true; } /* }}} */ /** * Delete session by its id * * @param string $id id of session * @return boolean true if successful otherwise false */ function delete($id) { /* {{{ */ $queryStr = "DELETE FROM tblSessions WHERE id = " . $this->db->qstr($id); if (!$this->db->getResult($queryStr)) { return false; } $this->id = false; return true; } /* }}} */ /** * Get session id * * @return string session id */ function getId() { /* {{{ */ return $this->id; } /* }}} */ } ?> letodms-3.3.11+dfsg.1/inc/inc.ClassUI.php0000644000175000017500000011537412040235120020361 0ustar franciscofrancisco_theme; } if (strlen($theme)==0) { $theme="blue"; } // for extension use LOWER CASE only $icons = array(); $icons["txt"] = "txt.png"; $icons["text"] = "txt.png"; $icons["doc"] = "word.png"; $icons["dot"] = "word.png"; $icons["docx"] = "word.png"; $icons["dotx"] = "word.png"; $icons["rtf"] = "document.png"; $icons["xls"] = "excel.png"; $icons["xlt"] = "excel.png"; $icons["xlsx"] = "excel.png"; $icons["xltx"] = "excel.png"; $icons["ppt"] = "powerpoint.png"; $icons["pot"] = "powerpoint.png"; $icons["pptx"] = "powerpoint.png"; $icons["potx"] = "powerpoint.png"; $icons["exe"] = "binary.png"; $icons["html"] = "html.png"; $icons["htm"] = "html.png"; $icons["gif"] = "image.png"; $icons["jpg"] = "image.png"; $icons["jpeg"] = "image.png"; $icons["bmp"] = "image.png"; $icons["png"] = "image.png"; $icons["tif"] = "image.png"; $icons["tiff"] = "image.png"; $icons["log"] = "log.png"; $icons["midi"] = "midi.png"; $icons["pdf"] = "pdf.png"; $icons["wav"] = "sound.png"; $icons["mp3"] = "sound.png"; $icons["c"] = "source_c.png"; $icons["cpp"] = "source_cpp.png"; $icons["h"] = "source_h.png"; $icons["java"] = "source_java.png"; $icons["py"] = "source_py.png"; $icons["tar"] = "tar.png"; $icons["gz"] = "gz.png"; $icons["7z"] = "gz.png"; $icons["bz"] = "gz.png"; $icons["bz2"] = "gz.png"; $icons["tgz"] = "gz.png"; $icons["zip"] = "gz.png"; $icons["mpg"] = "video.png"; $icons["avi"] = "video.png"; $icons["tex"] = "tex.png"; $icons["ods"] = "ooo_spreadsheet.png"; $icons["ots"] = "ooo_spreadsheet.png"; $icons["sxc"] = "ooo_spreadsheet.png"; $icons["stc"] = "ooo_spreadsheet.png"; $icons["odt"] = "ooo_textdocument.png"; $icons["ott"] = "ooo_textdocument.png"; $icons["sxw"] = "ooo_textdocument.png"; $icons["stw"] = "ooo_textdocument.png"; $icons["odp"] = "ooo_presentation.png"; $icons["otp"] = "ooo_presentation.png"; $icons["sxi"] = "ooo_presentation.png"; $icons["sti"] = "ooo_presentation.png"; $icons["odg"] = "ooo_drawing.png"; $icons["otg"] = "ooo_drawing.png"; $icons["sxd"] = "ooo_drawing.png"; $icons["std"] = "ooo_drawing.png"; $icons["odf"] = "ooo_formula.png"; $icons["sxm"] = "ooo_formula.png"; $icons["smf"] = "ooo_formula.png"; $icons["mml"] = "ooo_formula.png"; $icons["default"] = "default.png"; class UI { function getStyles() { /* {{{ */ global $settings; $themes = array(); $path = $settings->_rootDir . "styles/"; $handle = opendir($path); while ($entry = readdir($handle) ) { if ($entry == ".." || $entry == ".") continue; else if (is_dir($path . $entry)) array_push($themes, $entry); } closedir($handle); return $themes; } /* }}} */ function htmlStartPage($title="", $bodyClass="") { /* {{{ */ global $theme, $settings; if(file_exists("../themes/".$theme."/HTMLHead.html")) { include("../themes/".$theme."/HTMLHead.html"); } else { echo "\n"; echo "\n\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "".(strlen($settings->_siteName)>0 ? $settings->_siteName : "LetoDMS").(strlen($title)>0 ? ": " : "").htmlspecialchars($title)."\n"; echo "\n"; echo "0 ? " class=\"".$bodyClass."\"" : "").">\n"; } } /* }}} */ function htmlEndPage() { /* {{{ */ global $theme; UI::footNote(); if(file_exists("../themes/".$theme."/HTMLFoot.html")) { include("../themes/".$theme."/HTMLFoot.html"); } else { echo "\n\n"; } } /* }}} */ function footNote() { /* {{{ */ global $settings; if ($settings->_printDisclaimer){ echo "
      ".getMLText("disclaimer")."
      "; } if (isset($settings->_footNote) && strlen((string)$settings->_footNote)>0) { echo "
      ".(string)$settings->_footNote."
      "; } return; } /* }}} */ function globalBanner() { /* {{{ */ global $settings; echo "
      \n"; echo "
      \n"; echo "
      \n"; echo "
      ". (strlen($settings->_siteName)>0 ? $settings->_siteName : "LetoDMS"). "
      \n"; echo "
       
      \n". "
      \n"; return; } /* }}} */ function globalNavigation($folder=null) { /* {{{ */ global $settings, $user; echo "
      \n"; echo "
      \n"; echo "\n"; echo "
      \n"; echo "
      ". (strlen($settings->_siteName)>0 ? $settings->_siteName : "LetoDMS"). "
      \n"; echo "\n"; echo "
      ".getMLText("signed_in_as")." ".htmlspecialchars($user->getFullName()). " (".getMLText("sign_out").").
      \n"; echo "
       
      \n". "
      \n"; return; } /* }}} */ function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */ global $settings, $user; echo "
      \n"; // This spacer span is an awful hack, but it is the only way I know to // get the spacer to match the mainheading content's size. echo "".($settings->_titleDisplayHack ? $pageTitle : "")."\n"; echo "
      ".$pageTitle."
      \n"; echo "
      \n
      \n"; if ($pageType!=null && strcasecmp($pageType, "noNav")) { echo "
      \n"; switch ($pageType) { case "view_folder": UI::folderNavigationBar($extra); break; case "view_document": UI::documentNavigationBar(); break; case "my_documents": UI::myDocumentsNavigationBar(); break; case "my_account": UI::accountNavigationBar(); break; case "admin_tools": UI::adminToolsNavigationBar(); break; case "calendar"; UI::calendarNavigationBar($extra); break; } echo "
      \n
      \n"; } return; } /* }}} */ function folderNavigationBar($folder) { /* {{{ */ global $user, $settings, $theme; if (!is_object($folder) || strcasecmp(get_class($folder), "LetoDMS_Core_Folder")) { echo "
        \n"; echo "
      \n"; return; } $accessMode = $folder->getAccessMode($user); $folderID = $folder->getID(); echo "\n"; return; } /* }}} */ function documentNavigationBar() { /* {{{ */ global $user, $settings, $document; $accessMode = $document->getAccessMode($user); $docid=".php?documentid=" . $document->getID(); echo "\n"; return; } /* }}} */ function accountNavigationBar() { /* {{{ */ global $settings,$user; echo "\n"; return; } /* }}} */ function myDocumentsNavigationBar() { /* {{{ */ echo "\n"; return; } /* }}} */ function adminToolsNavigationBar() { /* {{{ */ global $settings; echo "\n"; return; } /* }}} */ function calendarNavigationBar($d){ /* {{{ */ global $settings,$user; $ds="&day=".$d[0]."&month=".$d[1]."&year=".$d[2]; echo "\n"; return; } /* }}} */ function pageList($pageNumber, $totalPages, $baseURI, $params) { /* {{{ */ if (!is_numeric($pageNumber) || !is_numeric($totalPages) || $totalPages<2) { return; } // Construct the basic URI based on the $_GET array. One could use a // regular expression to strip out the pg (page number) variable to // achieve the same effect. This seems to be less haphazard though... $resultsURI = $baseURI; $first=true; foreach ($params as $key=>$value) { // Don't include the page number in the basic URI. This is added in // during the list display loop. if (!strcasecmp($key, "pg")) { continue; } if (is_array($value)) { foreach ($value as $subvalue) { $resultsURI .= ($first ? "?" : "&").$key."%5B%5D=".$subvalue; $first = false; } } else { $resultsURI .= ($first ? "?" : "&").$key."=".$value; } $first = false; } echo "
      "; echo getMLText("results_page").": "; for ($i = 1; $i <= $totalPages; $i++) { if ($i == $pageNumber) echo "".$i." "; else echo "".$i.""." "; } if ($totalPages>1) { echo "".getMLText("all_pages").""." "; } echo "
      "; return; } /* }}} */ function contentContainer($content) { /* {{{ */ echo "
      \n"; echo "
      \n"; echo "
      \n"; echo $content; echo "
      \n
      \n
      \n"; return; } /* }}} */ function contentContainerStart() { /* {{{ */ echo "
      \n"; echo "
      \n"; echo "
      \n"; return; } /* }}} */ function contentContainerEnd() { /* {{{ */ echo "
      \n
      \n
      \n"; return; } /* }}} */ function contentHeading($heading, $noescape=false) { /* {{{ */ if($noescape) echo "
      ".$heading."
      \n"; else echo "
      ".htmlspecialchars($heading)."
      \n"; return; } /* }}} */ function contentSubHeading($heading, $first=false) { /* {{{ */ echo "
      ".htmlspecialchars($heading)."
      \n"; return; } /* }}} */ function getMimeIcon($fileType) { /* {{{ */ global $icons; $ext = strtolower(substr($fileType, 1)); if (isset($icons[$ext])) { return $icons[$ext]; } else { return $icons["default"]; } } /* }}} */ function printDateChooser($defDate = -1, $varName) { /* {{{ */ if ($defDate == -1) $defDate = mktime(); $day = date("d", $defDate); $month = date("m", $defDate); $year = date("Y", $defDate); print " \n"; print " \n"; print ""; } /* }}} */ function printSequenceChooser($objArr, $keepID = -1) { /* {{{ */ if (count($objArr) > 0) { $max = $objArr[count($objArr)-1]->getSequence() + 1; $min = $objArr[0]->getSequence() - 1; } else { $max = 1.0; } print ""; } /* }}} */ function printDocumentChooser($formName) { /* {{{ */ global $settings; ?> "; print ""; print "  "; } /* }}} */ function printFolderChooser($formName, $accessMode, $exclude = -1, $default = false) { /* {{{ */ global $settings; ?> getID() : "") ."\">"; print "getName()) : "") ."\">"; print "  "; } /* }}} */ function printCategoryChooser($formName, $categories=array()) { /* {{{ */ global $settings; ?> getId(); $names[] = htmlspecialchars($cat->getName()); } } print ""; print ""; print "  \"\""; print "  "; } /* }}} */ function getImgPath($img) { /* {{{ */ global $theme; if ( is_file("../styles/$theme/images/$img") ) { return "../styles/$theme/images/$img"; } else if ( is_file("../styles/$theme/img/$img") ) { return "../styles/$theme/img/$img"; } return "../out/images/$img"; } /* }}} */ function printImgPath($img) { /* {{{ */ print UI::getImgPath($img); } /* }}} */ function exitError($pagetitle,$error) { /* {{{ */ UI::htmlStartPage($pagetitle); UI::globalNavigation(); print "
      "; print htmlspecialchars($error); print "
      "; UI::htmlEndPage(); add_log_line(" UI::exitError error=".$error." pagetitle=".$pagetitle); exit; } /* }}} */ // navigation flag is used for items links (navigation or selection) function printFoldersTree($accessMode, $exclude, $folderID, $currentFolderID=-1, $navigation=false) { /* {{{ */ global $dms, $user, $form, $settings; if ($settings->_expandFolderTree==2){ // folder completely open $is_open=true; }else if ($settings->_expandFolderTree==1 && $folderID==$settings->_rootFolderID ){ $is_open=true; }else{ // open the tree until the current folder $is_open=false; if ($currentFolderID!=-1){ $currentFolder=$dms->getFolder($currentFolderID); if (is_object($currentFolder)){ $parent=$currentFolder->getParent(); while (is_object($parent)){ if ($parent->getID()==$folderID){ $is_open=true; break; } $parent=$parent->getParent(); } } } } $folder = $dms->getFolder($folderID); if (!is_object($folder)) return; $subFolders = $folder->getSubFolders(); $subFolders = LetoDMS_Core_DMS::filterAccess($subFolders, $user, M_READ); if ($folderID == $settings->_rootFolderID) print "
        \n"; print "
      • \n"; if (count($subFolders) > 0){ print "\n"; } else{ print "\n"; } if ($folder->getAccessMode($user) >= $accessMode) { if ($folderID != $currentFolderID){ if ($navigation) print ""; else print "getName())) . "')\">"; }else print ""; if ($is_open) print "".htmlspecialchars($folder->getName()); else print "".htmlspecialchars($folder->getName()); if ($folderID != $currentFolderID) print "\n"; else print ""; } else print "".htmlspecialchars($folder->getName())."\n"; if ($is_open) print "
          \n"; else print "\n"; if ($folderID == $settings->_rootFolderID) print "
        \n"; } /* }}} */ function printTreeNavigation($folderid,$showtree){ /* {{{ */ global $settings; ?> "; if ($showtree==1){ print ""; UI::contentHeading("", true); UI::contentContainerStart(); UI::printFoldersTree(M_READ, -1, $settings->_rootFolderID, $folderid, true); UI::contentContainerEnd(); }else{ print ""; UI::contentHeading("", true); UI::contentContainerStart(); UI::contentContainerEnd(); } print ""; } /* }}} */ /** * Output HTML Code for jumploader * * @param string $uploadurl URL where post data is send * @param integer $folderid id of folder where document is saved * @param integer $maxfiles maximum number of files allowed to upload * @param array $fields list of post fields */ function printUploadApplet($uploadurl, $attributes, $maxfiles=0, $fields=array()){ /* {{{ */ global $settings; ?>

        letodms-3.3.11+dfsg.1/inc/inc.Settings.php0000644000175000017500000000475612040235120020657 0ustar franciscofrancisco_configFilePath)."/ENABLE_INSTALL_TOOL")) { die("LetoDMS won't run unless your remove the file ENABLE_INSTALL_TOOL from your configuration directory."); } // ---------------------------- // Update previous version <3.0 // ---------------------------- if (isset($settingsOLD)) { $class_vars = get_class_vars(get_class($settingsOLD)); foreach ($class_vars as $name => $value) { if (property_exists ("Settings", $name)) $settings->$name = $value; } $settings->save(); echo "Update finish, you must delete " . realpath("../inc/inc.Settings.old.php") . " file"; exit; } if(isset($settings->_ADOdbPath)) ini_set('include_path', $settings->_ADOdbPath. PATH_SEPARATOR .ini_get('include_path')); ?> letodms-3.3.11+dfsg.1/inc/inc.ClassNotify.php0000644000175000017500000000302512040235120021301 0ustar franciscofrancisco * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010 Uwe Steinmann * @version Release: @package_version@ */ /** * Abstract class of notification systems * * @category DMS * @package LetoDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010 Uwe Steinmann * @version Release: @package_version@ */ abstract class LetoDMS_Notify { /* User sending the notification * Will only be used if the sender of one of the notify methods * is not set */ protected $sender; abstract function toIndividual($sender, $recipient, $subject, $message); abstract function toGroup($sender, $groupRecipient, $subject, $message); abstract function toList($sender, $recipients, $subject, $message); function replaceMarker($text) { global $settings; return(str_replace( array('###SITENAME###', '###HTTP_ROOT###', '###URL_PREFIX###'), array($settings->_siteName, $settings->_httpRoot, "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot), $text)); } function setSender($user) { $this->sender = $user; } } ?> letodms-3.3.11+dfsg.1/inc/inc.DBInit.php0000644000175000017500000000325012040235120020154 0ustar franciscofrancisco_coreDir)) require_once($settings->_coreDir.'/Core.php'); else require_once('LetoDMS/Core.php'); $db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); if(!$dms->checkVersion()) { echo "Database update needed."; exit; } $dms->setRootFolderID($settings->_rootFolderID); $dms->setMaxDirID($settings->_maxDirID); $dms->setEnableAdminRevApp($settings->_enableAdminRevApp); $dms->setEnableConverting($settings->_enableConverting); $dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes); ?> letodms-3.3.11+dfsg.1/inc/inc.LogInit.php0000644000175000017500000000234512040235120020414 0ustar franciscofrancisco_logFileEnable) { if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); else $logname=date("Ym", time()); $logger = Log::factory('file', $settings->_contentDir.$logname.'.log'); } else { $logger = null; } ?> letodms-3.3.11+dfsg.1/inc/inc.ClassSettings.php0000644000175000017500000010204212037245653021652 0ustar franciscofrancisco * @copyright Copyright (C) 2011 Uwe Steinmann * @version Release: @package_version@ */ /** * Class for reading and writing the configuration file * * @category DMS * @package LetoDMS * @author Uwe Steinmann * @copyright Copyright (C) 2011 Uwe Steinmann * @version Release: @package_version@ */ class Settings { /* {{{ */ // Config File Path var $_configFilePath = null; // Name of site var $_siteName = "letoDMS"; // Message to display at the bottom of every page. var $_footNote = "letoDMS free document management \"system - www.letodms.com"; // if true the disclaimer message the lang.inc files will be print on the bottom of the page var $_printDisclaimer = true; // Default page on login var $_siteDefaultPage = ""; // ID of guest-user used when logged in as guest var $_guestID = 2; // ID of root-folder var $_rootFolderID = 1; // If you want anybody to login as guest, set the following line to true var $_enableGuestLogin = false; // Allow users to reset their password var $_enablePasswordForgotten = false; // Restricted access: only allow users to log in if they have an entry in // the local database (irrespective of successful authentication with LDAP). var $_restricted = true; // abitray string used for creation of unique identifiers (e.g. the form // key created by createFormKey()) var $_encryptionKey = ''; // Strict form checking var $_strictFormCheck = false; // Path to where letoDMS is located var $_rootDir = null; // Path to LetoDMS_Core var $_coreDir = null; // Path to LetoDMS_Lucene var $_luceneClassDir = null; // The relative path in the URL, after the domain part. var $_httpRoot = "/letodms/"; // Where the uploaded files are stored (best to choose a directory that // is not accessible through your web-server) var $_contentDir = null; // Where the partitions of an uploaded file by the jumploader is saved var $_stagingDir = null; // Where the lucene fulltext index is saved var $_luceneDir = null; // Where the stop word file is located var $_stopWordsFile = null; // enable/disable lucene fulltext search var $_enableFullSearch = true; // contentOffsetDirTo var $_contentOffsetDir = "1048576"; // Maximum number of sub-directories per parent directory var $_maxDirID = 32700; // default language (name of a subfolder in folder "languages") var $_language = "English"; // users are notified about document-changes that took place within the last $_updateNotifyTime seconds var $_updateNotifyTime = 86400; // files with one of the following endings can be viewed online var $_viewOnlineFileTypes = array(); // enable/disable converting of files var $_enableConverting = false; // default style var $_theme = "clean"; // Workaround for page titles that go over more than 2 lines. var $_titleDisplayHack = true; // enable/disable automatic email notification var $_enableEmail = true; // enable/disable group and user view for all users var $_enableUsersView = true; // enable/disable listing administrator as reviewer/approver var $_enableAdminRevApp = false; // the name of the versioning info file created by the backup tool var $_versioningFileName = "versioning_info.txt"; // enable/disable log system var $_logFileEnable = true; // the log file rotation var $_logFileRotation = "d"; // Enable file upload by jumploader var $_enableLargeFileUpload = false; // size of partitions for file upload by jumploader var $_partitionSize = 2000000; // enable/disable users images var $_enableUserImage = false; // enable/disable calendar var $_enableCalendar = true; // calendar default view ("w" for week,"m" for month,"y" for year) var $_calendarDefaultView = "y"; // first day of the week (0=sunday, 1=monday, 6=saturday) var $_firstDayOfWeek = 0; // enable/disable display of the folder tree var $_enableFolderTree = true; // expandFolderTree var $_expandFolderTree = 1; // enable/disable editing of users own profile var $_disableSelfEdit = false; // if enabled admin can login only by specified IP addres var $_adminIP = ""; // Max Execution Time var $_maxExecutionTime = null; // Path to adodb var $_ADOdbPath = null; // DB-Driver used by adodb (see adodb-readme) var $_dbDriver = "mysql"; // DB-Server var $_dbHostname = "localhost"; // database where the tables for mydms are stored (optional - see adodb-readme) var $_dbDatabase = null; // username for database-access var $_dbUser = null; // password for database-access var $_dbPass = null; // SMTP : server var $_smtpServer = null; // SMTP : port var $_smtpPort = null; // SMTP : send from var $_smtpSendFrom = null; // LDAP var $_ldapHost = ""; // URIs are supported, e.g.: ldaps://ldap.host.com var $_ldapPort = 389; // Optional. var $_ldapBaseDN = ""; var $_ldapAccountDomainName = ""; var $_ldapType = 1; // 0 = ldap; 1 = AD /** * Constructor * * @param string $configFilePath path to config file */ function Settings($configFilePath='') { /* {{{ */ if($configFilePath=='') { $configFilePath = $this->searchConfigFilePath(); // set $_configFilePath $this->_configFilePath = $configFilePath; } else { $this->_configFilePath = $configFilePath; } // Load config file if (!defined("LETODMS_INSTALL")) { if(!file_exists($configFilePath)) { echo "You does not seem to have a valid configuration. Run the install tool first."; exit; } } $this->load($configFilePath); // files with one of the following endings will be converted with the // given commands for windows users $this->_convertFileTypes = array(".doc" => "cscript \"" . $this->_rootDir."op/convert_word.js\" {SOURCE} {TARGET}", ".xls" => "cscript \"".$this->_rootDir."op/convert_excel.js\" {SOURCE} {TARGET}", ".ppt" => "cscript \"".$this->_rootDir."op/convert_pp.js\" {SOURCE} {TARGET}"); // uncomment the next line for linux users // $this->_convertFileTypes = array(".doc" => "mswordview -o {TARGET} {SOURCE}"); if (!is_null($this->_smtpServer)) ini_set("SMTP", $this->_smtpServer); if (!is_null($this->_smtpPort)) ini_set("smtp_port", $this->_smtpPort); if (!is_null($this->_smtpSendFrom)) ini_set("sendmail_from", $this->_smtpSendFrom); if (!is_null($this->_maxExecutionTime)) ini_set("max_execution_time", $this->_maxExecutionTime); } /* }}} */ /** * Check if a variable has the string 'true', 'on', 'yes' or 'y' * and returns true. * * @param string $var value * @return true/false */ function boolVal($var) { /* {{{ */ $var = strtolower(strval($var)); switch ($var) { case 'true': case 'on': case 'yes': case 'y': $out = true; break; default: $out = false; } return $out; } /* }}} */ /** * set $_viewOnlineFileTypes * * @param string $stringValue string value * */ function setViewOnlineFileTypesFromString($stringValue) { /* {{{ */ $this->_viewOnlineFileTypes = explode(";", $stringValue); } /* }}} */ /** * get $_viewOnlineFileTypes in a string value * * @return string value * */ function getViewOnlineFileTypesToString() { /* {{{ */ return implode(";", $this->_viewOnlineFileTypes); } /* }}} */ /** * Load config file * * @param string $configFilePath config file path * * @return true/false */ function load($configFilePath) { /* {{{ */ $xml = simplexml_load_string(file_get_contents($configFilePath)); // XML Path: /configuration/site/display $node = $xml->xpath('/configuration/site/display'); $tab = $node[0]->attributes(); $this->_siteName = strval($tab["siteName"]); $this->_footNote = strval($tab["footNote"]); $this->_printDisclaimer = Settings::boolVal($tab["printDisclaimer"]); $this->_language = strval($tab["language"]); $this->_theme = strval($tab["theme"]); // XML Path: /configuration/site/edition $node = $xml->xpath('/configuration/site/edition'); $tab = $node[0]->attributes(); $this->_strictFormCheck = Settings::boolVal($tab["strictFormCheck"]); $this->setViewOnlineFileTypesFromString(strval($tab["viewOnlineFileTypes"])); $this->_enableConverting = Settings::boolVal($tab["enableConverting"]); $this->_enableEmail = Settings::boolVal($tab["enableEmail"]); $this->_enableUsersView = Settings::boolVal($tab["enableUsersView"]); $this->_enableFolderTree = Settings::boolVal($tab["enableFolderTree"]); $this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]); $this->_stopWordsFile = strval($tab["stopWordsFile"]); $this->_expandFolderTree = intval($tab["expandFolderTree"]); // XML Path: /configuration/site/calendar $node = $xml->xpath('/configuration/site/calendar'); $tab = $node[0]->attributes(); $this->_enableCalendar = Settings::boolVal($tab["enableCalendar"]); $this->_calendarDefaultView = strval($tab["calendarDefaultView"]); $this->_firstDayOfWeek = intval($tab["firstDayOfWeek"]); // XML Path: /configuration/system/server $node = $xml->xpath('/configuration/system/server'); $tab = $node[0]->attributes(); $this->_rootDir = strval($tab["rootDir"]); $this->_httpRoot = strval($tab["httpRoot"]); $this->_contentDir = strval($tab["contentDir"]); $this->_stagingDir = strval($tab["stagingDir"]); $this->_luceneDir = strval($tab["luceneDir"]); $this->_logFileEnable = Settings::boolVal($tab["logFileEnable"]); $this->_logFileRotation = strval($tab["logFileRotation"]); $this->_enableLargeFileUpload = Settings::boolVal($tab["enableLargeFileUpload"]); $this->_partitionSize = strval($tab["partitionSize"]); // XML Path: /configuration/system/authentication $node = $xml->xpath('/configuration/system/authentication'); $tab = $node[0]->attributes(); $this->_enableGuestLogin = Settings::boolVal($tab["enableGuestLogin"]); $this->_enablePasswordForgotten = Settings::boolVal($tab["enablePasswordForgotten"]); $this->_encryptionKey = strval($tab["encryptionKey"]); $this->_restricted = Settings::boolVal($tab["restricted"]); $this->_enableUserImage = Settings::boolVal($tab["enableUserImage"]); $this->_disableSelfEdit = Settings::boolVal($tab["disableSelfEdit"]); // XML Path: /configuration/system/authentication/connectors/connector // attributs mandatories : type enable $node = $xml->xpath('/configuration/system/authentication/connectors/connector'); $this->_usersConnectors = array(); foreach($node as $connectorNode) { $typeConn = strval($connectorNode["type"]); $params = array(); foreach($connectorNode->attributes() as $attKey => $attValue) { if ($attKey=="enable") $params[$attKey] = Settings::boolVal($attValue); else $params[$attKey] = strval($attValue); } $this->_usersConnectors[$typeConn] = $params; // manage old settings parameters if ($params['enable'] && ($typeConn == "ldap")) { $this->_ldapHost = strVal($connectorNode["host"]); $this->_ldapPort = intVal($connectorNode["port"]); $this->_ldapBaseDN = strVal($connectorNode["baseDN"]); $this->_ldapType = 0; } else if ($params['enable'] && ($typeConn == "AD")) { $this->_ldapHost = strVal($connectorNode["host"]); $this->_ldapPort = intVal($connectorNode["port"]); $this->_ldapBaseDN = strVal($connectorNode["baseDN"]); $this->_ldapType = 1; $this->_ldapAccountDomainName = strVal($connectorNode["accountDomainName"]); } } // XML Path: /configuration/system/database $node = $xml->xpath('/configuration/system/database'); $tab = $node[0]->attributes(); $this->_ADOdbPath = strval($tab["ADOdbPath"]); $this->_dbDriver = strval($tab["dbDriver"]); $this->_dbHostname = strval($tab["dbHostname"]); $this->_dbDatabase = strval($tab["dbDatabase"]); $this->_dbUser = strval($tab["dbUser"]); $this->_dbPass = strval($tab["dbPass"]); // XML Path: /configuration/system/smtp $node = $xml->xpath('/configuration/system/smtp'); if (!empty($node)) { $tab = $node[0]->attributes(); // smtpServer if (isset($tab["smtpServer"])) $this->_smtpServer = strval($tab["smtpServer"]); else $this->_smtpServer = ini_get("SMTP"); // smtpPort if (isset($tab["smtpPort"])) $this->_smtpPort = strval($tab["smtpPort"]); else $this->_smtpPort = ini_get("smtp_port"); // smtpSendFrom if (isset($tab["smtpSendFrom"])) $this->_smtpSendFrom = strval($tab["smtpSendFrom"]); else $this->_smtpSendFrom = ini_get("sendmail_from"); } // XML Path: /configuration/advanced/display $node = $xml->xpath('/configuration/advanced/display'); $tab = $node[0]->attributes(); $this->_siteDefaultPage = strval($tab["siteDefaultPage"]); $this->_rootFolderID = intval($tab["rootFolderID"]); $this->_titleDisplayHack = Settings::boolval($tab["titleDisplayHack"]); // XML Path: /configuration/advanced/authentication $node = $xml->xpath('/configuration/advanced/authentication'); $tab = $node[0]->attributes(); $this->_guestID = intval($tab["guestID"]); $this->_adminIP = strval($tab["adminIP"]); // XML Path: /configuration/advanced/edition $node = $xml->xpath('/configuration/advanced/edition'); $tab = $node[0]->attributes(); $this->_enableAdminRevApp = Settings::boolval($tab["enableAdminRevApp"]); $this->_versioningFileName = strval($tab["versioningFileName"]); // XML Path: /configuration/advanced/server $node = $xml->xpath('/configuration/advanced/server'); $tab = $node[0]->attributes(); $this->_coreDir = strval($tab["coreDir"]); $this->_luceneClassDir = strval($tab["luceneClassDir"]); $this->_contentOffsetDir = strval($tab["contentOffsetDir"]); $this->_maxDirID = intval($tab["maxDirID"]); $this->_updateNotifyTime = intval($tab["updateNotifyTime"]); if (isset($tab["maxExecutionTime"])) $this->_maxExecutionTime = intval($tab["maxExecutionTime"]); else $this->_maxExecutionTime = ini_get("max_execution_time"); } /* }}} */ /** * set value for one attribut. * Create attribut if not exists. * * @param SimpleXMLElement $node node * @param string $attributName attribut name * @param string $attributValue attribut value * * @return true/false */ function setXMLAttributValue($node, $attributName, $attributValue) { /* {{{ */ if (is_bool($attributValue)) { if ($attributValue) $attributValue = "true"; else $attributValue = "false"; } if (isset($node[$attributName])) { $node[$attributName] = $attributValue; } else { $node->addAttribute($attributName, $attributValue); } } /* }}} */ /** * Get XML node, create it if not exists * * @param SimpleXMLElement $rootNode root node * @param string $parentNodeName parent node name * @param string $name name of node * * @return SimpleXMLElement */ function getXMLNode($rootNode, $parentNodeName, $name) { /* {{{ */ $node = $rootNode->xpath($parentNodeName . '/' . $name); if (empty($node)) { $node = $rootNode->xpath($parentNodeName); $node = $node[0]->addChild($name); } else { $node = $node[0]; } return $node; } /* }}} */ /** * Save config file * * @param string $configFilePath config file path * * @return true/false */ function save($configFilePath=NULL) { /* {{{ */ if (is_null($configFilePath)) $configFilePath = $this->_configFilePath; // Load $xml = simplexml_load_string(file_get_contents($configFilePath)); $this->getXMLNode($xml, '/', 'configuration'); // XML Path: /configuration/site/display $this->getXMLNode($xml, '/configuration', 'site'); $node = $this->getXMLNode($xml, '/configuration/site', 'display'); $this->setXMLAttributValue($node, "siteName", $this->_siteName); $this->setXMLAttributValue($node, "footNote", $this->_footNote); $this->setXMLAttributValue($node, "printDisclaimer", $this->_printDisclaimer); $this->setXMLAttributValue($node, "language", $this->_language); $this->setXMLAttributValue($node, "theme", $this->_theme); // XML Path: /configuration/site/edition $node = $this->getXMLNode($xml, '/configuration/site', 'edition'); $this->setXMLAttributValue($node, "strictFormCheck", $this->_strictFormCheck); $this->setXMLAttributValue($node, "viewOnlineFileTypes", $this->getViewOnlineFileTypesToString()); $this->setXMLAttributValue($node, "enableConverting", $this->_enableConverting); $this->setXMLAttributValue($node, "enableEmail", $this->_enableEmail); $this->setXMLAttributValue($node, "enableUsersView", $this->_enableUsersView); $this->setXMLAttributValue($node, "enableFolderTree", $this->_enableFolderTree); $this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch); $this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree); $this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile); // XML Path: /configuration/site/calendar $node = $this->getXMLNode($xml, '/configuration/site', 'calendar'); $this->setXMLAttributValue($node, "enableCalendar", $this->_enableCalendar); $this->setXMLAttributValue($node, "calendarDefaultView", $this->_calendarDefaultView); $this->setXMLAttributValue($node, "firstDayOfWeek", $this->_firstDayOfWeek); // XML Path: /configuration/system/server $this->getXMLNode($xml, '/configuration', 'system'); $node = $this->getXMLNode($xml, '/configuration/system', 'server'); $this->setXMLAttributValue($node, "rootDir", $this->_rootDir); $this->setXMLAttributValue($node, "httpRoot", $this->_httpRoot); $this->setXMLAttributValue($node, "contentDir", $this->_contentDir); $this->setXMLAttributValue($node, "stagingDir", $this->_stagingDir); $this->setXMLAttributValue($node, "luceneDir", $this->_luceneDir); $this->setXMLAttributValue($node, "logFileEnable", $this->_logFileEnable); $this->setXMLAttributValue($node, "logFileRotation", $this->_logFileRotation); $this->setXMLAttributValue($node, "enableLargeFileUpload", $this->_enableLargeFileUpload); $this->setXMLAttributValue($node, "partitionSize", $this->_partitionSize); // XML Path: /configuration/system/authentication $node = $this->getXMLNode($xml, '/configuration/system', 'authentication'); $this->setXMLAttributValue($node, "enableGuestLogin", $this->_enableGuestLogin); $this->setXMLAttributValue($node, "enablePasswordForgotten", $this->_enablePasswordForgotten); $this->setXMLAttributValue($node, "encryptionKey", $this->_encryptionKey); $this->setXMLAttributValue($node, "restricted", $this->_restricted); $this->setXMLAttributValue($node, "enableUserImage", $this->_enableUserImage); $this->setXMLAttributValue($node, "disableSelfEdit", $this->_disableSelfEdit); // XML Path: /configuration/system/authentication/connectors foreach($this->_usersConnectors as $keyConn => $paramConn) { // search XML node $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="'. $keyConn .'"]'); // Just the first is configured if (isset($node)) { if (count($node)>0) { $node = $node[0]; } else { $nodeParent = $xml->xpath('/configuration/system/authentication/connectors'); $node = $nodeParent[0]->addChild("connector"); } foreach($paramConn as $key => $value) { $this->setXMLAttributValue($node, $key, $value); } } // isset($node) } // foreach // XML Path: /configuration/system/authentication/connectors // manage old settings parameters if (isset($this->_ldapHost) && (strlen($this->_ldapHost)>0)) { if ($this->_ldapType == 1) { $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="AD"]'); $node = $node[0]; $this->setXMLAttributValue($node, "accountDomainName", $this->_ldapAccountDomainName); } else { $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="ldap"]'); $node = $node[0]; } $this->setXMLAttributValue($node, "host", $this->_ldapHost); $this->setXMLAttributValue($node, "port", $this->_ldapPort); $this->setXMLAttributValue($node, "baseDN", $this->_ldapBaseDN); } // XML Path: /configuration/system/database $node = $this->getXMLNode($xml, '/configuration/system', 'database'); $this->setXMLAttributValue($node, "ADOdbPath", $this->_ADOdbPath); $this->setXMLAttributValue($node, "dbDriver", $this->_dbDriver); $this->setXMLAttributValue($node, "dbHostname", $this->_dbHostname); $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); // XML Path: /configuration/system/smtp $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); $this->setXMLAttributValue($node, "smtpServer", $this->_smtpServer); $this->setXMLAttributValue($node, "smtpPort", $this->_smtpPort); $this->setXMLAttributValue($node, "smtpSendFrom", $this->_smtpSendFrom); // XML Path: /configuration/advanced/display $this->getXMLNode($xml, '/configuration', 'advanced'); $node = $this->getXMLNode($xml, '/configuration/advanced', 'display'); $this->setXMLAttributValue($node, "siteDefaultPage", $this->_siteDefaultPage); $this->setXMLAttributValue($node, "rootFolderID", $this->_rootFolderID); $this->setXMLAttributValue($node, "titleDisplayHack", $this->_titleDisplayHack); // XML Path: /configuration/advanced/authentication $node = $this->getXMLNode($xml, '/configuration/advanced', 'authentication'); $this->setXMLAttributValue($node, "guestID", $this->_guestID); $this->setXMLAttributValue($node, "adminIP", $this->_adminIP); // XML Path: /configuration/advanced/edition $node = $this->getXMLNode($xml, '/configuration/advanced', 'edition'); $this->setXMLAttributValue($node, "enableAdminRevApp", $this->_enableAdminRevApp); $this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName); // XML Path: /configuration/advanced/server $node = $this->getXMLNode($xml, '/configuration/advanced', 'server'); $this->setXMLAttributValue($node, "coreDir", $this->_coreDir); $this->setXMLAttributValue($node, "luceneClassDir", $this->_luceneClassDir); $this->setXMLAttributValue($node, "contentOffsetDir", $this->_contentOffsetDir); $this->setXMLAttributValue($node, "maxDirID", $this->_maxDirID); $this->setXMLAttributValue($node, "updateNotifyTime", $this->_updateNotifyTime); $this->setXMLAttributValue($node, "maxExecutionTime", $this->_maxExecutionTime); // Save return $xml->asXML($configFilePath); } /* }}} */ /** * search and return Config File Path * @return NULL|string Config File Path */ function searchConfigFilePath() { /* {{{ */ $configFilePath = null; if($configDir = $this->getConfigDir()) { if (file_exists($configDir."/settings.xml")) return $configDir."/settings.xml"; } return $configFilePath; } /* }}} */ /** * Returns absolute path for configuration files respecting links * * This function checks three directories for a configuration directory * 1. The directory where the current script is located adding '/conf' * 2. The parent directory of the current script adding '/conf' * 3. The directory /etc/letodms * @return NULL|string config directory */ function getConfigDir() { /* {{{ */ $_tmp = dirname($_SERVER['SCRIPT_FILENAME']); $_arr = preg_split('/\//', $_tmp); $configDir = null; if(file_exists(implode('/', $_arr)."/conf/")) $configDir = implode('/', $_arr)."/conf/"; else { array_pop($_arr); if(file_exists(implode('/', $_arr)."/conf/")) { $configDir = implode('/', $_arr)."/conf/"; } else { if(file_exists('/etc/letodms')) $configDir = '/etc/letodms'; } } return $configDir; } /* }}} */ /** * get URL from current page * * @return string */ function curPageURL() { /* {{{ */ $pageURL = 'http'; if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } /* }}} */ /** * Searches a file in the include_path * * @param string $file name of file to search * @return string path where file was found */ function findInIncPath($file) { /* {{{ */ $incarr = explode(':', ini_get('include_path')); $found = ''; foreach($incarr as $path) { if(file_exists($path.'/'.$file)) { $found = $path; } } return $found; } /* }}} */ /** * Check parameters * * @return array */ function check($minversion) { /* {{{ */ // suggestion rootdir if (file_exists("../inc/inc.Settings.php")) $rootDir = realpath ("../inc/inc.Settings.php"); else if (file_exists("inc/inc.Settings.php")) $rootDir = realpath ("inc/inc.Settings.php"); else { echo "Fatal error : inc/inc.Settings.php not found"; exit; } $rootDir = str_replace ("\\", "/" , $rootDir); $rootDir = str_replace ("inc/inc.Settings.php", "" , $rootDir); // result $result = array(); // $this->_rootDir if (!file_exists($this->_rootDir ."inc/inc.Settings.php")) { $result["rootDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_rootDir, "suggestionvalue" => $rootDir ); } // TODO // $this->_coreDir if($this->_coreDir) { if (!file_exists($this->_coreDir ."Core.php")) { $result["coreDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_coreDir, "suggestionvalue" => $rootDir ); } } else { $found = Settings::findInIncPath('LetoDMS/Core.php'); if(!$found) { $result["coreDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_coreDir, "suggestionvalue" => $rootDir ); } } // $this->_httpRoot $tmp = $this->curPageURL(); $tmp = str_replace ("install.php", "" , $tmp); if (strpos($tmp, $this->_httpRoot) === false) { $result["httpRoot"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_httpRoot, "suggestionvalue" => $tmp ); } // $this->_contentDir if (!file_exists($this->_contentDir)) { if (file_exists($rootDir.'data/')) { $result["contentDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_contentDir, "suggestionvalue" => $rootDir . 'data/' ); } else { $result["contentDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_contentDir, "suggestion" => "createdirectory" ); } } else { $errorMsgPerms = null; // perms if (!@mkdir($this->_contentDir.'/_CHECK_TEST_')) { $errorMsgPerms .= "Create folder - "; } else { if (is_bool(file_put_contents($this->_contentDir.'/_CHECK_TEST_/_CHECK_TEST_', ""))) { $errorMsgPerms .= "Create file - "; } else { if (!unlink ($this->_contentDir.'/_CHECK_TEST_/_CHECK_TEST_')) { $errorMsgPerms .= "Delete file - "; } } if (!rmdir($this->_contentDir.'/_CHECK_TEST_')) { $errorMsgPerms .= "Delete folder"; } } if (!is_null($errorMsgPerms)) { $result["contentDir"] = array( "status" => "perms", "type" => "error", "currentvalue" => $this->_contentDir, "systemerror" => $errorMsgPerms ); } } // $this->_stagingDir if (!file_exists($this->_stagingDir)) { $result["stagingDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_stagingDir, "suggestionvalue" => $this->_contentDir . 'staging/' ); } // $this->_luceneDir if (!file_exists($this->_luceneDir)) { $result["luceneDir"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_luceneDir, "suggestionvalue" => $this->_contentDir . 'lucene/' ); } // $this->_ADOdbPath $bCheckDB = true; if($this->_ADOdbPath) { if (!file_exists($this->_ADOdbPath."/adodb/adodb.inc.php")) { $bCheckDB = false; if (file_exists($rootDir."adodb/adodb.inc.php")) { $result["ADOdbPath"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_ADOdbPath, "suggestionvalue" => $rootDir ); } else { $result["ADOdbPath"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_ADOdbPath, "suggestion" => "installADOdb" ); } } } else { $found = Settings::findInIncPath('adodb/adodb.inc.php'); if(!$found) { $bCheckDB = false; $result["ADOdbPath"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_ADOdbPath, "suggestion" => "installADOdb" ); } } // database if ($bCheckDB) { try { include $this->_ADOdbPath."adodb/adodb.inc.php"; $connTmp = ADONewConnection($this->_dbDriver); if (!$connTmp) { $result["dbDriver"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_dbDriver, "suggestionvalue" => "mysql" ); } else { $connTmp->Connect($this->_dbHostname, $this->_dbUser, $this->_dbPass, $this->_dbDatabase); if (!$connTmp->IsConnected()) { $result["dbDatabase"] = array( "status" => "error", "type" => "error", "currentvalue" => '[host, user, database] -> [' . $this->_dbHostname . ',' . $this->_dbUser . ',' . $this->_dbDatabase .']', "systemerror" => $connTmp->ErrorMsg() ); } else { /* Check if there wasn't a previous error while searching for * LetoDMS_Core. */ if(!isset($result["coreDir"])) { /* Instanciate LetoDMS_Core to check version */ if(!empty($this->_coreDir)) require_once($this->_coreDir.'/Core.php'); else require_once('LetoDMS/Core.php'); $tmpcore = new LetoDMS_Core_DMS(null, $this->_contentDir); $db = new LetoDMS_Core_DatabaseAccess($this->_dbDriver, $this->_dbHostname, $this->_dbUser, $this->_dbPass, $this->_dbDatabase); if(!$db->connect()) { $result["dbDatabase"] = array( "status" => "error", "type" => "error", "currentvalue" => '[host, user, database] -> [' . $this->_dbHostname . ',' . $this->_dbUser . ',' . $this->_dbDatabase .']', "systemerror" => $connTmp->ErrorMsg() ); } else { /* $dms = new LetoDMS_Core_DMS($db, $this->_contentDir.$this->_contentOffsetDir); if(!$dms->checkVersion()) { $result["dbVersion"] = array( "status" => "error", "type" => "error", "currentvalue" => $dms->version, "suggestion" => 'updateDatabase' ); } */ } } } $connTmp->Disconnect(); } } catch(Exception $e) { $result["dbDatabase"] = array( "status" => "error", "type" => "error", "currentvalue" => '[host, user, database] -> [' . $settings->_dbHostname . ',' . $settings->_dbUser . ',' . $settings->_dbDatabase .']', "systemerror" => $e->getMessage() ); } } return $result; } /* }}} */ /** * Check system configuration * * @return array * */ function checkSystem() { /* {{{ */ // result $result = array(); // Check Apache configuration if (function_exists("apache_get_version")) { $loaded_extensions = apache_get_modules(); if (!in_array("mod_rewrite", $loaded_extensions)) { $result["apache_mod_rewrite"] = array( "status" => "notfound", "type" => "error", "suggestion" => "activate_module" ); } } // Check PHP configuration $loaded_extensions = get_loaded_extensions(); // gd2 if (!in_array("gd", $loaded_extensions)) { $result["php_gd2"] = array( "status" => "notfound", "type" => "error", "suggestion" => "activate_php_extension" ); } // mbstring if (!in_array("mbstring", $loaded_extensions)) { $result["php_mbstring"] = array( "status" => "notfound", "type" => "error", "suggestion" => "activate_php_extension" ); } // database if (!in_array($this->_dbDriver, $loaded_extensions)) { $result["php_dbDriver"] = array( "status" => "notfound", "type" => "error", "currentvalue" => $this->_dbDriver, "suggestion" => "activate_php_extension" ); } // Check for Log.php if (!Settings::findInIncPath('Log.php')) { $result["pear_log"] = array( "status" => "notfound", "type" => "error", "suggestion" => "install_pear_package_log" ); } // Check for HTTP/WebDAV/Server.php if (!Settings::findInIncPath('HTTP/WebDAV/Server.php')) { $result["pear_webdav"] = array( "status" => "notfound", "type" => "warning", "suggestion" => "install_pear_package_webdav" ); } // Check for Zend/Search/Lucene.php if (!Settings::findInIncPath('Zend/Search/Lucene.php')) { $result["zendframework"] = array( "status" => "notfound", "type" => "warning", "suggestion" => "install_zendframework" ); } return $result; } /* }}} */ } /* }}} */ ?> letodms-3.3.11+dfsg.1/inc/inc.Calendar.php0000644000175000017500000001713112040235120020557 0ustar franciscofrancisco= " . $date; $ret = $db->getResultArray($queryStr); return $ret; } function getEventsInInterval($start, $stop){ global $db; $queryStr = "SELECT * FROM tblEvents WHERE ( start <= " . (int) $start . " AND stop >= " . (int) $start . " ) ". "OR ( start <= " . (int) $stop . " AND stop >= " . (int) $stop . " ) ". "OR ( start >= " . (int) $start . " AND stop <= " . (int) $stop . " )"; $ret = $db->getResultArray($queryStr); return $ret; } function addEvent($from, $to, $name, $comment ){ global $db,$user; $queryStr = "INSERT INTO tblEvents (name, comment, start, stop, date, userID) VALUES ". "(".$db->qstr($name).", ".$db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".mktime().", ".$user->getID().")"; $ret = $db->getResult($queryStr); return $ret; } function getEvent($id){ if (!is_numeric($id)) return false; global $db; $queryStr = "SELECT * FROM tblEvents WHERE id = " . (int) $id; $ret = $db->getResultArray($queryStr); if (is_bool($ret) && $ret == false) return false; else if (count($ret) != 1) return false; return $ret[0]; } function editEvent($id, $from, $to, $name, $comment ){ if (!is_numeric($id)) return false; global $db; $queryStr = "UPDATE tblEvents SET start = " . (int) $from . ", stop = " . (int) $to . ", name = " . $db->qstr($name) . ", comment = " . $db->qstr($comment) . ", date = " . mktime() . " WHERE id = ". (int) $id; $ret = $db->getResult($queryStr); return $ret; } function delEvent($id){ if (!is_numeric($id)) return false; global $db; $queryStr = "DELETE FROM tblEvents WHERE id = " . (int) $id; $ret = $db->getResult($queryStr); return $ret; } // utilities /////////////////////////////////////////////////////////////////// function generateCalendarArrays() { global $dayNames,$monthNames,$dayNamesLong; $monthNames = array( getMLText("january"), getMLText("february"), getMLText("march"), getMLText("april"), getMLText("may"), getMLText("june"), getMLText("july"), getMLText("august"), getMLText("september"), getMLText("october"), getMLText("november"), getMLText("december") ); $dayNamesLong = array( getMLText("sunday"), getMLText("monday"), getMLText("tuesday"), getMLText("wednesday"), getMLText("thursday"), getMLText("friday"), getMLText("saturday") ); $dayNames = array(); foreach ( $dayNamesLong as $dn ){ $dayNames[] = substr($dn,0,2); } } // Calculate the number of days in a month, taking into account leap years. function getDaysInMonth($month, $year) { if ($month < 1 || $month > 12) return 0; $daysInMonth = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $d = $daysInMonth[$month - 1]; if ($month == 2){ if ($year%4 == 0){ if ($year%100 == 0){ if ($year%400 == 0) $d = 29; } else $d = 29; } } return $d; } // Adjust dates to allow months > 12 and < 0 and day<0 or day>days of the month function adjustDate(&$day,&$month,&$year) { $d=getDate(mktime(12,0,0, $month, $day, $year)); $month=$d["mon"]; $day=$d["mday"]; $year=$d["year"]; } // output ////////////////////////////////////////////////////////////////////// // Generate the HTML for a given month function getMonthHTML($month, $year) { global $dayNames,$monthNames,$settings; if (!isset($monthNames)) generateCalendarArrays(); if (!isset($dayNames)) generateCalendarArrays(); $startDay = $settings->_firstDayOfWeek; $day=1; adjustDate($day,$month,$year); $daysInMonth = getDaysInMonth($month, $year); $date = getdate(mktime(12, 0, 0, $month, 1, $year)); $first = $date["wday"]; $monthName = $monthNames[$month - 1]; $s = "\n"; $s .= "\n"; $s .= "\n"; ; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; // We need to work out what date to start at so that the first appears in the correct column $d = $startDay + 1 - $first; while ($d > 1) $d -= 7; // Make sure we know when today is, so that we can use a different CSS style $today = getdate(time()); while ($d <= $daysInMonth) { $s .= "\n"; for ($i = 0; $i < 7; $i++){ $class = ($year == $today["year"] && $month == $today["mon"] && $d == $today["mday"]) ? "today" : ""; $s .= "\n"; $d++; } $s .= "\n"; } $s .= "
        ".$monthName."
        " . $dayNames[($startDay)%7] . "" . $dayNames[($startDay+1)%7] . "" . $dayNames[($startDay+2)%7] . "" . $dayNames[($startDay+3)%7] . "" . $dayNames[($startDay+4)%7] . "" . $dayNames[($startDay+5)%7] . "" . $dayNames[($startDay+6)%7] . "
        "; if ($d > 0 && $d <= $daysInMonth){ $s .= "".$d.""; } else $s .= " "; $s .= "
        \n"; return $s; } function printYearTable($year) { print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
        " . getMonthHTML(1 , $year) ."" . getMonthHTML(2 , $year) ."" . getMonthHTML(3 , $year) ."" . getMonthHTML(4 , $year) ."
        " . getMonthHTML(5 , $year) ."" . getMonthHTML(6 , $year) ."" . getMonthHTML(7 , $year) ."" . getMonthHTML(8 , $year) ."
        " . getMonthHTML(9 , $year) ."" . getMonthHTML(10, $year) ."" . getMonthHTML(11, $year) ."" . getMonthHTML(12, $year) ."
        \n"; } ?> letodms-3.3.11+dfsg.1/out/0000755000175000017500000000000012056110655015634 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/out/out.PasswordForgotten.php0000644000175000017500000000405512040235120022635 0ustar franciscofrancisco
        0) { echo ""; } ?>

        ">

        letodms-3.3.11+dfsg.1/out/out.AddFile.php0000644000175000017500000000734612040235120020441 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); ?>

        :
        :
        :

        ">

        letodms-3.3.11+dfsg.1/out/out.IndexInfo.php0000644000175000017500000000364312040235120021030 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $v = new LetoDMS_Version; UI::htmlStartPage(getMLText('fulltext_info')); UI::globalNavigation(); UI::pageNavigation(getMLText('fulltext_info')); UI::contentContainerStart(); if($settings->_enableFullSearch) { if(!empty($settings->_luceneClassDir)) require_once($settings->_luceneClassDir.'/Lucene.php'); else require_once('LetoDMS/Lucene.php'); $index = Zend_Search_Lucene::open($settings->_luceneDir); $terms = $index->terms(); echo "

        ".count($terms)." Terms

        "; echo "
        ";
        	foreach($terms as $term) {
        		echo $term->field.":".$term->text."\n";
        	}
        	echo "
        "; } else { printMLText("fulltextsearch_disabled"); } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.EditFolder.php0000644000175000017500000000712012040235120021160 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); ?>
        getID() == $settings->_rootFolderID) ? false : $folder->getParent(); if ($parent && $parent->getAccessMode($user) > M_READ) { print ""; print ""; print "\n"; } ?>
        :
        :
        " . getMLText("sequence") . ":"; UI::printSequenceChooser($parent->getSubFolders(), $folder->getID()); print "
        ">
        letodms-3.3.11+dfsg.1/out/out.EditComment.php0000644000175000017500000000663612040235120021362 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; $versionid = $_GET["version"]; $version = $document->getContentByVersion($versionid); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); ?>
        :

        ">
        letodms-3.3.11+dfsg.1/out/out.RemoveEvent.php0000644000175000017500000000412312040235120021376 0ustar franciscofranciscogetID()!=$event["userID"])&&(!$user->isAdmin())){ UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("calendar")); UI::globalNavigation(); UI::pageNavigation(getMLText("calendar"), "calendar"); UI::contentHeading(getMLText("edit_event")); UI::contentContainerStart(); ?>
        ">

        htmlspecialchars($event["name"])));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.RemoveArchive.php0000644000175000017500000000370512040235120021703 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["arkname"]) || !file_exists($settings->_contentDir.$_GET["arkname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } $arkname = $_GET["arkname"]; UI::htmlStartPage(getMLText("backup_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("backup_remove")); UI::contentContainerStart(); ?>

        sanitizeString($arkname)));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.ManageNotify.php0000644000175000017500000001473712040235120021534 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } // Get list of subscriptions for documents or folders for user or groups function getNotificationList($as_group, $folders) { global $user,$db; // First, get the list of groups of which the user is a member. if ($as_group){ $groups = $user->getGroups(); if (count($groups)==0) return NULL; $grpList = ""; foreach ($groups as $group) { $grpList .= (strlen($grpList)==0 ? "" : ", ") . $group->getID(); } $queryStr = "SELECT `tblNotify`.* FROM `tblNotify` ". "WHERE `tblNotify`.`groupID` IN (". $grpList .")"; } else { $queryStr = "SELECT `tblNotify`.* FROM `tblNotify` ". "WHERE `tblNotify`.`userID` = '". $user->getID()."'" ; } $resArr = $db->getResultArray($queryStr); $ret=array(); foreach ($resArr as $res){ if (($res["targetType"] == T_DOCUMENT)&&(!$folders)) $ret[]=$res["target"]; if (($res["targetType"] == T_FOLDER)&&($folders)) $ret[]=$res["target"]; } return $ret; } function printFolderNotificationList($ret,$deleteaction=true) { global $dms; if (count($ret)==0) { printMLText("empty_notify_list"); } else { print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n"; foreach($ret as $ID) { $fld = $dms->getFolder($ID); if (is_object($fld)) { $owner = $fld->getOwner(); print ""; print ""; print "\n"; print ""; print ""; } } print "
        ".getMLText("name")."".getMLText("owner")."".getMLText("actions")."
        " . htmlspecialchars($fld->getName()) . "".htmlspecialchars($owner->getFullName())."
        "; } } function printDocumentNotificationList($ret,$deleteaction=true) { global $dms; if (count($ret)==0) { printMLText("empty_notify_list"); } else { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n"; foreach ($ret as $ID) { $doc = $dms->getDocument($ID); if (is_object($doc)) { $owner = $doc->getOwner(); $latest = $doc->getLatestContent(); $status = $latest->getStatus(); print "\n"; print ""; print "\n"; print ""; print ""; print ""; print "\n"; } } print "
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("actions")."
        " . htmlspecialchars($doc->getName()) . "".htmlspecialchars($owner->getFullName())."".getOverallStatusText($status["status"])."".$latest->getVersion()."
        "; } } UI::htmlStartPage(getMLText("my_account")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_account"), "my_account"); UI::contentHeading(getMLText("edit_existing_notify")); UI::contentContainerStart(); print "
        "; UI::contentSubHeading(getMLText("choose_target_folder")); UI::printFolderChooser("form1",M_READ); print ""; print getMLText("include_subdirectories"); print ""; print getMLText("include_documents"); print "  "; print "
        "; print "
        "; UI::contentSubHeading(getMLText("choose_target_document")); UI::printDocumentChooser("form2"); print "  "; print "
        "; UI::contentContainerEnd(); // // Display the results. // UI::contentHeading(getMLText("edit_folder_notify")); UI::contentContainerStart(); UI::contentSubHeading(getMLText("user")); $ret=getNotificationList(false,true); printFolderNotificationList($ret); UI::contentSubHeading(getMLText("group")); $ret=getNotificationList(true,true); printFolderNotificationList($ret,false); UI::contentContainerEnd(); UI::contentHeading(getMLText("edit_document_notify")); UI::contentContainerStart(); UI::contentSubHeading(getMLText("user")); $ret=getNotificationList(false,false); printDocumentNotificationList($ret); UI::contentSubHeading(getMLText("group")); $ret=getNotificationList(true,false); printDocumentNotificationList($ret,false); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.UserList.php0000644000175000017500000000545212040235120020717 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("user_list")); UI::contentContainerStart(); $users = getAllUsers(); for ($i = 0; $i < count($users); $i++) { $currUser = $users[$i]; if ($currUser->isGuest()) continue; UI::contentSubHeading(getMLText("user") . ": \"" . $currUser->getFullName() . "\""); ?>
        : getLogin();?>
        : getFullName();?>
        : getEmail();?>
        : getComment();?>
        : getGroups(); if (count($groups) == 0) { printMLText("no_groups"); } else { for ($j = 0; $j < count($groups); $j++) { print $groups[$j]->getName(); if ($j +1 < count($groups)) print ", "; } } ?>
        : hasImage()) print "_httpRoot . "out/out.UserImage.php?userid=".$currUser->getId()."\">"; else printMLText("no_user_image"); ?>
        letodms-3.3.11+dfsg.1/out/out.Calendar.php0000644000175000017500000001577712040235120020671 0ustar franciscofrancisco "; print " "; print " "; printYearTable($year); UI::contentContainerEnd(); }else if ($mode=="m"){ if (!isset($dayNamesLong)) generateCalendarArrays(); if (!isset($monthNames)) generateCalendarArrays(); UI::contentHeading(getMLText("month_view")." : ".$monthNames[$month-1]. " ".$year); UI::contentContainerStart(); print " "; print " "; print " "; $days=getDaysInMonth($month, $year); $today = getdate(time()); $events = getEventsInInterval(mktime(0,0,0, $month, 1, $year), mktime(23,59,59, $month, $days, $year)); echo "\n"; for ($i=1; $i<=$days; $i++){ // separate weeks $date = getdate(mktime(12, 0, 0, $month, $i, $year)); if (($date["wday"]==$settings->_firstDayOfWeek) && ($i!=1)) echo "\n"; // highlight today $class = ($year == $today["year"] && $month == $today["mon"] && $i == $today["mday"]) ? "todayHeader" : "header"; echo ""; echo ""; echo ""; if ($class=="todayHeader") $class="today"; else $class=""; $xdate=mktime(0, 0, 0, $month, $i, $year); foreach ($events as $event){ if (($event["start"]<=$xdate)&&($event["stop"]>=$xdate)){ if (strlen($event['name']) > 25) $event['name'] = substr($event['name'], 0, 22) . "..."; print ""; }else{ print ""; } } echo "\n"; } echo "
         
        ".$i."".$dayNamesLong[$date["wday"]]."".htmlspecialchars($event['name'])." 
        \n"; UI::contentContainerEnd(); }else{ if (!isset($dayNamesLong)) generateCalendarArrays(); if (!isset($monthNames)) generateCalendarArrays(); // get the week interval - TODO: $GET $datestart=getdate(mktime(0,0,0,$month,$day,$year)); while($datestart["wday"]!=$settings->_firstDayOfWeek){ $datestart=getdate(mktime(0,0,0,$datestart["mon"],$datestart["mday"]-1,$datestart["year"])); } $datestop=getdate(mktime(23,59,59,$month,$day,$year)); if ($datestop["wday"]==$settings->_firstDayOfWeek){ $datestop=getdate(mktime(23,59,59,$datestop["mon"],$datestop["mday"]+1,$datestop["year"])); } while($datestop["wday"]!=$settings->_firstDayOfWeek){ $datestop=getdate(mktime(23,59,59,$datestop["mon"],$datestop["mday"]+1,$datestop["year"])); } $datestop=getdate(mktime(23,59,59,$datestop["mon"],$datestop["mday"]-1,$datestop["year"])); $starttime=mktime(0,0,0,$datestart["mon"],$datestart["mday"],$datestart["year"]); $stoptime=mktime(23,59,59,$datestop["mon"],$datestop["mday"],$datestop["year"]); $today = getdate(time()); $events = getEventsInInterval($starttime,$stoptime); UI::contentHeading(getMLText("week_view")." : ".getReadableDate(mktime(12, 0, 0, $month, $day, $year))); UI::contentContainerStart(); print " "; print " "; print " "; echo "\n"; for ($i=$starttime; $i<$stoptime; $i += 86400){ $date = getdate($i); // for daylight saving time TODO: could be better if ( ($i!=$starttime) && ($prev_day==$date["mday"]) ){ $i += 3600; $date = getdate($i); } // highlight today $class = ($date["year"] == $today["year"] && $date["mon"] == $today["mon"] && $date["mday"] == $today["mday"]) ? "todayHeader" : "header"; echo ""; echo ""; echo ""; if ($class=="todayHeader") $class="today"; else $class=""; foreach ($events as $event){ if (($event["start"]<=$i)&&($event["stop"]>=$i)){ print ""; }else{ print ""; } } echo "\n"; $prev_day=$date["mday"]; } echo "
        ".getReadableDate($i)."".$dayNamesLong[$date["wday"]]."".htmlspecialchars($event['name'])." 
        \n"; UI::contentContainerEnd(); } UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.ApprovalSummary.php0000644000175000017500000001627012040235120022307 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } if (!$db->createTemporaryTable("ttstatid")) { UI::exitError(getMLText("approval_summary"),getMLText("internal_error_exit")); } UI::htmlStartPage(getMLText("approval_summary")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_documents"), "my_documents"); UI::contentHeading(getMLText("approval_summary")); UI::contentContainerStart(); // TODO: verificare scadenza // Get document list for the current user. $approvalStatus = $user->getApprovalStatus(); // reverse order $approvalStatus["indstatus"]=array_reverse($approvalStatus["indstatus"],true); $approvalStatus["grpstatus"]=array_reverse($approvalStatus["grpstatus"],true); // Create a comma separated list of all the documentIDs whose information is // required. $dList = array(); foreach ($approvalStatus["indstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } foreach ($approvalStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } $docCSV = ""; foreach ($dList as $d) { $docCSV .= (strlen($docCSV)==0 ? "" : ", ")."'".$d."'"; } if (strlen($docCSV)>0) { $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentStatus` ". "LEFT JOIN `tblDocumentStatusLog` USING (`statusID`) ". "LEFT JOIN `ttstatid` on `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `tblDocuments`.`id` IN (" . $docCSV . ") ". "ORDER BY `statusDate` DESC"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::exitError(getMLText("approval_summary"),getMLText("internal_error_exit")); } // Create an array to hold all of these results, and index the array by // document id. This makes it easier to retrieve document ID information // later on and saves us having to repeatedly poll the database every time // new document information is required. $docIdx = array(); foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } $docIdx[$res["id"]][$res["version"]] = $res; } } $iRev = array(); $printheader = true; foreach ($approvalStatus["indstatus"] as $st) { if (isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader = false; } print "\n"; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; } if ($st["status"]!=-2) { $iRev[] = $st["documentID"]; } } if (!$printheader) { echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".getOverallStatusText($docIdx[$st["documentID"]][$st["version"]]["status"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."
        \n"; }else{ printMLText("no_approval_needed"); } UI::contentContainerEnd(); UI::contentHeading(getMLText("group_approval_summary")); UI::contentContainerStart(); $printheader = true; foreach ($approvalStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $iRev) && isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader = false; } print "\n"; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; } } if (!$printheader) { echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".getOverallStatusText($docIdx[$st["documentID"]][$st["version"]]["status"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."
        \n"; }else{ printMLText("empty_notify_list"); } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.EditEvent.php0000644000175000017500000000635412040235120021036 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } if (!isset($_GET["id"]) || !is_numeric($_GET["id"]) || intval($_GET["id"])<1) { UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } $event=getEvent($_GET["id"]); if (is_bool($event)&&!$event){ UI::exitError(getMLText("edit_event"),getMLText("error_occured")); } if (($user->getID()!=$event["userID"])&&(!$user->isAdmin())){ UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("calendar")); UI::globalNavigation(); UI::pageNavigation(getMLText("calendar"), "calendar"); UI::contentHeading(getMLText("edit_event")); UI::contentContainerStart(); ?>
        ">
        :
        :
        : " size="60">
        :

        ">
        letodms-3.3.11+dfsg.1/out/out.AddDocument.php0000644000175000017500000002112012040235120021322 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); ?> getApproversList(); ?> _enableLargeFileUpload) { ?>

        : getDocuments());?>
        :
        :
        :
        :
        :
        :
        :
        :
        :
          getMandatoryReviewers(); foreach ($docAccess["users"] as $usr) { if ($usr->getID()==$user->getID()) continue; $mandatory=false; foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $mandatory=true; if ($mandatory) print "
        • ". htmlspecialchars($usr->getFullName()); else print "
        • ". htmlspecialchars($usr->getFullName()); } ?>
        :
          getID()) $mandatory=true; if ($mandatory) print "
        • ".htmlspecialchars($grp->getName()); else print "
        • ".htmlspecialchars($grp->getName()); } ?>
        :
          getMandatoryApprovers(); foreach ($docAccess["users"] as $usr) { if ($usr->getID()==$user->getID()) continue; $mandatory=false; foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $mandatory=true; if ($mandatory) print "
        • ". htmlspecialchars($usr->getFullName()); else print "
        • ". htmlspecialchars($usr->getFullName()); } ?>
        :
          getID()) $mandatory=true; if ($mandatory) print "
        • ".htmlspecialchars($grp->getName()); else print "
        • ".htmlspecialchars($grp->getName()); } ?>

        ">

        letodms-3.3.11+dfsg.1/out/out.RemoveDocumentFile.php0000644000175000017500000000637012040235120022701 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if (!isset($_GET["fileid"]) || !is_numeric($_GET["fileid"]) || intval($_GET["fileid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_file_id")); } $fileid = $_GET["fileid"]; $file = $document->getDocumentFile($fileid); if (!is_object($file)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_file_id")); } if (($document->getAccessMode($user) < M_ALL)&&($user->getID()!=$file->getUserID())) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("rm_file")); UI::contentContainerStart(); ?>

        htmlspecialchars($document->getName()), "name" => htmlspecialchars($file->getName())));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.RemoveGroup.php0000644000175000017500000000436012040235120021414 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["groupid"]) || !is_numeric($_GET["groupid"]) || intval($_GET["groupid"])<1) { UI::exitError(getMLText("rm_group"),getMLText("invalid_user_id")); } $groupid = intval($_GET["groupid"]); $currGroup = $dms->getGroup($groupid); if (!is_object($currGroup)) { UI::exitError(getMLText("rm_group"),getMLText("invalid_group_id")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("rm_group")); UI::contentContainerStart(); ?>

        htmlspecialchars($currGroup->getName())));?>

        ">

        letodms-3.3.11+dfsg.1/out/out.ViewFolder.php0000644000175000017500000001417212040235120021212 0ustar franciscofrancisco_rootFolderID; } else { $folderid = intval($_GET["folderid"]); } $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $showtree=showtree(); if (isset($_GET["orderby"]) && strlen($_GET["orderby"])==1 ) { $orderby=$_GET["orderby"]; }else $orderby=""; $folderPathHTML = getFolderPathHTML($folder); if ($folder->getAccessMode($user) < M_READ) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); if ($settings->_enableFolderTree) UI::printTreeNavigation($folderid,$showtree); UI::contentHeading(getMLText("folder_infos")); $owner = $folder->getOwner(); UI::contentContainer("\n\n". "\n". "\n\n\n". "\n". "\n\n
        ".getMLText("owner").":getEmail())."\">".htmlspecialchars($owner->getFullName())."". "
        ".getMLText("comment").":".htmlspecialchars($folder->getComment())."
        \n"); UI::contentHeading(getMLText("folder_contents")); UI::contentContainerStart(); $subFolders = $folder->getSubFolders($orderby); $subFolders = LetoDMS_Core_DMS::filterAccess($subFolders, $user, M_READ); $documents = $folder->getDocuments($orderby); $documents = LetoDMS_Core_DMS::filterAccess($documents, $user, M_READ); if ((count($subFolders) > 0)||(count($documents) > 0)){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; } else printMLText("empty_notify_list"); foreach($subFolders as $subFolder) { $owner = $subFolder->getOwner(); $comment = $subFolder->getComment(); if (strlen($comment) > 50) $comment = substr($comment, 0, 47) . "..."; $subsub = $subFolder->getSubFolders(); $subsub = LetoDMS_Core_DMS::filterAccess($subsub, $user, M_READ); $subdoc = $subFolder->getDocuments(); $subdoc = LetoDMS_Core_DMS::filterAccess($subdoc, $user, M_READ); print ""; // print ""; print "\n"; print "\n"; print ""; print ""; print ""; print ""; print "\n"; } foreach($documents as $document) { $owner = $document->getOwner(); $comment = $document->getComment(); if (strlen($comment) > 50) $comment = substr($comment, 0, 47) . "..."; $docID = $document->getID(); $latestContent = $document->getLatestContent(); $version = $latestContent->getVersion(); $status = $latestContent->getStatus(); print ""; if (file_exists($dms->contentDir . $latestContent->getPath())) print ""; else print ""; print "\n"; print ""; print ""; print ""; print ""; print "\n"; } if ((count($subFolders) > 0)||(count($documents) > 0)) echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("comment")."
        getID()."&showtree=".$showtree."\">getID()."&showtree=".$showtree."\">" . htmlspecialchars($subFolder->getName()) . "".htmlspecialchars($owner->getFullName())."".count($subsub)." ".getMLText("folders").", ".count($subdoc)." ".getMLText("documents")."".htmlspecialchars($comment)."
        getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">" . htmlspecialchars($document->getName()) . "".htmlspecialchars($owner->getFullName()).""; if ( $document->isLocked() ) { print "getLockingUser()->getFullName())."\"> "; } print getOverallStatusText($status["status"])."".$version."".htmlspecialchars($comment)."
        \n"; UI::contentContainerEnd(); if ($settings->_enableFolderTree) print ""; UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.UsrMgr.php0000644000175000017500000003064112040235120020362 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $users = $dms->getAllUsers(); if (is_bool($users)) { UI::exitError(getMLText("admin_tools"),getMLText("internal_error")); } $groups = $dms->getAllGroups(); if (is_bool($groups)) { UI::exitError(getMLText("admin_tools"),getMLText("internal_error")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); ?> getID()."\" style=\"display : none;\">"; UI::contentSubHeading(getMLText("user")." : ".$currUser->getLogin()); ?>
        :   
        _enableUserImage){ ?>
        :
        :
        :
        :
        :
        :
        :
        : isHidden() ? " checked='checked'" : "");?>>
        : hasImage()) print "_httpRoot . "out/out.UserImage.php?userid=".$currUser->getId()."\">"; else printMLText("no_user_image"); ?>
        :
        :
        :
          getMandatoryReviewers(); foreach ($users as $usr) { if ($usr->isGuest() || ($usr->getID() == $currUser->getID())) continue; $checked=false; foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $checked=true; print "
        • ".htmlspecialchars($usr->getLogin())."
        • \n"; } ?>
        :
          getID()) $checked=true; print "
        • ".htmlspecialchars($grp->getName())."
        • \n"; } ?>
        :
        :
          getMandatoryApprovers(); foreach ($users as $usr) { if ($usr->isGuest() || ($usr->getID() == $currUser->getID())) continue; $checked=false; foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $checked=true; print "
        • ".htmlspecialchars($usr->getLogin())."
        • \n"; } ?>
        :
          getID()) $checked=true; print "
        • ".htmlspecialchars($grp->getName())."
        • \n"; } ?>
        ">
        letodms-3.3.11+dfsg.1/out/out.UsrView.php0000644000175000017500000000505212040235120020545 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } if (!$settings->_enableUsersView) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } $users = $dms->getAllUsers(); if (is_bool($users)) { UI::exitError(getMLText("my_account"),getMLText("internal_error")); } UI::htmlStartPage(getMLText("my_account")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_account"), "my_account"); UI::contentHeading(getMLText("users")); UI::contentContainerStart(); echo "\n"; echo "\n\n"; echo "\n"; echo "\n"; echo "\n"; if ($settings->_enableUserImage) echo "\n"; echo "\n\n"; foreach ($users as $currUser) { if ($currUser->isGuest()) continue; if ($currUser->isHidden()=="1") continue; echo "\n"; print ""; print ""; print ""; if ($settings->_enableUserImage){ print ""; } echo "\n"; } echo "
        ".getMLText("name")."".getMLText("email")."".getMLText("comment")."".getMLText("user_image")."
        ".htmlspecialchars($currUser->getFullName())."getEmail())."\">".htmlspecialchars($currUser->getEmail())."".htmlspecialchars($currUser->getComment()).""; if ($currUser->hasImage()) print "_httpRoot . "out/out.UserImage.php?userid=".$currUser->getId()."\">"; else printMLText("no_user_image"); print "
        \n"; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.AddMultiDocument.php0000644000175000017500000000557412040235120022354 0ustar franciscofrancisco_enableLargeFileUpload) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("access_denied")); } if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); ?> getApproversList(); UI::printUploadApplet('../op/op.AddMultiDocument.php', array('folderid'=>$folderid)); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.EditDocument.php0000644000175000017500000001075512040235120021533 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); ?>
        getAccessMode($user) > M_READ) { print ""; print ""; print ""; } ?>
        :
        :
        :
        : getCategories());?>
        " . getMLText("sequence") . ":"; UI::printSequenceChooser($folder->getDocuments(), $document->getID()); print "

        ">
        letodms-3.3.11+dfsg.1/out/out.DocumentChooser.php0000644000175000017500000001155712040235120022251 0ustar franciscofranciscogetSubFolders(), $user, M_READ); $documents = LetoDMS_Core_DMS::filterAccess($folder->getDocuments(), $user, M_READ); if ($level+1 < count($path)) $nextFolderID = $path[$level+1]->getID(); else $nextFolderID = -1; if ($level == 0) { print "
          \n"; } print "
        • \n"; print " 0) UI::printImgPath("minus.png"); else UI::printImgPath("blank.png"); print "\" border=0>\n"; if ($folder->getAccessMode($user) >= M_READ) { print "".htmlspecialchars($folder->getName())."\n"; } else print "".htmlspecialchars($folder->getName())."\n"; print "
        • \n"; print "\n"; if ($level == 0) { print "
        \n"; } } UI::htmlStartPage(getMLText("choose_target_document")); UI::globalBanner(); UI::pageNavigation(getMLText("choose_target_document")); ?> getFolder($folderid); UI::contentContainerStart(); printTree($folder->getPath()); UI::contentContainerEnd(); ?> letodms-3.3.11+dfsg.1/out/out.Info.php0000644000175000017500000000267512040235120020044 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $v = new LetoDMS_Version; UI::htmlStartPage($v->banner()); UI::globalNavigation(); UI::pageNavigation($v->banner()); UI::contentContainerStart(); phpinfo(); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.UserImage.php0000644000175000017500000000261712040235120021026 0ustar franciscofranciscogetUser($userid); if (!$myUser->hasImage()) UI::exitError(getMLText("user_image"),getMLText("no_user_image")); if($resArr = $myUser->getImage()) { header("ContentType: " . $resArr["mimeType"]); print base64_decode($resArr["image"]); } exit; ?> letodms-3.3.11+dfsg.1/out/out.RemoveFolderFiles.php0000644000175000017500000000421612040235120022516 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["targetidform3"]) || !is_numeric($_GET["targetidform3"]) || intval($_GET["targetidform3"])<1) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } $folderid = intval($_GET["targetidform3"]); $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("admin_tools"),getMLText("invalid_folder_id")); } UI::htmlStartPage(getMLText("files_deletion")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("files_deletion")); UI::contentContainerStart(); ?>

        htmlspecialchars($folder->getName())));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.Categories.php0000644000175000017500000001045212040235120021226 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); $categories = $dms->getDocumentCategories(); ?> getID()."\" style=\"display : none;\">"; ?>
        :   
        isUsed()) { ?>
        " type="submit">

        :
          ">
        letodms-3.3.11+dfsg.1/out/out.AdminTools.php0000644000175000017500000000524112040235120021212 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentContainerStart(); ?> letodms-3.3.11+dfsg.1/out/out.MoveFolder.php0000644000175000017500000000556112040235120021210 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = intval($_GET["folderid"]); $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folderid == $settings->_rootFolderID || !$folder->getParent()) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("cannot_move_root")); } if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); UI::contentHeading(getMLText("move_folder")); UI::contentContainerStart(); ?>
        : getID());?>
        ">
        letodms-3.3.11+dfsg.1/out/out.MoveDocument.php0000644000175000017500000000530312040235120021545 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("move_document")); UI::contentContainerStart(); ?>
        :

        ">
        letodms-3.3.11+dfsg.1/out/out.MyDocuments.php0000644000175000017500000005262412040235120021417 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } // Check to see if the user wants to see only those documents that are still // in the review / approve stages. $showInProcess = false; if (isset($_GET["inProcess"]) && strlen($_GET["inProcess"])>0 && $_GET["inProcess"]!=0) { $showInProcess = true; } $orderby='n'; if (isset($_GET["orderby"]) && strlen($_GET["orderby"])==1 ) { $orderby=$_GET["orderby"]; } UI::htmlStartPage(getMLText("my_documents")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_documents"), "my_documents"); if ($showInProcess){ if (!$db->createTemporaryTable("ttstatid") || !$db->createTemporaryTable("ttcontentid")) { UI::contentHeading(getMLText("warning")); UI::contentContainer(getMLText("internal_error_exit")); UI::htmlEndPage(); exit; } // Get document list for the current user. $reviewStatus = $user->getReviewStatus(); $approvalStatus = $user->getApprovalStatus(); // Create a comma separated list of all the documentIDs whose information is // required. $dList = array(); foreach ($reviewStatus["indstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } foreach ($reviewStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } foreach ($approvalStatus["indstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } foreach ($approvalStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } $docCSV = ""; foreach ($dList as $d) { $docCSV .= (strlen($docCSV)==0 ? "" : ", ")."'".$d."'"; } if (strlen($docCSV)>0) { // Get the document information. $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentContent` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatusLog` ON `tblDocumentStatusLog`.`statusID` = `tblDocumentStatus`.`statusID` ". "LEFT JOIN `ttstatid` ON `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentStatus`.`version` AND `ttcontentid`.`document` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `ttcontentid`.`maxVersion` = `tblDocumentContent`.`version` ". "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_REV.", ".S_DRAFT_APP.", ".S_EXPIRED.") ". "AND `tblDocuments`.`id` IN (" . $docCSV . ") ". "ORDER BY `statusDate` DESC"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::contentHeading(getMLText("warning")); UI::contentContainer(getMLText("internal_error_exit")); UI::htmlEndPage(); exit; } // Create an array to hold all of these results, and index the array by // document id. This makes it easier to retrieve document ID information // later on and saves us having to repeatedly poll the database every time // new document information is required. $docIdx = array(); foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } $docIdx[$res["id"]][$res["version"]] = $res; } // List the documents where a review has been requested. UI::contentHeading(getMLText("documents_to_review")); UI::contentContainerStart(); $printheader=true; $iRev = array(); $dList = array(); foreach ($reviewStatus["indstatus"] as $st) { if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) ) { $dList[] = $st["documentID"]; if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print "".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"])).""; print "\n"; } } foreach ($reviewStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) ) { $dList[] = $st["documentID"]; if ($printheader){ print "
        ".getMLText("name")."".getMLText("owner")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."
        "; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print "".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"])).""; print "\n"; } } if (!$printheader){ echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"])."
        "; }else{ printMLText("no_docs_to_review"); } UI::contentContainerEnd(); // List the documents where an approval has been requested. UI::contentHeading(getMLText("documents_to_approve")); UI::contentContainerStart(); $printheader=true; foreach ($approvalStatus["indstatus"] as $st) { if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print "".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"])).""; print "\n"; } } foreach ($approvalStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print "
        ".getMLText("name")."".getMLText("owner")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"])."
        "; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print "".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"])).""; print "\n"; } } if (!$printheader){ echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"])."
        \n"; }else{ printMLText("no_docs_to_approve"); } UI::contentContainerEnd(); } else { UI::contentHeading(getMLText("documents_to_review")); UI::contentContainerStart(); printMLText("no_review_needed"); UI::contentContainerEnd(); UI::contentHeading(getMLText("documents_to_approve")); UI::contentContainerStart(); printMLText("no_approval_needed"); UI::contentContainerEnd(); } // Get list of documents owned by current user that are pending review or // pending approval. $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentContent` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatusLog` ON `tblDocumentStatusLog`.`statusID` = `tblDocumentStatus`.`statusID` ". "LEFT JOIN `ttstatid` ON `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentStatus`.`version` AND `ttcontentid`.`document` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `ttcontentid`.`maxVersion` = `tblDocumentContent`.`version` ". "AND `tblDocuments`.`owner` = '".$user->getID()."' ". "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_REV.", ".S_DRAFT_APP.") ". "ORDER BY `statusDate` DESC"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::contentHeading(getMLText("warning")); UI::contentContainer("Internal error. Unable to complete request. Exiting."); UI::htmlEndPage(); exit; } UI::contentHeading(getMLText("documents_user_requiring_attention")); UI::contentContainerStart(); if (count($resArr)>0) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } print "\n"; print "\n"; print ""; print ""; print ""; print ""; print "\n"; } print "
        ".getMLText("name")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        " . htmlspecialchars($res["name"]) . "".getOverallStatusText($res["status"])."".$res["version"]."".$res["statusDate"]." ".htmlspecialchars($res["statusName"])."".(!$res["expires"] ? "-":getReadableDate($res["expires"]))."
        "; } else printMLText("no_docs_to_look_at"); UI::contentContainerEnd(); // Get list of documents locked by current user $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentContent` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatusLog` ON `tblDocumentStatusLog`.`statusID` = `tblDocumentStatus`.`statusID` ". "LEFT JOIN `ttstatid` ON `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentStatus`.`version` AND `ttcontentid`.`document` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `ttcontentid`.`maxVersion` = `tblDocumentContent`.`version` ". "AND `tblDocumentLocks`.`userID` = '".$user->getID()."' ". "ORDER BY `statusDate` DESC"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::contentHeading(getMLText("warning")); UI::contentContainer("Internal error. Unable to complete request. Exiting."); UI::htmlEndPage(); exit; } UI::contentHeading(getMLText("documents_locked_by_you")); UI::contentContainerStart(); if (count($resArr)>0) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } print "\n"; print "\n"; print ""; print ""; print ""; print ""; print "\n"; } print "
        ".getMLText("name")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        " . htmlspecialchars($res["name"]) . "".getOverallStatusText($res["status"])."".$res["version"]."".$res["statusDate"]." ".htmlspecialchars($res["statusName"])."".(!$res["expires"] ? "-":getReadableDate($res["expires"]))."
        "; } else printMLText("no_docs_locked"); UI::contentContainerEnd(); } else { // Get list of documents owned by current user if (!$db->createTemporaryTable("ttstatid")) { UI::contentHeading(getMLText("warning")); UI::contentContainer(getMLText("internal_error_exit")); UI::htmlEndPage(); exit; } if (!$db->createTemporaryTable("ttcontentid")) { UI::contentHeading(getMLText("warning")); UI::contentContainer(getMLText("internal_error_exit")); UI::htmlEndPage(); exit; } $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentContent` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID` = `tblDocumentContent`.`document` ". "LEFT JOIN `tblDocumentStatusLog` ON `tblDocumentStatusLog`.`statusID` = `tblDocumentStatus`.`statusID` ". "LEFT JOIN `ttstatid` ON `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentStatus`.`version` AND `ttcontentid`.`document` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `ttcontentid`.`maxVersion` = `tblDocumentContent`.`version` ". "AND `tblDocuments`.`owner` = '".$user->getID()."' "; if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; else $queryStr .= "ORDER BY `name`"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::contentHeading(getMLText("warning")); UI::contentContainer(getMLText("internal_error_exit")); UI::htmlEndPage(); exit; } UI::contentHeading(getMLText("all_documents")); UI::contentContainerStart(); if (count($resArr)>0) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } print "\n"; print "\n"; print ""; print ""; print ""; //print ""; print ""; print "\n"; } print "
        ".getMLText("name")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        " . htmlspecialchars($res["name"]) . "".getOverallStatusText($res["status"])."".$res["version"]."".$res["statusDate"]." ". htmlspecialchars($res["statusName"])."".(!$res["expires"] ? getMLText("does_not_expire"):getReadableDate($res["expires"]))."".(!$res["expires"] ? "-":getReadableDate($res["expires"]))."
        "; } else printMLText("empty_notify_list"); UI::contentContainerEnd(); } UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.RemoveFolder.php0000644000175000017500000000542712040235120021540 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folderid == $settings->_rootFolderID || !$folder->getParent()) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("cannot_rm_root")); } if ($folder->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); UI::contentHeading(getMLText("rm_folder")); UI::contentContainerStart(); ?>

        htmlspecialchars($folder->getName())));?>

        ">

        letodms-3.3.11+dfsg.1/out/images/0000755000175000017500000000000012040235120017065 5ustar franciscofranciscoletodms-3.3.11+dfsg.1/out/images/down.gif0000644000175000017500000000151712040235120020527 0ustar franciscofranciscoGIF89a,3(Lp!C(`Ń+fadž'1aI#-; letodms-3.3.11+dfsg.1/out/images/dummy.gif0000644000175000017500000000144012040235120020706 0ustar franciscofranciscoGIF89a,; letodms-3.3.11+dfsg.1/out/images/right_in_to_down.gif0000644000175000017500000000156712040235120023121 0ustar franciscofranciscoGIF89a,[ H*\ȰÇ pPD(Ǎ=z Pǁ&( E)$ %Ƀ0E*PM2:sPG& q; letodms-3.3.11+dfsg.1/out/images/del.gif0000644000175000017500000000156312040235120020325 0ustar franciscofranciscoGIF89aȀwww̙ff___3333㲲33f@@@ffffff̙!,OH @  D a).Dƅ#~"I:n2c˖$LhXA M)PL: $Y0 ; letodms-3.3.11+dfsg.1/out/images/subfolders.gif0000644000175000017500000000242612040235120021730 0ustar franciscofranciscoGIF89a{!!))1199BBJJRRZZcckkss{{ƌƔΜΥֵ֭޽,{H*\ȰÇ#JHŋ3jȱǏ C @d `Rʖ7  ` b@`@zR

        he .0A\dЁf@CQVkرerc 5̀@@@0B8 0C)\&|@,2f͜O&XأV 9!.PR` |}AO ߀~ZIx$W@ 7@x !}HPd5aA,DyW_e8ݸ#A,} D@%if)Y}Wm@ PPX5Pg%9X][HG%t)|TlVDUؗ]U@fTrRjꩨ; letodms-3.3.11+dfsg.1/out/images/folder_opened.gif0000644000175000017500000000164012040235120022362 0ustar franciscofranciscoGIF89a!!!)))111999BBBJJJRRRZZZccckkksss{{{ƽcZZ911c99kck)!kc1ƄsJ)!19J1)c9)cB1ƽ9)ƽkcZBkZ!)!91ֽƽ焄{kkcƵZZRccZ{sscccJ{Bss9JJ119R)1J!Bc1))Z!Bֽƽ!)!)9)19199s{cB9s)1Bk)9Rsc9RkcRJ9{9BJRcsJc{!BJRc{ksJkcZJ9)sRkc)Bc!JR)BJJZs1s猭!1s)cεBRsRJRc)Rޜ֌c{{sk9ZBskssc{Js!Jքcsc{ksckcsBZRsckJR{k{csZkZkRc{JZBR9J1B)s{ksZcRZ9B9B19)1)1!)!{{ZZcRRc{{ޭ11BkkRRRR11cJJ99{BBBBZZBB11!!!!11{!(,|QH:Hx !A N"F nCDR_Eb8? IƜf˗wJ\iIBi2̡+otT)ş>Ui3kΪPc+HhӚX0 ; letodms-3.3.11+dfsg.1/out/images/line_vert_edit.gif0000644000175000017500000000161712040235120022555 0ustar franciscofranciscoGIF89a-,-sHP*\ȰBtH"ÈZHC>(Qȓ$K\ʐ-Ms&L.mV"ϞqzQ(ѠsUs)SNG&iVB0SKK4 ; letodms-3.3.11+dfsg.1/out/images/right_last.gif0000644000175000017500000000152612040235120021720 0ustar franciscofranciscoGIF89a,:(Lp!C(`Ń+fadž1ɑ(S\ɲ˗0Y; letodms-3.3.11+dfsg.1/out/images/folder_closed.gif0000644000175000017500000000160412040235120022361 0ustar franciscofranciscoGIF89a!!!)))111999BBBJJJRRRZZZccckkksss{{{ƽcZZ911c99kck)!kc1ƄsJ)!19J1)c9)cB1ƽ9)ƽkcZBkZ!)!91ֽƽ焄{kkcƵZZRccZ{sscccJ{Bss9JJ119R)1J!Bc1))Z!Bֽƽ!)!)9)19199s{cB9s)1Bk)9Rsc9RkcRJ9{9BJRcsJc{!BJRc{ksJkcZJ9)sRkc)Bc!JR)BJJZs1s猭!1s)cεBRsRJRc)Rޜ֌c{{sk9ZBskssc{Js!Jքcsc{ksckcsBZRsckJR{k{csZkZkRc{JZBR9J1B)s{ksZcRZ9B9B19)1)1!)!{{ZZcRRc{{ޭ11BkkRRRR11cJJ99{BBBBZZBB11!!!!11{!(,`QHX6|D+V80ƍ#~џő/<2ĕ,Ss@H3Ь)3' CZtgPU҉OJE; letodms-3.3.11+dfsg.1/out/images/c.png0000644000175000017500000000107112040235120020014 0ustar franciscofranciscoPNG  IHDR aPLTE%%%)))+++333444888:::<<<===>>>@@@FFFLLLMMMRRRTTTUUUVVVWWWXXX\\\___```bbbdddeeefffgggjjjkkkmmmnnnxxxyyyeRtRNS@fbKGDH pHYs  tIME 8tEXtCommentCreated with The GIMPd%nIDATc`II1qtWt m?MYYF>S~[+` )7Q1w怠 ?_e c Sad 7vg``Uv6&c*aH\EUUe zXzIENDB`letodms-3.3.11+dfsg.1/out/images/download.gif0000644000175000017500000000030312040235120021357 0ustar franciscofranciscoGIF89a !!!cccsss! ,oIY3WHRl[ard} - Atġ2r`9`CGpy [M\X*fn p(~ Jc355w5; letodms-3.3.11+dfsg.1/out/images/m.png0000644000175000017500000000045112040235120020027 0ustar franciscofranciscoPNG  IHDR a3PLTE888:::IIIUUUnetRNS@fbKGDH pHYs  tIME  pwtEXtCommentCreated with The GIMPd%nFIDATUQ QR,V&ޗ;"(!AKPۧ[Qw%MHw {i0IENDB`letodms-3.3.11+dfsg.1/out/images/p.png0000644000175000017500000000060512040235120020033 0ustar franciscofranciscoPNG  IHDR arPLTE&&&+++888999<<JR 1L$3[ݓx Յ%8` ˜D'‚VkoJYB4j bzGIENDB`letodms-3.3.11+dfsg.1/out/images/to_down.gif0000644000175000017500000000156712040235120021236 0ustar franciscofranciscoGIF89a,[ H*\ȰC `8E&"pF;8X1ŏKxQA&Q `#BiqdC2|CC&yt); letodms-3.3.11+dfsg.1/out/images/save.gif0000644000175000017500000000164012040235120020513 0ustar franciscofranciscoGIF89a!!!)))))JJJJRRRZZZcckkss{{{!!,|'H XpB48 E  8 NH#8xJ'St`͛ 8@"p'*M3"FUˑOF})T\[@+\;0 ; letodms-3.3.11+dfsg.1/out/images/plus.png0000644000175000017500000000035512040235120020561 0ustar franciscofranciscoPNG  IHDR o? sRGBbKGD pHYs  tIME 76F:tEXtComment̖XIDAT(A 0 g$ UN0PwHHz# }si%5]>POYpUZ_{X>IENDB` letodms-3.3.11+dfsg.1/out/images/download_header.gif0000644000175000017500000000241712040235120022677 0ustar franciscofranciscoGIF89a{!!))1199BBJJRRZZcckkss{{{{ƄƌƌΔΜΜ֥֭֭޵޽޽,{H*\ȰÇ#JHŋ3jȱǏ !qXY!8 J4 @@@lИfD >ҁHB́ < q$'H(0` a"D`+ZMx*Aق&n8 <PB.=t` `3v |;Ñ +Lfᬄxjn%}<(I[B .@%,PN={ݙ $@C1hAhP8Ѐg0Up @V@@ @@ PUX1 I@A\A, W҅@8 /##%r0(*wdu"4\0&D<)Y WY D[ m ]lM4JmVly@M'&ֈ ^nUG%ߢ駠*ꨤr; letodms-3.3.11+dfsg.1/out/images/right.gif0000644000175000017500000000153612040235120020676 0ustar franciscofranciscoGIF89a,B(Lp!C(`Ń+faG'I#%Ĕ*WtqM ; letodms-3.3.11+dfsg.1/out/images/blank.png0000644000175000017500000000030512040235120020660 0ustar franciscofranciscoPNG  IHDR o? sRGBbKGD pHYs  tIME $gDIDAT(1 @Dѧw!i6uLMAQ>?$p6r&"!%:-Ti,i=F8kIENDB` letodms-3.3.11+dfsg.1/out/images/infos.gif0000644000175000017500000000254012040235120020673 0ustar franciscofranciscoGIF89a{!!))1199BBJJRRZZcckkss{{ƌƔΜΥֵ֭޽,{H*\ȰÇ#JHŋ3jȱǏ CpH 1,X0%Ml.ys=)6phP 8a *t! . dC >af80  N4* Y6+اQV Lծ@ ̀@ :L60…8x .'a̚*Af 3hѤVY` Ekx<nb V?\|a{h;A F`AĻ ^u 0:!p@@tci =(6 L5 $Ѓ tRV.D9@Ԁ~ |![0J@<g0@:b_WrM QuH:0P-9y0q@A00kkWgɡm)hUZG(A%A!v`U@o 0)z @!N P`jF:YB deWt) Jj:^k `.A˗T &=6PLC6P@iC @  ÇTVX00B^ ^8`B >d80 † ÅeTH! %νP. = X`@OT @ :'a ZP90Z` #@0UK݀Bg6@,܌r'@0c4@ݿ+- в'=?=A\XXZN]Ayp@@<@'f@w@+6-FW*X#pQeAuT! W;vc8vpr6dsl8qL@PY@t%AFWQ 9P|}WwSZ%mPҡ֓ Ty hp ALi5\R*pOAV *무j ; letodms-3.3.11+dfsg.1/out/images/groupicon.gif0000644000175000017500000000155212040235120021564 0ustar franciscofranciscoGIF89a!,FH&wrKzl׮2<<`۶m}FsoEk0ZO38ŋfۗ c)%BH)gn@ @4c޼yT-X@:fݺuٳ 5bxBڵkIӤi&''q]!, 4D"Hֲq#`ϝ;Gζ z˖-: ꎎ=00t6՞i)<[nnnn{р*nl@{}!v??m7oOy饗XaBmf2M … 9pmm?"24xoǶmK,#8@`ѢE[oҒ9M43ϰk ,YRCSS3TTTPYYI??8zdXRw/'8},DQBuuu\p2,X@<gΜ9dYǻw [lotu14tKp<#?5J.LSS8ó>455/S^^NYYr=$u=DU Jwާvgg'ms ,d\.%KСt]j QYYz:0M," QRRP8N9tRg@g$9w3X|9K.4-._lܸż|'=zLf#GoZۻYt)`l6Ԕd>_rh% .R.Df4NN7`e$--O,$7eZ!JJ Gjd\U\r*t /fUՑḺc'8{,UUUD""x~R hmh(-(6 9t: @oo/˗/Ry/%x_q)N86ZZZB@ $JQR``Ä`(.ق +Aww7EJ @4$`llh4ʲeضM*rRZyTBcP8Ӹ4ʣ>J,cժUCJd.O.'qsSܸquQJ199Iuu5UFGGYf J Rh顔eY25M$$nHb'xj/ZRd|2xT*י%ZD(VCq ;߿k}X,ɏR^~^qΜ9AVh!Z6J5ZW2oϙcNg5RB//&.ru: P(P,ɟ?ϙ3-x'._ rkSU$…<#4@Tj5S[9v<+Wd͚5c300 VyR,2y8fռXkihh  Y|y熇 zIMOPQ+d߁ap˛466裏+}صk/"\Q3qUUUsN6mڄi@x?wW𬿿vhkk+ƍ9pt5Usan݊$x 3_3)iY@3,Zaݺu477ʂ hii?tww od.ݡ:+}G i1T-[0>6Q3 2q#.L㜻U d Z4S0iuSA~?d"L)ESSJuM'Ʃii.GOC*!ԥ;W$# :;m 7?LNC|\@M\$ @.{ @WWottиP N\ѫlgN]PͶoGwۗPUBTg  Y Ũjj9Iض 3q=o<7+]l϶mο{wM7ӳƖ$(sjILS#sdR5Ki* ro٩uCvh5@gi&>xܵ66a BpH?xශwb@W^XJz`i=_:AI*)Ւ# l >Wң]G\9IJeXr-OIš%EJ5PZPLD]m# LM?._%6-@TJ?nZdѕvJ 0LL 1W**!cx[xb27a1@M9p CZ(8N{vv$-@~W$0l|EQr~?{pr())᪥KI$ZniVovuX{{̘H$ sQiy1+M+mmmҶ׭['#{oolmm.9f`jjj:O )/K,^x&wAɳOӜOʹH)gN?EAJȉ!)%Yh9H)mg̶/~\.NEQPݻw;~b9 v<𱓌!}k,{ @ݭ u/!V S۫־ C:F+tcPPXLw9m >SBU h(~T2 xgTV0]$P7rcmW٣;11.t7%b_bi[9L_p뮮F~~u`C44TSsX0/ni^ŋM*D +sB!SYzq @PVRu-G^j{x.qG>>k{* P o04]|"w!"mz9 /n.P=긵a ?y|IAUd2JʨРko"L>F4͋i /ma||)W.SBZ)\pk.GNQH/$NF?767]X'Cb'N?XTF"39vf/0J# m#LC E6yo67>K8,ḫYZy^s/ %SdTʖo{dPUzzӕb{ BJ,SB H'rʆ;|>0*AˉȖAKX6ePDIFd2u@C204|ghNyyy(V̩xR#h+bldzCӷmE9eQQ.2X6J"ChB`1N|qN|M)gSD sW?c$A_8E,/zɖ6IENDB` letodms-3.3.11+dfsg.1/out/images/icons/spreadsheet.png0000644000175000017500000000326512040235120023223 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  tIME2l931IDATxOl?ok11KPmAEBJU )r@=T!*n> r/1@dVۃ{g0koR~oޛy~ob?"Zk\m*&?hz?/<@>􋝆:B'OX\\%3g^ ]]]ێJϟѣGtvv288l c RE"d2eEXjYȶV~̲㴶ra"]]];vlG000P7ٳgQJ es]ӧOs5&&&q.\j2 c3YYYuEɓ'ǁ?>>.о12A޻wfajjdH444`A_|w.lD)ŕ+WHuIӃRfgghP(,ԩSf JŸx>!N9<###P**\z{~g6+?07@K8{plީ f/[KK RX#bͤZG25 d*s][hg 1Xx_G,14l_ PLOO,{;16%Dփ%W-͑N_^揟R1C|~:gh +D2Eꗦ__^^@r)MH3tkB C?g%Us΍[ƾw~ݭsa7|:  J* ;w.<55lVn1vx2YBA2mȥK:Cx?=M)q{= zc$ݭ+@ (*~QR{vC].A!#Z;M,՘#nFUy|㟘ʖH4rz: h„M Kib,Zx1 vD!(Fa霿`c9FiUSDz.koz[WeU"P@?bޑW Q6 LovIENDB` letodms-3.3.11+dfsg.1/out/images/icons/tex.png0000644000175000017500000000407012040235120021507 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  tIME7cWIDATx{le?{9= :0 HL"$H)Y0*Q%m1 uY) &#!ba]9u;-7ysYtϯn567}ܑ@0;Ǚ ĈKm|B@zt= ~kkkk fv#477wP,d%蠻&RqaEDcaCt?VPIg丮̲TUU3I477bŊYa>Uq4`fp\.G}4'YUk>N466NK{{{ls/ hhhjB~d֭$H2Mp,!J҅W>QJ͸H$9E0/^%Xj TnP+%L4a^,J"aq"̯&L(GDR#7Kk @ϏHG*uH$br9y]K|qQ5dƧ=z{.|lR8eYS@˯;9z(Ѵ7+ @}EؖE"'VX{_{w8yϓkNrtxwX5)i|Ellgkctx3sڗp;p te.U` 8rN=$`@]x,T*ymB)` ߲ˈE#loa!S.Ub'x͑ga,?ŝwgxЮdmv6hsϖn*r8={|5( p+1FJwEk׮?Dh۾C,<\(]ݯ_"1+x/=fdxT p P(+cd|m1X`!X,]ݯp}K;c]Bр 8Nr&-RJH$'qcH -Z8e[c%;pq,/hpڶ)~|3O︊$Xg;r)_ekL^ Tc}SM YrY\&xps/?c` ך7̿ST~73Md8̛_,5ö0}|Ė{V疍i?NaVI6FY?;^ee<+bSav?vC9Qntk+ XJ8VwcYRL&8]d"_X51}h mѸ4(|С1"^cێ|wy/6kaYe4Nk뗵O3ZcA)gY@tpovc<;ﻺp{s%lQ8X"zEǻz6(L^&nXϒoe`p1I"C_12: D^2( }LB#+lud:H1f!t1T8"mY` b 'c*Ÿul'$"8xDJEDGgHig s@\6( >e#@7ˉy\IENDB` letodms-3.3.11+dfsg.1/out/images/icons/powerpoint.png0000644000175000017500000000070012040235120023111 0ustar franciscofranciscoPNG  IHDR +tEXtCreation TimeFr 21 Jun 2002 15:46:32 +0100t~KtIME .6Jo pHYs  ~gAMA aIDATxVA ң#| Ŗj1^v!-i)"sÓUu^RRwӱJ) x"r]c,p8\cco < &( PCF|g^͕ gUPM;>|`~)\ 3MS%!|XkSm8T+6(eFV%((=M+K\=h,rW0GVM3ӞƿDd ]5W/5 (@IENDB` letodms-3.3.11+dfsg.1/out/images/icons/html.png0000644000175000017500000000555512040235120021664 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  tIME5 6 IDATxylu3Eq,; pl.EI2M6@ZAPQ b5i S) KZ=-efbJxy\{_-ėjY[mϷo?gy&u7^ J+UF^hP. ow<soؾ}]ָKRfz:0ccc rY0■֦:r3-+ݒjD}K<}|G*`m&Ίlr̎;ؿ?,a;@i6+ [JBJtc+B@^J5JJțip&o@\fڵ0ֺi4*hZVF+ ZUgn=yGӷ7ZֱoB`YdrXK/KbF6Sy[&ό_J[#l'?L7W'5\ckDWg'ebYB*ׯ_0}0Atܸ >n}^96lZ2f _P;2FlͶ1RO5 ֎i _g``T.={7:-# L3n*Ɖq}xpqrQ F߸}E%fV};?xinꅇW˞$nqt(BfzB5C~UMlܰ0_cTMO059K@X`_:7|x[`٦9wxس ]1wJ|:o~fB$`h2WIb$5^=#& $Md}$-ءMg47@0JrV-|ce3)림qh+پk#9{,3h ĢQdl7mirܭ?9X}0ғL]&olaLrq+,c, oX Kњa&nh?>5nW+&R8Zd2A8G w؋/H;e.ME=V. ý+}PBD'&}lLIe|pyͩdBH^T*I2YՅ9VdR8%7ّ8I`,>AѮsK 6Hԁ x1r ۀ77L蠤##Z-7d hGBSǙR!naADش㯸dcyH5DƮ29 ׬u:dZg5 6X>g໾ qgߧGI7eW8R3f/AV}=pж^.B\"}<tpgPJ ZfcN|WpvŘkr^8AIjPs3Ȗ߅SDi\^ D.ʗ^dO(\Pr9if!/Ys %02QWF\UBRȫ&&&1i@-HPqZm 7.6f%4 4u> *"~&xApXKTKEɶLLbJtZ&Р}VK_J#AA8coŷ#XFSJ_u9ӓנV|5Jkfն?>;IY6<bI;t!LNE PJs :7~Ch-d2|avr}utjJ&Q)6}&%YNKev` \dgě >tСҞ={j} g BJ²Ltt"J,!L L!J- A`ioVOVݷSwHV4`m lĶ l2BkG+vw!dVxBJh R=_Dڰ hÐX2@+!K/5/TA~s3 ,1v)}[E+ڽ % $Z{+V[NHk_ ?G0;wڻi/ۂ0d?T{_/4Pk+$P?`#CIENDB` letodms-3.3.11+dfsg.1/out/images/icons/ooo_formula.png0000644000175000017500000000156412040235120023235 0ustar franciscofranciscoPNG  IHDR szzbKGD)IDATx͗=LSa{-?&$$.E*$$0Aascč+ܹ800 ƟE]5 &V-m^kOr}s{νˮMMMMޮfM4,T*R)D"ρK_ ("0&7k˧sL9]1zXFko݈^)'sE7C ZC(]DDH&}'1)I×=A mu c4`@#*zO"F;06"ph͍86w`vgM|92%z/Ҿ"UZ+qm ͈1FagLр\WG"O~ ((؆/_At<Jo況8N6rũɚL&GN(".×?#e2N']]Om pYQ .S<l?F3S>oɗ&Te⳵l]x}Ak?5#2u]ҚotֈT 熊G)+@fҸȺKq//n]@~Ar__۷Y-_508^W-Α|F\?+O~ zi#oƀ3% JavNa[c`3PɄVLD>ZDj^@+Z~ùoAD pzAIENDB` letodms-3.3.11+dfsg.1/out/images/icons/document.png0000644000175000017500000000276712040235120022540 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  d_tIME+ "#sIDATx_l.^VADJ%R"-i)/Q:O(BCT/HfM%%>RHn)mvamݝ{9}]5Hso|݀&u?36|Eׇg=' 闚 \.ST(޺יy````P( ̮95̌0 +2998W\aǎ i`U0VRL 6yfX,sN*mbtuu#P,޽)Y\###˂w g/0^5 axL\rd)B1:6a=tvlls6OA3;&yΎvffi6c 1".TP&UUJ9@YɐI5vEKQX̓*f!>dӖIsYF~iF̢T0u } a"2@2bfSLLb³ @ })3d VÎ֝a9h]H/ wobF F|2}ZB@xW#Bq F+vO~z[gfj_#т 45Ʋ0udQ[/F}ӣ8LQ"q}4iث??D<0r5yL-vbVT@ޞDK/5ɛ}/$58w?ɒl5Qb$-U=s a܅Q3Ԥ."J`ҴqRJ0uJ{F^o3c4aGJDl1uԥ gׂL3?L-y5.-[o#42u-'ّlQ $bĉ:Ҿ>ȒFs"au2 jQtֳ wD*\@,وRʊ9 jQcE5 {j@כ 2eBo-_+,r}wD(GzWIENDB` letodms-3.3.11+dfsg.1/out/images/icons/default.png0000644000175000017500000000217712040235120022341 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGDF@ pHYs  @AtIME l:IDATxOT?w/1HPD č,MܑrWX01`F"_AsNgڙ$t{?|紎_Esex666>ڀ޵N0 DMF NC#...X__{gg . j,//9̈gspp;;;0 E" C&&&㭅Z+++lmmO_f;OVh4Z-Y]] I# C&V h+vB0#*%yU36{{{j*\5 3cmm gvvz 1gGsuK8H1isCצW՟0;P/u`@gF@[LzAmg|D<<lԨW|BQˍĽTĘ[&ͩ3> A\ja@sI|B CĉSPg8!a%oBEǝf}ӘjV0kjՒ #2bfg4Q Ƙ$`81DK` R0D>f%A^W5"xO ^`\cUwرI"Ƙst|;/ 2YLd"g$ K P;GwMQiTFBhHUJchwlI~Fʴ?y/# i!$sݳjzCI#snk UYdROJθ"tͪ!%.ʹЕHWx[f|ϙ78O˖oFnqjAOH|}^ uAĢ Z%mF"jD8@Ԓl ҹ `Q71ǥYĘf}ug%AF ?apBe!L\!!?Qh3NIENDB` letodms-3.3.11+dfsg.1/out/images/icons/source_cpp.png0000644000175000017500000000264312040235120023055 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  d_tIME@IDATx]lTEw]nKiJ| &Z5%R&U%11@>4i &ƗݕDLEƒ/ј4&@@?nw?ٙ;9sΌA|񇢔TTrǟ*0|"E M#@m&&'}СCp=0La"Zhii;ODܹez:ccc477gd\)n*XFٺu+3Y^0 6EEE555l޲h4JKK 8ƦMτBEp8n^/hh2yxW%`0(^doooxppP`e6=B455ڵkIgY D={PSS隣Z;0+lld;}ʦ7hZ|nc5"a~x|xKdkɖ$$vmƲ,6Hֶm<%ltzm/"ĉ\wu(0Mq>VMuuu( ضC,HscHDԩSԬy؎e[ݐLz VQR-V/ǝwɦM.g(-C+Ipݕ7'w3f1esT2VQ-S*H QqQ.]:̹>ahIKIccEN$уOfL|<{=wcru=j&]"@㇊Zo~^zkײe˖eFK2ı4&DDScìd<} qJ c*5 *bMQ(G#;LEICc R(%1KDJ>z|Fw^!===̙N|8]8]9U8=pf4:s}m۶Q*) 5"0CcmcfWa֜/2@ @hښH5!m$mn#xjǷPQ [hNEBSg[Dq1gkz߾}" CG]˺y91ni,O4zwBk`Q+Wu/O-&";C[X,02\*M(B " %?ȹ?@i3uikk%nĩx쇓akk maaKBo'K,!"w@E*Jєc5Z7ApA~̂Esh_J˼4~X@<ـ6&&FǩxvǧRft7)SX ϝ@LO2)СCo' CyT;m5>|RL!_"/07(⡼KEߢ*i?\B6:^smT~hgwf>; ^ݓ:Qt?jcǎ}XV@xx' YFi<' [׮-sb3g{q}qĉK0NAvbjVŝ6;RUΝ;#Okޱ΍P … ߿$^zwyҍf [Pk-EQERPTÐ0 ns{n>쟏;C ዓ{c>~3WɗYHrTݓ,vߺ+uZkj/2_G}>^YDž/q5[Em_+xqrϟ~Ϸf*'g_pK\QYp*fip./pÇ#"A@ل dlljF1N<vx}>ynȴFsPoH6m5CTʩǽ_'xϓ)+++aXhɉ]3";s]Ğ쑿Ha弞*:֒uK$2s$#⩩h`@ԬaU4h4k9҈ v!dR(rbrڜ-ҧ&ms*AVV55fuͺ*a|&MuļJ3ҬLGfg1͉rLHt>X[ZJҩb-pR p!Ԫ&ЛRۇ=lGKi/<}Q1$#U&mc3ˌnoq!yRA!,+**̋꒜!6]ؘNS_d 4tr<p.hL#??m۶qĉ]VZϧ 2ҥKs gŊtvvRTTDAA. MGG׋6oތ}ɓ xX?EUUyG0~LիWYr%~χ\~7 "I9NA211sa, UUU!@O|`(Zzi $|-;#H$b Yl E0)f5.D/=A7l6***Y@OOJʢ$(-.Fa^\k^=hL$\`.lv[hyÁnO%qzrMAȇM$QJC8'[?6M&뀔)g!Y%_,ІY ,YYY Պjeڵ[~tuu6E H?Zk3(%l&@w  %H)SPb~LQ223Y)C=ŖcbNE۷#`׮Տ錯H-.BJŐr 9NWiƩS2!"F4$z$4Xk~!uuorB6 !ؿ@D9[Zá2fE1[DswF/ﶶC Aaω%ؖc{=L(8E'?9ٳ=!$ǏŐTfߺ% :M7oޤ9`immmюnv~?XUUeoE4MX B!n@4n߾MKˑ%ݠlܨJ =]3::=DwYJKK@ \v5kj }BK gl6MOϏmY|>/JܨkGNAII~())# RRRfBp4p4qb/6ղcGc|\Bd\NzR~%y.9tp(e$xbD"Gd@  2<&e,Zs?'}8!ּY{N xYDSljoُй@t˿F-(IENDB`letodms-3.3.11+dfsg.1/out/images/icons/source_h.png0000644000175000017500000000255012040235120022517 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  d_tIME3`:IDATxMh\Uo3IӐm,%EpcZ)-~PID\RJRi7J""uaJژ|iB;m5yLM>f^.޹gskQ}ϐ³~k"`[_)F&aiiLMO1??,@__ߣd2 ,G<tuu맪dYH%ɂ- IYȈǵx\1+ǎȈb1ZLXx߿§յ433Ν; ?ƍq`]۰pxԨj.v*˂56Ֆ_~uw'UT}5"d}6FTlq0䢰LLF@TEW" /]||z%,ؽb0g DbͳTd+gш:4Ʈ]q' ycqpI,߈KB 4uӔ#Mh(q/" ـW؊|"tHi(hT}pO¾KdJr5E"1`CD Kp/n/3qql*HYYÖͨ TS]Usw\piLDԓ/Ӽvɸ4 h>456O{p+At&o JYq(@DT07?8` 2xIENDB` letodms-3.3.11+dfsg.1/out/images/icons/midi.png0000644000175000017500000000342112040235120021630 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  #utIME:$IIDATxmlT{޵^Ȁ]C*8J. URYQU[HQUT$+B@ŏUm E#5R(ԄE쵱k/z̜~a7Gg9sg-`=?}E(m.uνwvww?,f<f{]H}2dii7odzz Ώz{{3+:::ّ#GmχmXJs'D+W022Byy9XLooN<)ru2??/J)1ƈZdrrRξ߿_.\ hTj(xRڶMII l}QMMMFBy}o tuu1<ga>A|&㷦 | h^4#R)Rfg(SUQF0ZqڿB5IkkkOii I"F-gaҴy}KAGK)J$Z,D }bҤ bvD;vlRZP$pYxsÞ#=4OҥKTTThmm{߿xGg"M dϞ=zLivɖ-[# 288o!FӾ;V18Khy0e(ٓ`Nq!X 1rFGGhhhqA ed=Ҥe޽XE7_@(v&C`߸d͔&Hzckhh`?m[ ?~U27J§7Sb?hQ^fdAC*Pq&i 1j9Dk{~('Kr ԑ4n4hDkK =V8F%]D Cgquު{@kk+/^̲|y@=9-?M@eD4X<ʡb1x!Dkqt413_+ȟWz}h]qmnn.Ȉ7額lXWEqƲ <wNbT b6X#J˗=4g߽Ց 7nn=yYIb}vZV ?u ފ/L,דW~v4IݫO*g 144tE[?-iz]eh>a_6-Aܯ& 's_}UXF!*Qv(@ZxOzP(܃C& :!gHO@1Ub]h0Rd3- nˀRJ81NLYfX bx,q g T7tecۖw?Lґ-\|mn2`҇j_+̤Yj $\+L@h?'IENDB` letodms-3.3.11+dfsg.1/out/images/icons/ooo_drawing.png0000644000175000017500000000326612040235120023224 0ustar franciscofranciscoPNG  IHDR szzbKGDkIDATx͖_LT?wf. "uFveXw4 IX6$fMmMݖ4m_/.uykL+6qKd)f)HE`X:w;NYFgnj~swο9i,..u牦i7{{{*Rii!iJ;wN _i |>)((={O[nRJ>:tH+i˗x{U8 )R*޽[eaaADD$K}}]ܚ2dhnn*z땪*ijjJ `۶ض-HDܹKAAX&e! i_:4 BP~286j@DzQJ!"RQqd+++C)PDRR?R hqq~?p[  @4 ˲O&##jzzzXf OOOt#ej˿Oss3׮7wۺhV` (lǶ}euc|c61‚i iS "tttB)E]ݛtvvqϘ ۥ)=xol۠_)پ)7E^7(t<%%սo߼:mLBdl }?Xm 1lXus| KYqE N,ݴ/-݆k:?`+;Ĝ  GLdيRW@K"O(6-T R85MF^A[7>!kC72~OcGR+K!S}ENZt4^U±(uiyAôw8vc*Xߑ?"7ӹԮjض_xܠ3^d3>5Scp/d#o-..'.I kLؕ6&X$tʩ+L|u&cs&S dS,,P1m~4ҿJ[E ˲t݄MLnP7y>7]"p]۽ؚsc#LO!"Kvg`_Z=&(<{ݛ`-L=`|vsؖ10p A\:E], vҎ*|>JK]A߽ :O^ ˕(SlM#jİ[$[y!b0x?\TT/**&@ a y0",;aL=s<;M-`iRHUoYkVN  Wwеd9VoBc T*Qɞ͒D8q+Ʌ`f^@k@OOς 2FG8v'O `A{>Fm bq2 WwtP(`hsH y\AC8mFI\|9B6lpI{& #d:̧15Zk{? L&) ̉FAf8M(p˲rq"Ocl۶mN8]KϙUTuJ)zr;9n轙kpg㸮m @##fر#GL̬ywY>]r 2ʁs;A{<=[~L" c66mbppt:MGGR,ioo.`rN{9){ 91"tRz xc/kƾ}/3<< D^zQ>̍s|,#g'ʟgzjJr3p@-{_rJ̞ݿە2Rp0YtPxޕ+X~ ^;ȷ>A4Í2]"i5Ɖ'J"@f6es?Ww?!setd"HKeQkޅ ,ܰǢ8%8XjYY-J コ mUSR)A%v(?K-(E)L Flj"U,^T*88B!*\\n oaM"ATd"~ ?+)Rǭ!@z$1⩥. ;_el, H}% ?q  Ϋ+"-1ci6cA*[u3wNknD Bz8BB 0ڇ1,8^.M_;ˮ޿Rr]8t->\]Zy0Kjp0dC#@"Yy,ᷧN->Hf( @ ZIRhUFC P릊Rvs:(+>!]U$1T  Z@ )b|E\H\W* 9dVթ&d1(C1^9tvLYwxv"F&a2X=A>'ND/P)R`xN0^lQڒ^QhӘ^\\^qGu1n}dL3lwL3WNpoYV^{˞%2~:TQ"ՎGf/ >le$c9 IENDB` letodms-3.3.11+dfsg.1/out/images/icons/sound.png0000644000175000017500000000400412040235120022034 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGDՐ pHYs  #utIME&CQpIDATx]W|D(`l RikĆVp&rm)7+i1 ҈Ҩ @֕@[Į3Nj2n$39/yFHc]ײsֹ 8p`7By@8F٤jQܹs{:r`q@ooD4Mwƭ[ q5l‘#GƀaRAAXr%_ZZ֭[yƀ˹K}$I²eذq#Z^vܹ(VDDrZ$AH2ouZYa}F`{eN:vn߾ Ƙyꌌ̃9x {Yrif!~234skrUV4Msٴiv 1fadߧxSrbʊ+Zce߿>0$7E5|<0<$~֯_OX$"<ӹ[lD%[X(2pz@= ĐU{a1|b˱RVZ-ҴC()$$ʋ(KIؕo" ݩEʏb1nA+k7B ~ Y˗ٶmr .$ QG`L κb SR\hP+HemPJ嘚f %VŹvI\⋣eZZ,A*OwO# }瑦)iͩ###J%Ygq6Y)V:0<&7ۨИ|5ZKdYݻw9{<¡D@l۾.mf<%NC/"U׷x^vY>(MS9y#5aBa;d8gV:cE\sL Ls6.]jw199ѣG)E$qD.I\Qg;-4%^h0r@T*sd'8v1W_CD"`R sNYf e!  !GRʚBpYzzzf_Zk6mjeppӧOT% iiiX(Yim0Obc,{!Hj*4lq+\`h mS6ħӵtyܢS |N02R<{?{?(bROVʞ[Jv!b < ͅI0WIa3n}{@Iђ[ٜ/TSq?g}UMk%;x AT#G`V?O17Js5W&!Y)Yzz;w"! /s߼颋t"{nhnnf֭ݻײ۱N}!&$Tqֻ/x{[̜gZ+&Źsj6GQ2_'E 0%qR݁DJQW!dӖbX,V/&tAD<'011y(53(Ͽm%.^ۖηm qH$[ݼ uKeYD"MM beaPa4afy5 y&\םvH), uq]!ku(Dl,kZ*iiYΊI'*vD%wK \Dd)mcWz0|>ύ CU!ciPJTi<,k^jܹsgAxo:%;eLK;6P&ܥ|)- & ? I@X y*kIENDB`letodms-3.3.11+dfsg.1/out/images/icons/word.png0000644000175000017500000000074212040235120021664 0ustar franciscofranciscoPNG  IHDR +tEXtCreation TimeFr 21 Jun 2002 15:45:03 +0100tIME -']9^ pHYs  ~gAMA a9IDATxVA ʷ(Xe3D#B0`qzL$dXU= zs7bX4P0 j 9RiqxEˬ#(C<(BWqܹދ9XWIA5`eYC42 e(7m[9G 6J%:ɶ#2 p͖*ρ1G޿bKяw[F_+AM码U-PqAIBm̀Gt1 qm ZQkvK .MD5 :IENDB` letodms-3.3.11+dfsg.1/out/images/icons/tar.png0000644000175000017500000000402712040235120021477 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGDF G,0 pHYs  @AtIME kIDATx{TW?Ν;]㺺4ܴ 䑘`QHRh151Mִj0ϰ4%V6"eݝY2g枇ae4䞙9>{3"h1fpt:MTX S cPJ+/rKR.QJrr̕+W3oکRȦGY۱֥8W5v~d2ضeYСC9sfxj6Yw=Y?>]qqk'k?{ɆM,>}{~J*"b6;wdYZZZhnnrLss[#)b]rD8 scn"ERz [Mpk_/?E* _F:7K 6X&c#n ]6jZc/cJR&!E] [X[,ԩ'RqKcDc 4fKh%b@NkϮvu/V} ׍L6K:! ob? k,D1R@{hRj8 "@ϪUmfɌL`Sss|rѰE:R\b4wA#pp\$qBj.K,"8 "H_PS( ፗ ,I%bȪ IN%)I.qܚG* Yڼ:CCy@y)%PX6DT0tAf#jbjrQ|78C<&-Ο=A0'D!j.5(I Ä R " e$qF/^ HE.:F!!ݐ 8Cu 1G)eyA*0qxϊm78Ƶ96n\_&p(z~|GyD-Qq)R1n1uWo[wPr͍'] _Oo }ny͟sI'c4eRc"! Z[R2(L7lH%fe}a M4%"nh*Ai(m76(C+NWH)0FQ\/YXR (dIi)%=?;S)m LnI!epn!W!&@;-0IENDB` letodms-3.3.11+dfsg.1/out/images/icons/ooo_spreadsheet.png0000644000175000017500000000310712040235120024072 0ustar franciscofranciscoPNG  IHDR szzbKGDIDATxŗo\W?{wzklD4q`ljQ0TMJ?"UH< ATD)@$&Nڢ:I1imǿN컶wy=gxe׵׮HHG{v|gι>4~UL|yrr#@tIr4Ķm .HWWo( `hh9Zo;lۖEIRre~@k׮Q 0q8p={|>ŋ#?*s X,֚T*EKKKՆupND, 4Ih B9st:ʥK "Ӊh"%H$dY$ r?-UϱaX1Bs\)ɤE&իy"@ׁ@4 Hթ_6"X,G:bffL&ý{6|5F?2ܮ87WJẮ7WJ!"h+ihh'H4ܹs Ɂ*VJ} uE2 -Zfvx w~@+ e kI\-!҂^XYd嶋/C_;͛7" 4d[!7HfT:8hBc7~ fkPp^ Ʋ{G[)'SZph4֕C@)5O)jE)i%i^'&p˧TZsPZXWzy^G .HHt:G0-8Ɋ J/pjG)-7.]jbb-LγW C\D4ɤEQ TCK)PZscZ:yk5l\uFi)gV jBkkXrh]:Jo09>NcU0r>p(;uZpDp /͋DOPʥä#`8+ԗ+o)$w%Ef|_s5"! ۳`=ŝѷYӧ>\awh5J$/}Bše2ıo~F(C+hykK(&8an+_J[p*-xopjѱQv :vk7mMffɲy|O9}s|}Z9ڋ4޿{,ɧqlEhOV^8‘#tvvesmr7?>2 "[W8ry>Mrۓ0355*WKvyym}y[垰Sװ'r0 +/֧(kljHcm\vawMW_rYn>_] ?z}rri` w#6βnRVBI$#>lvԩ{kw:sG?v7z5ŋ\|GySNw  m"* _VYXXĉϊ;v|xYXX`Ϟ=o *bA`6qw `ii+Wl fb5wj @__j]vOP㿝.pmsEŭIT[W?d[76pMn\F9<>dڠwoCO1*p?r Ԝ{M"@kE3n" 24CųHQLҌQYY Q'1IR0 >>sx%ijֆϜnsh3#MD5iB&RJ *Ѐ00:B&Jԧ3KTȯ@SoSzRJ(*P9r8Y"՟Ey sN*xuQ\ya1Ơ-rS6HK3wXJq X|.t:M&!9;[vܙV>7OGχTW,g$MK<q`E?۸U g萯}uuu4דL&`Ϟ=*Z)߻ 0v4Xbi7sʨe&$lݺ0A?ümD(,TUUL&. sX #x7=E׹G@Rr 籰ٳ|fs)%1捥2Ldh### Kٻw/;w,ʌJTX YP7[י:ˇ?\1TQñ}vX,F4eaaX,ݻwSJuCUT@!&\~5wLbjp. dff0 $FgfvqJ#۷-gd['Ar} ߋZU e-~#DW]ƺu멬Z_RͷB~5WE*P 9}B" _ SD@z= +.p ;W,ѹϖ2"TVD*~kj$ |>fi!1 %2v/ȼdfnj7FDS+0Yjkfs+8!*)- _J<B( ;عDڈ5AYJF1AC$P]]EUE?@W_ق % ɻd >&g,dø`GΖp,kX&AXs (]ZZ|zR đ$'/)B YA\AL+Vs:[ٮxPLk,ʀ'ƨ!KG1AJ#g6ܮћ; шܽ1NPBYjh6# NYϤe||ɑ!HkdPsrmNV! Z S܆#H1wN| /SuW<F:M+ː8k8}iB^ 8o~ق1T4"Bi;oyMD%".tŃko ϯdFaM:Cк5M[AzzCsvDee)2TgsvǏכq( /hVq FJ0ATU#3KYX 9z8"c'Bl@(TzóR Z˫p?b 4 }$SSLk~2ȮݏX+AnyF{^ClP ""_sFVgy忢<.6ĪT#]+FgLN;V TrΓ 8"R,Y `-X͟=wz3GxW@Yk㼀[wt6eOLDϒͧ;#b0s'&_;Gger߇pyy472?wUDž u]RS @$e\]h =Ҁ}Yr ΂Xl-kEO)1kstUS7x̪o90".8.!G9NOZQh&Rp`ΥŃȭ`2S U/^$2") JN"߭`4Kвd+X q轘reb ÄIENDB` letodms-3.3.11+dfsg.1/out/images/icons/pdf.png0000644000175000017500000000452312040235120021463 0ustar franciscofranciscoPNG  IHDR"":G gAMA abKGD pHYs  #utIME"3)IDATxmlSv4!DQFH)&v:+TMihnؠT2 Q)0&.ct--  [V\bkvl{;Y[Rutts氟;}<_Z̳5pwW_}I` "ǿ>bRDq%J%:;;swn fn!踥rL6$gΜ,_ݻw_n d>f`Fhj"p}v+Ŝ-Srf)BMM uuuF&GydN/9J%J!0 "L`^0sSk^.G~O*brruB:SSS\xq^0sפFJ܁nv 0ht<̹sH&r9|GVpҥ`vIgg,yFJI:ȑ#.0:0E)r>P(O_qJL<ӬYv֯_OWW/^Ķmm۶of^8L\BШY:;D80B$Z TX,Fcc#|/!DC7 61M l֮/$iYX(C)hjǴ #%CQ:Výl9Xo V_phte\,Y *s\s{Y$]A1W`2Gϓ]]7'|hV p" 3pc!H"i)"#K6lx?R)|G}}=\>,bǏ322B0$Hpp8hep8D>ү(!JN*^---Z 4IJ4%+B,cOq?q5.X P G.}utzȪ*7nlbt,x41 bH[[pz[3/4CWm6H+*|ֈ dƯ*oCok> uGMй2 E0hLB&EU \ΑkM.mD4B-!)`&!;@XN@T(jBEf#өʛNCCw.i Bᕑ)   "%BgOd۶ k r4\t/_ɝc2HUQ( (xgUT < p r-}#QBxH"]!+)WQI~.|/ELBn:{y^pf>/V!9xKIENDB` letodms-3.3.11+dfsg.1/out/images/minus.png0000644000175000017500000000033512040235120020727 0ustar franciscofranciscoPNG  IHDR o? sRGBbKGD pHYs  tIME pKj\IDAT( 0 -{ăo' BhJҸZJ6AS'1H<1l.݉3'w+[5GIENDB` letodms-3.3.11+dfsg.1/out/images/line_vert.gif0000644000175000017500000000157412040235120021552 0ustar franciscofranciscoGIF89a-,-`H0*\Ȱ@J"ŋ-bP#Ǐ =)rǒ&7Lyq%ˉ._v<(c̚ o Is'E> :gѝGq&TfӗOYF; letodms-3.3.11+dfsg.1/out/images/usericon.gif0000644000175000017500000000154012040235120021403 0ustar franciscofranciscoGIF89a!,<HX0BBdPbĊ lF1Z$F 9(Ic,; letodms-3.3.11+dfsg.1/out/images/path_left.gif0000644000175000017500000000161712040235120021527 0ustar franciscofranciscoGIF89a5,5sH@*\ȰaC JHqD3>Ǐhɓ$S.<ңH*[3L/k2΍<[tPEMtRM*'UCVuͮ2u1 ; letodms-3.3.11+dfsg.1/out/images/file.gif0000644000175000017500000000163512040235120020500 0ustar franciscofranciscoGIF89a!!!)))111999BBBJJJRRRZZZccckkksss{{{ƽcZZ911c99kck)!kc1ƄsJ)!19J1)c9)cB1ƽ9)ƽkcZBkZ!)!91ֽƽ焄{kkcƵZZRccZ{sscccJ{Bss9JJ119R)1J!Bc1))Z!Bֽƽ!)!)9)19199s{cB9s)1Bk)9Rsc9RkcRJ9{9BJRcsJc{!BJRc{ksJkcZJ9)sRkc)Bc!JR)BJJZs1s猭!1s)cεBRsRJRc)Rޜ֌c{{sk9ZBskssc{Js!Jքcsc{ksckcsBZRsckJR{k{csZkZkRc{JZBR9J1B)s{ksZcRZ9B9B19)1)1!)!{{ZZcRRc{{ޭ11BkkRRRR11cJJ99{BBBBZZBB11!!!!11{!(,yQH:XȐaB"JBT!J诤'ɂ"GFb%A+UFtR#Ǒ5QO3eҴP#ѝLƜ1(R#)FE`Z%hلh; letodms-3.3.11+dfsg.1/out/images/right_in.gif0000644000175000017500000000155512040235120021365 0ustar franciscofranciscoGIF89a,Q H*\ȰÇ pPD(Ǎ=z pТH <) Ŏ+`%ɒ+yfE@ Jh@; letodms-3.3.11+dfsg.1/out/images/view.gif0000644000175000017500000000026712040235120020533 0ustar franciscofranciscoGIF89aBk{{{{{{{ƽ,kI3kv50`8u*4AdpjoP |d(, de,a!]ILE"Q>ղB08tey ѦJ?"r)O9Ɣʒjɀ; letodms-3.3.11+dfsg.1/out/images/right_in_plus.gif0000644000175000017500000000157112040235120022426 0ustar franciscofranciscoGIF89a!,U H*\ȰÇ pPD(Ǎ=E#1LE)vD`Kရ9HѣH; letodms-3.3.11+dfsg.1/out/out.BackupTools.php0000644000175000017500000001476012040235120021375 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } // funcion by shalless at rubix dot net dot au (php.net) function dskspace($dir) { $s = stat($dir); $space = $s["blocks"]*512; if (is_dir($dir)) { $dh = opendir($dir); while (($file = readdir($dh)) !== false) if ($file != "." and $file != "..") $space += dskspace($dir."/".$file); closedir($dh); } return $space; } UI::htmlStartPage(getMLText("backup_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("backup_tools")); UI::contentContainerStart(); print getMLText("space_used_on_data_folder")." : ".formatted_size(dskspace($settings->_contentDir)); UI::contentContainerEnd(); // versioning file creation //////////////////////////////////////////////////// UI::contentHeading(getMLText("versioning_file_creation")); UI::contentContainerStart(); print "

        ".getMLText("versioning_file_creation_warning")."

        \n"; print "
        "; UI::printFolderChooser("form1",M_READWRITE); print ""; print "
        \n"; UI::contentContainerEnd(); // archive creation //////////////////////////////////////////////////////////// UI::contentHeading(getMLText("archive_creation")); UI::contentContainerStart(); print "

        ".getMLText("archive_creation_warning")."

        \n"; print "
        "; UI::printFolderChooser("form2",M_READWRITE); print "".getMLText("human_readable"); print ""; print "
        \n"; // list backup files UI::contentSubHeading(getMLText("backup_list")); $print_header=true; $handle = opendir($settings->_contentDir); $entries = array(); while ($e = readdir($handle)){ if (is_dir($settings->_contentDir.$e)) continue; if (strpos($e,".tar.gz")==FALSE) continue; $entries[] = $e; } closedir($handle); sort($entries); $entries = array_reverse($entries); foreach ($entries as $entry){ if ($print_header){ print "\n"; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $print_header=false; } $folderid=substr($entry,strpos($entry,"_")+1); $folder=$dms->getFolder((int)$folderid); print "\n"; print "\n"; if (is_object($folder)) print "\n"; else print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } if ($print_header) printMLText("empty_notify_list"); else print "
        ".getMLText("folder")."".getMLText("creation_date")."".getMLText("file_size")."
        ".$entry."".htmlspecialchars($folder->getName())."".getMLText("unknown_id")."".getLongReadableDate(filectime($settings->_contentDir.$entry))."".formatted_size(filesize($settings->_contentDir.$entry))."
        \n"; UI::contentContainerEnd(); // dump creation /////////////////////////////////////////////////////////////// UI::contentHeading(getMLText("dump_creation")); UI::contentContainerStart(); print "

        ".getMLText("dump_creation_warning")."

        \n"; print "
        "; print ""; print "
        \n"; // list backup files UI::contentSubHeading(getMLText("dump_list")); $print_header=true; $handle = opendir($settings->_contentDir); $entries = array(); while ($e = readdir($handle)){ if (is_dir($settings->_contentDir.$e)) continue; if (strpos($e,".sql.gz")==FALSE) continue; $entries[] = $e; } closedir($handle); sort($entries); $entries = array_reverse($entries); foreach ($entries as $entry){ if ($print_header){ print "\n"; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $print_header=false; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } if ($print_header) printMLText("empty_notify_list"); else print "
        ".getMLText("creation_date")."".getMLText("file_size")."
        ".$entry."".getLongReadableDate(filectime($settings->_contentDir.$entry))."".formatted_size(filesize($settings->_contentDir.$entry))."
        \n"; UI::contentContainerEnd(); // files deletion ////////////////////////////////////////////////////////////// UI::contentHeading(getMLText("files_deletion")); UI::contentContainerStart(); print "

        ".getMLText("files_deletion_warning")."

        \n"; print "
        "; UI::printFolderChooser("form3",M_READWRITE); print ""; print "
        \n"; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.DocumentNotify.php0000644000175000017500000001356112040235120022114 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } $notifyList = $document->getNotifyList(); UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); ?> \n"; if ((count($notifyList["users"]) == 0) && (count($notifyList["groups"]) == 0)) { print "".getMLText("empty_notify_list").""; } else { foreach ($notifyList["users"] as $userNotify) { print ""; print ""; print "" . htmlspecialchars($userNotify->getFullName()) . ""; if ($user->isAdmin() || $user->getID() == $userNotify->getID()) { print "getID()."\">".getMLText("delete").""; }else print ""; print ""; $userNotifyIDs[] = $userNotify->getID(); } foreach ($notifyList["groups"] as $groupNotify) { print ""; print ""; print "" . htmlspecialchars($groupNotify->getName()) . ""; if ($user->isAdmin() || $groupNotify->isMember($user,true)) { print "getID()."\">".getMLText("delete").""; }else print ""; print ""; $groupNotifyIDs[] = $groupNotify->getID(); } } print "\n"; ?>
        :
        :
        ">
        letodms-3.3.11+dfsg.1/out/out.ViewEvent.php0000644000175000017500000000545212040235120021061 0ustar franciscofranciscogetUser($event["userID"]); echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
        ".getMLText("name").": ".htmlspecialchars($event["name"])."
        ".getMLText("comment").": ".htmlspecialchars($event["comment"])."
        ".getMLText("from").": ".getReadableDate($event["start"])."
        ".getMLText("to").": ".getReadableDate($event["stop"])."
        ".getMLText("last_update").": ".getLongReadableDate($event["date"])."
        ".getMLText("user").": ".(is_object($u)?htmlspecialchars($u->getFullName()):getMLText("unknown_user"))."
        "; UI::contentContainerEnd(); if (($user->getID()==$event["userID"])||($user->isAdmin())){ UI::contentHeading(getMLText("edit")); UI::contentContainerStart(); print ""; UI::contentContainerEnd(); } UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.RemoveDocument.php0000644000175000017500000000534712040235120022104 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("rm_document")); UI::contentContainerStart(); ?>

        htmlspecialchars($document->getName())));?>

        ">

        letodms-3.3.11+dfsg.1/out/out.LogManagement.php0000644000175000017500000000615012040235120021657 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (isset($_GET["logname"])) $logname=$_GET["logname"]; else $logname=NULL; UI::htmlStartPage(getMLText("backup_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("log_management")); UI::contentContainerStart(); $print_header=true; $handle = opendir($settings->_contentDir); $entries = array(); while ($e = readdir($handle)){ if (is_dir($settings->_contentDir.$e)) continue; if (strpos($e,".log")==FALSE) continue; if (strcmp($e,"current.log")==0) continue; $entries[] = $e; } closedir($handle); sort($entries); $entries = array_reverse($entries); foreach ($entries as $entry){ if ($print_header){ print "\n"; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $print_header=false; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } if ($print_header) printMLText("empty_notify_list"); else print "
        ".getMLText("creation_date")."".getMLText("file_size")."
        ".$entry."".getLongReadableDate(filectime($settings->_contentDir.$entry))."".formatted_size(filesize($settings->_contentDir.$entry))."
        \n"; UI::contentContainerEnd(); if ($logname && file_exists($settings->_contentDir.$logname)){ UI::contentHeading(" "); UI::contentContainerStart(); UI::contentSubHeading(sanitizeString($logname)); echo "
        "; echo "
        \n";
        	readfile($settings->_contentDir.$logname);
        	echo "
        \n"; echo "
        "; UI::contentContainerEnd(); } UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.UpdateDocument2.php0000644000175000017500000000670712040235120022154 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } if(!$settings->_enableLargeFileUpload) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("access_denied")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("update_document") . ": " . htmlspecialchars($document->getName())); UI::contentContainerStart(); if ($document->isLocked()) { $lockingUser = $document->getLockingUser(); print "
        "; printMLText("update_locked_msg", array("username" => htmlspecialchars($lockingUser->getFullName()), "email" => htmlspecialchars($lockingUser->getEmail()))); if ($lockingUser->getID() == $user->getID()) printMLText("unlock_cause_locking_user"); else if ($document->getAccessMode($user) == M_ALL) printMLText("unlock_cause_access_mode_all"); else { printMLText("no_update_cause_locked"); print "
        "; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } print "
        "; } // Retrieve a list of all users and groups that have review / approve // privileges. $docAccess = $document->getApproversList(); UI::printUploadApplet('../op/op.UpdateDocument2.php', array('folderid'=>$folder->getId(), 'documentid'=>$document->getId()), 1, array('version_comment'=>1)); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.ApproveDocument.php0000644000175000017500000001656712040235120022271 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // operation is admitted only for last deocument version $latestContent = $document->getLatestContent(); if ($latestContent->getVersion()!=$version) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // verify if document has expired if ($document->hasExpired()){ UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } $approvals = $latestContent->getApprovalStatus(); if(!$approvals) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("no_action")); } foreach($approvals as $approval) { if($approval['approveID'] == $_GET['approveid']) { $approvalStatus = $approval; break; } } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("submit_approval")); ?> "; print "".getMLText("status").""; print "".getMLText("comment").""; print "".getMLText("last_update").""; print ""; print ""; printApprovalStatusText($approvalStatus["status"]); print ""; print "".htmlspecialchars($approvalStatus["comment"]).""; $indUser = $dms->getUser($approvalStatus["userID"]); print "".$approvalStatus["date"]." - ". $indUser->getFullname() .""; print "
        \n"; } ?>
        :
        :
        "; print "".getMLText("status").""; print "".getMLText("comment").""; print "".getMLText("last_update").""; print ""; print ""; printApprovalStatusText($approvalStatus["status"]); print ""; print "".htmlspecialchars($approvalStatus["comment"]).""; $indUser = $dms->getUser($approvalStatus["userID"]); print "".$approvalStatus["date"]." - ". htmlspecialchars($indUser->getFullname()) .""; print "
        \n"; } ?>
        :
        :
        letodms-3.3.11+dfsg.1/out/out.Help.php0000644000175000017500000000237612040235120020037 0ustar franciscofranciscogetLanguage()."/help.htm"); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.FolderChooser.php0000644000175000017500000000505612040235120021703 0ustar franciscofrancisco _rootFolderID); UI::contentContainerEnd(); ?> letodms-3.3.11+dfsg.1/out/out.GroupView.php0000644000175000017500000000707312040235120021075 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } if (!$settings->_enableUsersView) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } $allUsers = $dms->getAllUsers(); if (is_bool($allUsers)) { UI::exitError(getMLText("my_account"),getMLText("internal_error")); } $groups = $dms->getAllGroups(); if (is_bool($groups)) { UI::exitError(getMLText("admin_tools"),getMLText("internal_error")); } UI::htmlStartPage(getMLText("my_account")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_account"), "my_account"); UI::contentHeading(getMLText("groups")); UI::contentContainerStart(); echo "
          \n"; $users = $dms->getAllUsers(); foreach ($groups as $group){ $members = $group->getUsers(); $managers = $group->getManagers(); $ismanager = false; /* set to true if current user is manager */ echo "
        • ".htmlspecialchars($group->getName()); if($group->getComment()) echo " : ".htmlspecialchars($group->getComment()); foreach($managers as $manager) if($manager->getId() == $user->getId()) { echo " : you are the manager of this group"; $ismanager = true; } echo "
        • "; echo "
            \n"; $memberids = array(); foreach ($members as $member) { $memberids[] = $member->getId(); echo "
          • ".htmlspecialchars($member->getFullName()); if ($member->getEmail()!="") echo " (getEmail())."\">".htmlspecialchars($member->getEmail()).")"; foreach($managers as $manager) if($manager->getId() == $member->getId()) echo ", ".getMLText("manager"); if($ismanager) { echo ' '.getMLText("rm_user").''; } echo "
          • "; } if($ismanager) { echo "
          • ".getMLText("add_user_to_group").":"; echo "
            "; echo "getId()."\" />"; echo ""; echo "
            "; echo "
          • "; } echo "
          \n"; } echo "
        \n"; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.AddEvent.php0000644000175000017500000000503112040235120020630 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("calendar")); UI::globalNavigation(); UI::pageNavigation(getMLText("calendar"), "calendar"); UI::contentHeading(getMLText("add_event")); UI::contentContainerStart(); ?>
        :
        :
        :
        :

        ">
        letodms-3.3.11+dfsg.1/out/out.DocumentAccess.php0000644000175000017500000002520612040235120022044 0ustar franciscofrancisco\n"; print "\t\n"; print "\t\n"; print "\t\n"; print "\t\n"; print "\n"; } if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); ?> getAllUsers(); UI::contentHeading(getMLText("edit_document_access")); UI::contentContainerStart(); if ($user->isAdmin()) { UI::contentSubHeading(getMLText("set_owner")); ?>
        : ">
        inheritsAccess()) { printMLText("inherits_access_msg"); ?>

        ">
        ">

        ">
        getAccessList(); UI::contentSubHeading(getMLText("default_access")); ?>
        getDefaultAccess()); ?> ">
        "; /* memorїze users with access rights */ $memusers = array(); foreach ($accessList["users"] as $userAccess) { $userObj = $userAccess->getUser(); $memusers[] = $userObj->getID(); print "\n"; print "\n"; print "". htmlspecialchars($userObj->getFullName()) . "\n"; print "\n"; print "
        \n"; printAccessModeSelection($userAccess->getMode()); print "\n"; print "\n"; echo createHiddenFieldWithKey('documentaccess')."\n"; print "\n"; print "\n"; print "getID()."\">\n"; print "".getMLText("save")." "; print "\n"; print "
        \n"; print "\n"; print "
        \n"; echo createHiddenFieldWithKey('documentaccess')."\n"; print "\n"; print "\n"; print "getID()."\">\n"; print "".getMLText("delete")." "; print "
        \n"; print "\n"; print "\n"; } /* memorize groups with access rights */ $memgroups = array(); foreach ($accessList["groups"] as $groupAccess) { $groupObj = $groupAccess->getGroup(); $memgroups[] = $groupObj->getID(); $mode = $groupAccess->getMode(); print ""; print ""; print "". htmlspecialchars($groupObj->getName()) . ""; print "
        "; print ""; printAccessModeSelection($groupAccess->getMode()); print "\n"; print "\n"; echo createHiddenFieldWithKey('documentaccess')."\n"; print ""; print ""; print "getID()."\">"; print "".getMLText("save")." "; print "\n"; print "
        "; print "\n"; print "
        \n"; echo createHiddenFieldWithKey('documentaccess')."\n"; print "\n"; print "\n"; print "getID()."\">\n"; print "".getMLText("delete")." "; print "
        "; print "
        \n"; print "\n"; } print "
        "; } ?>
        :
        :
        :
        ">
        letodms-3.3.11+dfsg.1/out/out.FolderAccess.php0000644000175000017500000002421712040235120021502 0ustar franciscofrancisco\n"; print "\t
      • "; print "getID()."\">".htmlspecialchars($folder->getName()) .""; $owner = $folder->getOwner(); $color = getAccessColor(M_ALL); print " [".htmlspecialchars($owner->getFullName())."] "; if (! $folder->inheritsAccess()) printAccessList($folder); $subFolders = $folder->getSubFolders(); $documents = $folder->getDocuments(); print "
          "; foreach ($subFolders as $sub) $folder_size += printFolder($sub); foreach ($documents as $document){ $doc_count++; $folder_size += printDocument($document); } print "
        "; print "".formatted_size($folder_size).", ".$doc_count." ".getMLText("documents")."\n"; print "
      • "; return $folder_size; } function printDocument($document) { global $document_count, $file_count, $storage_size, $dms; $document_count++; $local_file_count=0; $folder_size=0; if (file_exists($dms->contentDir.$document->getDir())) { $handle = opendir($dms->contentDir.$document->getDir()); while ($entry = readdir($handle) ) { if (is_dir($dms->contentDir.$document->getDir().$entry)) continue; else{ $local_file_count++; $folder_size += filesize($dms->contentDir.$document->getDir().$entry); } } closedir($handle); } $storage_size += $folder_size; $color = $document->inheritsAccess() ? "black" : getAccessColor($document->getDefaultAccess()); print "
      • "; print "getID()."\">".htmlspecialchars($document->getName()).""; $owner = $document->getOwner(); $color = getAccessColor(M_ALL); print " [".htmlspecialchars($owner->getFullName())."] "; if (! $document->inheritsAccess()) printAccessList($document); print "".formatted_size($folder_size).", ".$local_file_count." ".getMLText("files")."\n"; print "
      • "; $file_count += $local_file_count; return $folder_size; } function printAccessList($obj) { $accessList = $obj->getAccessList(); if (count($accessList["users"]) == 0 && count($accessList["groups"]) == 0) return; print " ("; for ($i = 0; $i < count($accessList["groups"]); $i++) { $group = $accessList["groups"][$i]->getGroup(); $color = getAccessColor($accessList["groups"][$i]->getMode()); print "".htmlspecialchars($group->getName()).""; if ($i+1 < count($accessList["groups"]) || count($accessList["users"]) > 0) print ", "; } for ($i = 0; $i < count($accessList["users"]); $i++) { $user = $accessList["users"][$i]->getUser(); $color = getAccessColor($accessList["users"][$i]->getMode()); print "".htmlspecialchars($user->getFullName()).""; if ($i+1 < count($accessList["users"])) print ", "; } print ")"; } UI::contentHeading(getMLText("folders_and_documents_statistic")); UI::contentContainerStart(); print ""; print ""; print "
        \n"; print "
          \n"; print "
        • ".getMLText("access_inheritance")."
        • "; print "
        • ".getMLText("access_mode_all")."
        • "; print "
        • ".getMLText("access_mode_readwrite")."
        • "; print "
        • ".getMLText("access_mode_read")."
        • "; print "
        • ".getMLText("access_mode_none")."
        • "; print "
        \n"; print "
        \n"; print "
          \n"; printFolder($dms->getFolder($settings->_rootFolderID)); print "
        \n"; print "
        "; print "
          \n"; print "
        • ".getMLText("folders").": ".$folder_count."
        • \n"; print "
        • ".getMLText("documents").": ".$document_count."
        • \n"; print "
        • ".getMLText("files").": ".$file_count."
        • \n"; print "
        • ".getMLText("storage_size").": ".formatted_size($storage_size)."
        • \n"; print "
        \n"; print "
        \n"; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.KeywordChooser.php0000644000175000017500000001334612040235120022115 0ustar franciscofranciscogetAllUsers(); $userids = array($user->getID()); foreach($allusers as $u) { if($u->isAdmin()) $userids[] = $u->getId(); } $categories = $dms->getAllKeywordCategories($userids); if($_GET['target']) { $target = sanitizeString($_GET['target']); } else { $target = 'form1'; } UI::htmlStartPage(getMLText("use_default_keywords")); ?>
        getOwner(); if (!$owner->isAdmin()) continue; ?> getOwner(); if ($owner->isAdmin()) continue; ?>
        :

        :

        :


        ">    ">
        letodms-3.3.11+dfsg.1/out/out.GroupMgr.php0000644000175000017500000001755212040235120020713 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $allUsers = $dms->getAllUsers(); if (is_bool($allUsers)) { UI::exitError(getMLText("admin_tools"),getMLText("internal_error")); } $groups = $dms->getAllGroups(); if (is_bool($groups)) { UI::exitError(getMLText("admin_tools"),getMLText("internal_error")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); ?> getID()."\" style=\"display : none;\">"; UI::contentSubHeading(getMLText("group")." : ".htmlspecialchars($group->getName())); ?>
        :   
        :
        :
        ">
        getUsers(); if (count($members) == 0) print ""; else { foreach ($members as $member) { print ""; print ""; print ""; print ""; print ""; } } ?>
        ".getMLText("no_group_members")."
        " . htmlspecialchars($member->getFullName()) . "" . ($group->isMember($member,true)?getMLText("manager"):" ") . "
          "; print "
        • getID()."\" />getID()."\" />".createHiddenFieldWithKey('rmmember')."
          "; print "
        • getID()."\" />getID()."\" />".createHiddenFieldWithKey('tmanager')."
          "; print "
        ">
        letodms-3.3.11+dfsg.1/out/out.SetExpires.php0000644000175000017500000000572112040235120021237 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("set_expiry")); UI::contentContainerStart(); ?>
        : expires()?"":"checked") ?> >
        expires()?"checked":"") ?> >expires()?$document->getExpires():-1), "exp");?>

        ">

        letodms-3.3.11+dfsg.1/out/out.ObjectCheck.php0000644000175000017500000001117212040235120021305 0ustar franciscofranciscogetFolderList(); /* Check the folder */ if($folderList != $path) { $needsrepair = true; print "getID()."\">"; print "getID()."\">"; $tmppath = $folder->getPath(); for ($i = 1; $i < count($tmppath); $i++) { print "/".htmlspecialchars($tmppath[$i]->getName()); } print $foldername; print ""; $owner = $folder->getOwner(); print "".htmlspecialchars($owner->getFullName()).""; print "Folderlist is '".$folderList."', should be '".$path."'"; if($repair) { $folder->repair(); print "Repaired\n"; } else { print "\n"; } print "\n"; } } $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { tree($subfolder, $indent.' ', $path.$folder->getId().':'); } $path .= $folder->getId().':'; $documents = $folder->getDocuments(); foreach($documents as $document) { /* Check the document */ $folderList = $document->getFolderList(); if($folderList != $path) { $needsrepair = true; $lc = $document->getLatestContent(); print "getID()."\">getFileType())."\" title=\"".$lc->getMimeType()."\">"; print "getID()."\">/"; $folder = $document->getFolder(); $tmppath = $folder->getPath(); for ($i = 1; $i < count($tmppath); $i++) { print htmlspecialchars($tmppath[$i]->getName())."/"; } print $document->getName(); print ""; $owner = $document->getOwner(); print "".htmlspecialchars($owner->getFullName()).""; print "Folderlist is '".$folderList."', should be '".$path."'"; if($repair) { $document->repair(); print "Repaired\n"; } else { print "\n"; } print "\n"; } } } /* }}} */ if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $v = new LetoDMS_Version; UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("objectcheck")); UI::contentContainerStart(); if(isset($_GET['repair']) && $_GET['repair'] == 1) { $repair = 1; echo "

        ".getMLText('repairing_objects')."

        "; } else { $repair = 0; } $folder = $dms->getFolder($settings->_rootFolderID); print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $needsrepair = false; tree($folder, $repair); print "
        ".getMLText("name")."".getMLText("owner")."".getMLText("error")."
        \n"; if($needsrepair && $repair == 0) { echo '

        '.getMLText('do_object_repair').'

        '; } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.OverrideContentStatus.php0000644000175000017500000001116312040235120023457 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $overallStatus = $content->getStatus(); // status change control if ($overallStatus["status"] == S_REJECTED || $overallStatus["status"] == S_EXPIRED || $overallStatus["status"] == S_DRAFT_REV || $overallStatus["status"] == S_DRAFT_APP ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_change_final_states")); } $reviewStatus = $content->getReviewStatus(); $approvalStatus = $content->getApprovalStatus(); UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("change_status")); ?>
        letodms-3.3.11+dfsg.1/out/out.RemoveUser.php0000644000175000017500000000543312040235120021240 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["userid"]) || !is_numeric($_GET["userid"]) || intval($_GET["userid"])<1) { UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); } $userid = intval($_GET["userid"]); $currUser = $dms->getUser($userid); if ($userid==$user->getID()) { UI::exitError(getMLText("rm_user"),getMLText("access_denied")); } if (!is_object($currUser)) { UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("rm_user")); UI::contentContainerStart(); ?>

        htmlspecialchars($currUser->getFullName())));?>

        :

        ">

        letodms-3.3.11+dfsg.1/out/out.SearchForm.php0000644000175000017500000001672612040235120021204 0ustar franciscofrancisco_rootFolderID; $folder = $dms->getFolder($folderid); } else { $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); } if (!is_object($folder)) { UI::exitError(getMLText("search"),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); UI::htmlStartPage(getMLText("search")); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "", $folder); ?> _enableFullSearch) { ?>

        \n\n"; echo "\n\n"; */ ?>
        :
        :
        :
        :
        :
        :
        :
        ".getMLText("last_update").":"; printMLText("between"); print "  "; UI::printDateChooser(-1, "updatestart"); print "  "; printMLText("and"); print "  "; UI::printDateChooser(-1, "updateend"); echo "
        ">
        _enableFullSearch) { ?>

        :
        :
        :
        ">
        letodms-3.3.11+dfsg.1/out/out.CategoryChooser.php0000644000175000017500000000511312040235120022237 0ustar franciscofrancisco getDocumentCategories(); $selcatsarr = explode(',', $selcats); ?>
        :
        ">   
        letodms-3.3.11+dfsg.1/out/out.Settings.php0000644000175000017500000005053212040235120020744 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } /* Set an encryption key if is not set */ if(!trim($settings->_encryptionKey)) $settings->_encryptionKey = md5(uniqid()); UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("settings")); UI::contentContainerStart(); ?>
        _configFilePath)) { echo "

        ".getMLText("settings_notwritable")."

        "; } else { ?> " />
        +
        "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> ">
        :
        :
        : _printDisclaimer) echo "checked" ?> />
        :
        :
        : _strictFormCheck) echo "checked" ?> />
        :
        : _enableConverting) echo "checked" ?> />
        : _enableEmail) echo "checked" ?> />
        : _enableUsersView) echo "checked" ?> />
        : _enableFullSearch) echo "checked" ?> />
        :
        : _enableFolderTree) echo "checked" ?> />
        :
        : _enableCalendar) echo "checked" ?> />
        :
        :

        +
        "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> "> ">
        :
        :
        :
        :
        :
        : _logFileEnable) echo "checked" ?> />
        :
        : _enableLargeFileUpload) echo "checked" ?> />
        :
        : _enableGuestLogin) echo "checked" ?> />
        : _restricted) echo "checked" ?> />
        : _enableUserImage) echo "checked" ?> />
        : _disableSelfEdit) echo "checked" ?> />
        : _enablePasswordForgotten) echo "checked" ?> />
        :
        :
        :
        :
        :
        :
        :
        :
        :
        :

        +
        letodms-3.3.11+dfsg.1/out/out.UserDefaultKeywords.php0000644000175000017500000001361012040235120023113 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_default_keywords"),getMLText("access_denied")); } $categories = $dms->getAllUserKeywordCategories($user->getID()); UI::htmlStartPage(getMLText("edit_default_keywords")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_account"), "my_account"); ?>
        :    getOwner(); if ($owner->getID() != $user->getID()) continue; print "getID()."\" style=\"display : none;\">"; ?> ">
        :
        getID()?>"> ">
        : getKeywordLists(); if (count($lists) == 0) print getMLText("no_default_keywords"); else foreach ($lists as $list) { ?>
        getID().".".$list["id"]?>"> "> "> " border="0"> &action=removekeywords">" border=0>

        ">
        letodms-3.3.11+dfsg.1/out/out.DocumentVersionDetail.php0000644000175000017500000002443112040235120023412 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $version = $document->getContentByVersion($version); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // if version is last got out.ViewDocument $latestContent = $document->getLatestContent(); if ($latestContent->getVersion()==$version->getVersion()) { header("Location:../out/out.ViewDocument.php?documentid=".$documentid); } $status = $version->getStatus(); $reviewStatus = $version->getReviewStatus(); $approvalStatus = $version->getApprovalStatus(); UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("document_infos")); UI::contentContainerStart(); ?> isLocked()) { $lockingUser = $document->getLockingUser(); ?>
        : getOwner(); print "getEmail()."\">".htmlspecialchars($owner->getFullName()).""; ?>
        : getComment());?>
        : getDate()); ?>
        : getKeywords());?>
        : $lockingUser->getEmail(), "username" => htmlspecialchars($lockingUser->getFullName())));?>
        contentDir . $version->getPath()); UI::contentHeading(getMLText("details_version", array ("version" => $version->getVersion()))); UI::contentContainerStart(); print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print ""; print ""; print "\n
        ".getMLText("version")."".getMLText("file")."".getMLText("comment")."".getMLText("status")."
        ".$version->getVersion()."
          \n"; print "
        • ".$version->getOriginalFileName()."
        • \n"; if ($file_exists) print "
        • ". formatted_size(filesize($dms->contentDir . $version->getPath())) ." ".htmlspecialchars($version->getMimeType())."
        • "; else print "
        • ".getMLText("document_deleted")."
        • "; $updatingUser = $version->getUser(); print "
        • ".getMLText("uploaded_by")." getEmail()."\">".htmlspecialchars($updatingUser->getFullName())."
        • "; print "
        • ".getLongReadableDate($version->getDate())."
        • "; print "
        ".htmlspecialchars($version->getComment())."".getOverallStatusText($status["status"]).""; if (($document->getAccessMode($user) >= M_READWRITE)) { print ""; } else { print " "; } echo "
        \n"; print "\n"; if (is_array($reviewStatus) && count($reviewStatus)>0) { print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "\n"; foreach ($reviewStatus as $r) { $required = null; switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getFullName()); } break; case 1: // Reviewer is a group. $required = $dms->getGroup($r["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getName()); } break; } print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; } } if (is_array($approvalStatus) && count($approvalStatus)>0) { print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "\n"; foreach ($approvalStatus as $a) { $required = null; switch ($a["type"]) { case 0: // Approver is an individual. $required = $dms->getUser($a["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getFullName()); } break; case 1: // Approver is a group. $required = $dms->getGroup($a["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getName()); } break; } print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; } } print "
        \n"; UI::contentSubHeading(getMLText("reviewers")); print "
        ".getMLText("name")."".getMLText("last_update")."".getMLText("comment")."".getMLText("status")."
        ".$reqName."
        • ".$r["date"]."
        • "; $updateUser = $dms->getUser($r["userID"]); print "
        • ".(is_object($updateUser) ? $updateUser->getFullName() : "unknown user id '".$r["userID"]."'")."
        ".$r["comment"]."".getReviewStatusText($r["status"])."
        \n"; UI::contentSubHeading(getMLText("approvers")); print "
        ".getMLText("name")."".getMLText("last_update")."".getMLText("comment")."".getMLText("status")."
        ".$reqName."
        • ".$a["date"]."
        • "; $updateUser = $dms->getUser($a["userID"]); print "
        • ".(is_object($updateUser) ? htmlspecialchars($updateUser->getFullName()) : "unknown user id '".$a["userID"]."'")."
        ".$a["comment"]."".getApprovalStatusText($a["status"])."
        \n"; UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.ReviewDocument.php0000644000175000017500000001655112040235120022107 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $content = $document->getContentByVersion($version); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // operation is admitted only for last deocument version $latestContent = $document->getLatestContent(); if ($latestContent->getVersion()!=$version) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // verify if document has expired if ($document->hasExpired()){ UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } $reviews = $latestContent->getReviewStatus(); if(!$reviews) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("no_action")); } foreach($reviews as $review) { if($review['reviewID'] == $_GET['reviewid']) { $reviewStatus = $review; break; } } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("submit_review")); ?> "; print "".getMLText("status").""; print "".getMLText("comment").""; print "".getMLText("last_update").""; print ""; print ""; printReviewStatusText($reviewStatus["status"]); print ""; print "".htmlspecialchars($reviewStatus["comment"]).""; $indUser = $dms->getUser($reviewStatus["userID"]); print "".$reviewStatus["date"]." - ". htmlspecialchars($indUser->getFullname()) .""; print "
        "; } ?>
        :
        "; print "".getMLText("status").""; print "".getMLText("comment").""; print "".getMLText("last_update").""; print ""; print ""; printReviewStatusText($reviewStatus["status"]); print ""; print "".htmlspecialchars($reviewStatus["comment"]).""; $indUser = $dms->getUser($reviewStatus["userID"]); print "".$reviewStatus["date"]." - ". htmlspecialchars($indUser->getFullname()) .""; print "
        \n"; } ?>
        :
        :
        '/>
        letodms-3.3.11+dfsg.1/out/out.AddSubFolder.php0000644000175000017500000000703012040235120021435 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = $_GET["folderid"]; $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } ?> htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); UI::contentHeading(getMLText("add_subfolder")); UI::contentContainerStart(); ?>
        :
        :
        : getSubFolders());?>

        ">
        letodms-3.3.11+dfsg.1/out/out.FolderNotify.php0000644000175000017500000001433112040235120021545 0ustar franciscofrancisco getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderid = intval($_GET["folderid"]); $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } $folderPathHTML = getFolderPathHTML($folder, true); if ($folder->getAccessMode($user) < M_READ) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } $notifyList = $folder->getNotifyList(); UI::htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "view_folder", $folder); ?> \n"; if (empty($notifyList["users"]) && empty($notifyList["groups"])) { print "".getMLText("empty_notify_list").""; } else { foreach ($notifyList["users"] as $userNotify) { print ""; print ""; print "" . htmlspecialchars($userNotify->getFullName()) . ""; if ($user->isAdmin() || $user->getID() == $userNotify->getID()) { print ""; print "
        \n"; echo createHiddenFieldWithKey('foldernotify')."\n"; print "\n"; print "\n"; print "getID()."\">\n"; print "".getMLText("delete")." "; print "
        \n"; print ""; }else print ""; print ""; $userNotifyIDs[] = $userNotify->getID(); } foreach ($notifyList["groups"] as $groupNotify) { print ""; print ""; print "" . htmlspecialchars($groupNotify->getName()) . ""; if ($user->isAdmin() || $groupNotify->isMember($user,true)) { print ""; print "
        \n"; echo createHiddenFieldWithKey('foldernotify')."\n"; print "\n"; print "\n"; print "getID()."\">\n"; print "".getMLText("delete")." "; print "
        \n"; print ""; }else print ""; print ""; $groupNotifyIDs[] = $groupNotify->getID(); } } print "\n"; ?>
        :
        :
        ">
        letodms-3.3.11+dfsg.1/out/out.RemoveLog.php0000644000175000017500000000363412040235120021044 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } if (!isset($_GET["logname"]) || !file_exists($settings->_contentDir.$_GET["logname"]) ) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } $logname = sanitizeString($_GET["logname"]); UI::htmlStartPage(getMLText("backup_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); UI::contentHeading(getMLText("rm_file")); UI::contentContainerStart(); ?>

        $logname));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.DefaultKeywords.php0000644000175000017500000001546412040235120022265 0ustar franciscofranciscoisAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("admin_tools")); UI::globalNavigation(); UI::pageNavigation(getMLText("admin_tools"), "admin_tools"); $categories = $dms->getAllUserKeywordCategories($user->getID()); ?> getOwner(); if ((!$user->isAdmin()) && ($owner->getID() != $user->getID())) continue; print "
        :    getID()."\" style=\"display : none;\">"; ?>
        " type="submit" title="">
        :
          ">
        : getKeywordLists(); if (count($lists) == 0) print getMLText("no_default_keywords"); else foreach ($lists as $list) { ?>
        "> "> " style="border: 0px;">
        "> " style="border: 0px;">

        ">
        letodms-3.3.11+dfsg.1/out/styles.css0000644000175000017500000000612012040235120017654 0ustar franciscofrancisco/* a { text-decoration: none; } a:hover { text-decoration: underline; } .titlebar { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12pt; color : White; font-weight: bold; } .header1 { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 11pt; font-style : italic; color : #000080; } .foldertree { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .foldertree_selectable { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: blue; } .foldertree_inpath { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; font-style: italic; } .foldertree_active { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 9pt; color: black; font-weight: bold; } .path { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .editfolder { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .editdocument { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .infos { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .filelist { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .subfolderlist { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .linklist { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .boxHeader { color : White; font-style : italic; font-size : 11pt; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; } .pageHeader { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13pt; font-weight: bold; color: #000080; } .inputDescription { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; font-style: italic; } .notifylist { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .inheritAccess { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .accessList { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .defaultAccess { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .msgLocked { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .standardText { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black; } .groupMembers { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 10pt; color: black;*/ letodms-3.3.11+dfsg.1/out/out.Indexer.php0000644000175000017500000000743412040235120020545 0ustar franciscofranciscogetName())."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { tree($subfolder, $indent.' '); } $documents = $folder->getDocuments(); foreach($documents as $document) { echo $indent." ".$document->getId().":".htmlspecialchars($document->getName())." "; /* If the document wasn't indexed before then just add it */ if(!($hits = $index->find('document_id:'.$document->getId()))) { $index->addDocument(new LetoDMS_Lucene_IndexedDocument($dms, $document)); echo "(document added)"; } else { $hit = $hits[0]; $created = (int) $hit->getDocument()->getFieldValue('created'); $content = $document->getLatestContent(); if($created >= $content->getDate()) { echo $indent."(document unchanged)"; } else { if($index->delete($hit->id)) { $index->addDocument(new LetoDMS_Lucene_IndexedDocument($dms, $document)); } echo $indent."(document updated)"; } } echo "\n"; } } /* }}} */ if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } $v = new LetoDMS_Version; UI::htmlStartPage($v->banner()); UI::globalNavigation(); UI::pageNavigation($v->banner()); UI::contentContainerStart(); if($settings->_enableFullSearch) { if(!empty($settings->_luceneClassDir)) require_once($settings->_luceneClassDir.'/Lucene.php'); else require_once('LetoDMS/Lucene.php'); if(isset($_GET['create']) && $_GET['create'] == 1) { if(isset($_GET['confirm']) && $_GET['confirm'] == 1) { echo "

        Recreating index

        "; $index = Zend_Search_Lucene::create($settings->_luceneDir); } else { echo '

        '.getMLText('create_fulltext_index_warning').'

        '; echo ''.getMLText('confirm_create_fulltext_index').''; UI::contentContainerEnd(); UI::htmlEndPage(); exit; } } else { echo "

        Updating index

        "; $index = Zend_Search_Lucene::open($settings->_luceneDir); } $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive(); if($settings->_stopWordsFile && file_exists($settings->_stopWordsFile)) { $stopWordsFilter = new Zend_Search_Lucene_Analysis_TokenFilter_StopWords(); $stopWordsFilter->loadFromFile($settings->_stopWordsFile); $analyzer->addFilter($stopWordsFilter); } Zend_Search_Lucene_Analysis_Analyzer::setDefault($analyzer); $folder = $dms->getFolder($settings->_rootFolderID); echo "
        ";
        	tree($folder);
        	echo "
        "; $index->commit(); } else { printMLText("fulltextsearch_disabled"); } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.EditUserData.php0000644000175000017500000000736412040235120021467 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("edit_user_details"),getMLText("access_denied")); } if (!$user->isAdmin() && ($settings->_disableSelfEdit)) { UI::exitError(getMLText("edit_user_details"),getMLText("access_denied")); } UI::htmlStartPage(getMLText("edit_user_details")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_account"), "my_account"); ?>
        _enableUserImage){ ?>
        :
        :
        :
        :
        :
        :
        : hasImage()) print "_httpRoot . "out/out.UserImage.php?userid=".$user->getId()."\">"; else printMLText("no_user_image"); ?>
        :
        ">
        letodms-3.3.11+dfsg.1/out/out.SetReviewersApprovers.php0000644000175000017500000002567612040235120023510 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"]<1)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $content = $document->getContentByVersion($version); $overallStatus = $content->getStatus(); if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } // control for document state if ($overallStatus["status"]==S_REJECTED || $overallStatus["status"]==S_OBSOLETE ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_assign_invalid_state")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("change_assignments")); // Retrieve a list of all users and groups that have review / approve privileges. $docAccess = $document->getApproversList(); // Retrieve list of currently assigned reviewers and approvers, along with // their latest status. $reviewStatus = $content->getReviewStatus(); $approvalStatus = $content->getApprovalStatus(); // Index the review results for easy cross-reference with the Approvers List. $reviewIndex = array("i"=>array(), "g"=>array()); foreach ($reviewStatus as $i=>$rs) { if ($rs["type"]==0) { $reviewIndex["i"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } else if ($rs["type"]==1) { $reviewIndex["g"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } } // Index the approval results for easy cross-reference with the Approvers List. $approvalIndex = array("i"=>array(), "g"=>array()); foreach ($approvalStatus as $i=>$rs) { if ($rs["type"]==0) { $approvalIndex["i"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } else if ($rs["type"]==1) { $approvalIndex["g"][$rs["required"]] = array("status"=>$rs["status"], "idx"=>$i); } } ?>
        :
          getMandatoryReviewers(); foreach ($docAccess["users"] as $usr) { $mandatory=false; foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $mandatory=true; if ($mandatory){ print "
        • ". htmlspecialchars($usr->getFullName())." <".$usr->getEmail().">"; print ""; }else if (isset($reviewIndex["i"][$usr->getID()])) { switch ($reviewIndex["i"][$usr->getID()]["status"]) { case 0: print "
        • ".htmlspecialchars($usr->getFullName()); break; case -2: print "
        • ".htmlspecialchars($usr->getFullName()); break; default: print "
        • ".htmlspecialchars($usr->getFullName()); break; } } else { print "
        • ". htmlspecialchars($usr->getFullName()); } } ?>
        :
          getID()) $mandatory=true; if ($mandatory){ print "
        • ".htmlspecialchars($group->getName()); print ""; }else if (isset($reviewIndex["g"][$group->getID()])) { switch ($reviewIndex["g"][$group->getID()]["status"]) { case 0: print "
        • ".htmlspecialchars($group->getName()); break; case -2: print "
        • ".htmlspecialchars($group->getName()); break; default: print "
        • ".htmlspecialchars($group->getName()); break; } } else { print "
        • ".htmlspecialchars($group->getName()); } } ?>
        :
          getMandatoryApprovers(); foreach ($docAccess["users"] as $usr) { $mandatory=false; foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $mandatory=true; if ($mandatory){ print "
        • ". htmlspecialchars($usr->getFullName())." <".$usr->getEmail().">"; print ""; }else if (isset($approvalIndex["i"][$usr->getID()])) { switch ($approvalIndex["i"][$usr->getID()]["status"]) { case 0: print "
        • ".htmlspecialchars($usr->getFullName()); break; case -2: print "
        • ".htmlspecialchars($usr->getFullName()); break; default: print "
        • ".htmlspecialchars($usr->getFullName()); break; } } else { print "
        • ". htmlspecialchars($usr->getFullName()); } } ?>
        :
          getID()) $mandatory=true; if ($mandatory){ print "
        • ".htmlspecialchars($group->getName()); print ""; }else if (isset($approvalIndex["g"][$group->getID()])) { switch ($approvalIndex["g"][$group->getID()]["status"]) { case 0: print "
        • ".htmlspecialchars($group->getName()); break; case -2: print "
        • ".htmlspecialchars($group->getName()); break; default: print "
        • ".htmlspecialchars($group->getName()); break; } } else { print "
        • ".htmlspecialchars($group->getName()); } } ?>

        ">

        letodms-3.3.11+dfsg.1/out/out.AddFile2.php0000644000175000017500000000461612040235120020520 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_GET["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("linked_files")); UI::contentContainerStart(); UI::printUploadApplet('../op/op.AddFile2.php', array('documentid'=>$document->getId()), 1, array('name'=>1, 'comment'=>1)); UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.RemoveVersion.php0000644000175000017500000000647612040235120021757 0ustar franciscofrancisco getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()).""; if ($document->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if (!isset($_GET["version"]) || !is_numeric($_GET["version"]) || intval($_GET["version"])<1) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } $version = $_GET["version"]; $version = $document->getContentByVersion($version); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("rm_version")); UI::contentContainerStart(); ?>

        htmlspecialchars($document->getName()), "version" => $version->getVersion()));?>

        ">
        letodms-3.3.11+dfsg.1/out/out.ReviewSummary.php0000644000175000017500000001620612040235120021763 0ustar franciscofranciscoisGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } if (!$db->createTemporaryTable("ttstatid")) { UI::exitError(getMLText("review_summary"),getMLText("internal_error_exit")); } UI::htmlStartPage(getMLText("my_documents")); UI::globalNavigation(); UI::pageNavigation(getMLText("my_documents"), "my_documents"); UI::contentHeading(getMLText("review_summary")); UI::contentContainerStart(); // TODO: verificare scadenza // Get document list for the current user. $reviewStatus = $user->getReviewStatus(); // reverse order $reviewStatus["indstatus"]=array_reverse($reviewStatus["indstatus"],true); $reviewStatus["grpstatus"]=array_reverse($reviewStatus["grpstatus"],true); // Create a comma separated list of all the documentIDs whose information is // required. $dList = array(); foreach ($reviewStatus["indstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } foreach ($reviewStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $dList)) { $dList[] = $st["documentID"]; } } $docCSV = ""; foreach ($dList as $d) { $docCSV .= (strlen($docCSV)==0 ? "" : ", ")."'".$d."'"; } if (strlen($docCSV)>0) { $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ". "FROM `tblDocumentStatus` ". "LEFT JOIN `tblDocumentStatusLog` USING (`statusID`) ". "LEFT JOIN `ttstatid` on `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentStatus`.`documentID` ". "LEFT JOIN `tblDocumentLocks` ON `tblDocuments`.`id`=`tblDocumentLocks`.`document` ". "LEFT JOIN `tblUsers` AS `oTbl` on `oTbl`.`id` = `tblDocuments`.`owner` ". "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `tblDocuments`.`id` IN (" . $docCSV . ") ". "ORDER BY `sequence`"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) { UI::exitError(getMLText("review_summary"),getMLText("internal_error_exit")); } // Create an array to hold all of these results, and index the array by // document id. This makes it easier to retrieve document ID information // later on and saves us having to repeatedly poll the database every time // new document information is required. $docIdx = array(); foreach ($resArr as $res) { // verify expiry if ( $res["expires"] && time()>$res["expires"]+24*60*60 ){ if ( $res["status"]==S_DRAFT_APP || $res["status"]==S_DRAFT_REV ){ $res["status"]=S_EXPIRED; } } $docIdx[$res["id"]][$res["version"]] = $res; } } $printheader=true; $iRev = array(); foreach ($reviewStatus["indstatus"] as $st) { if (isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; } if ($st["status"]!=-2) { $iRev[] = $st["documentID"]; } } if (!$printheader) { echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".getOverallStatusText($docIdx[$st["documentID"]][$st["version"]]["status"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."
        "; }else{ printMLText("empty_notify_list"); } UI::contentContainerEnd(); UI::contentHeading(getMLText("group_review_summary")); UI::contentContainerStart(); $printheader=true; foreach ($reviewStatus["grpstatus"] as $st) { if (!in_array($st["documentID"], $iRev) && isset($docIdx[$st["documentID"]][$st["version"]])) { if ($printheader){ print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; $printheader=false; } print "\n"; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; } } if (!$printheader) { echo "\n
        ".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("last_update")."".getMLText("expires")."
        ".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."".getOverallStatusText($docIdx[$st["documentID"]][$st["version"]]["status"])."".$st["version"]."".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."
        "; }else{ printMLText("empty_notify_list"); } UI::contentContainerEnd(); UI::htmlEndPage(); ?> letodms-3.3.11+dfsg.1/out/out.ChangePassword.php0000644000175000017500000000427212040235120022054 0ustar franciscofrancisco
        0) { echo ""; } if (isset($_REQUEST["hash"]) && strlen($_REQUEST["hash"])>0) { echo ""; } ?>
        ">

        letodms-3.3.11+dfsg.1/out/out.ViewDocument.php0000644000175000017500000005121112040235120021550 0ustar franciscofranciscoisPublic() || ($link->_userID == $user->getID()) || $user->isAdmin()) array_push($tmp, $link); return $tmp; } /* }}} */ if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = intval($_GET["documentid"]); $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); $docPathHTML = getFolderPathHTML($folder, true). " / ".htmlspecialchars($document->getName()); if ($document->getAccessMode($user) < M_READ) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); } if ($document->verifyLastestContentExpriry()){ header("Location:../out/out.ViewDocument.php?documentid=".$documentid); } $versions = $document->getContent(); $latestContent = $document->getLatestContent(); $status = $latestContent->getStatus(); $reviewStatus = $latestContent->getReviewStatus(); $approvalStatus = $latestContent->getApprovalStatus(); // verify if file exists $file_exists=file_exists($dms->contentDir . $latestContent->getPath()); UI::htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); UI::globalNavigation($folder); UI::pageNavigation($docPathHTML, "view_document"); UI::contentHeading(getMLText("document_infos")); UI::contentContainerStart(); ?> isLocked()) { $lockingUser = $document->getLockingUser(); ?>
        $lockingUser->getEmail(), "username" => htmlspecialchars($lockingUser->getFullName())));?>
        : getOwner(); print "getEmail()."\">".htmlspecialchars($owner->getFullName()).""; ?>
        : getComment());?>
        : getDate()); ?>
        : getKeywords());?>
        : getCategories(); $ct = array(); foreach($cats as $cat) $ct[] = htmlspecialchars($cat->getName()); echo implode(', ', $ct); ?>
        "; print "\n\n"; print "\n"; print "".getMLText("version")."\n"; print "".getMLText("file")."\n"; print "".getMLText("comment")."\n"; print "".getMLText("status")."\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "".$latestContent->getVersion()."\n"; print "
          \n"; print "
        • ".$latestContent->getOriginalFileName() ."
        • \n"; if ($file_exists) print "
        • ". formatted_size(filesize($dms->contentDir . $latestContent->getPath())) ." ".htmlspecialchars($latestContent->getMimeType())."
        • "; else print "
        • ".getMLText("document_deleted")."
        • "; $updatingUser = $latestContent->getUser(); print "
        • ".getMLText("uploaded_by")." getEmail()."\">".htmlspecialchars($updatingUser->getFullName())."
        • "; print "
        • ".getLongReadableDate($latestContent->getDate())."
        • "; print "
        \n"; print "".htmlspecialchars($latestContent->getComment()).""; print "".getOverallStatusText($status["status"]); if ( $status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP || $status["status"]==S_EXPIRED ){ print "
        hasExpired()?" class=\"warning\" ":"").">".(!$document->getExpires() ? getMLText("does_not_expire") : getMLText("expires").": ".getReadableDate($document->getExpires())).""; } print ""; print ""; print ""; echo ""; print "\n\n"; print "\n"; if (is_array($reviewStatus) && count($reviewStatus)>0) { print ""; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; foreach ($reviewStatus as $r) { $required = null; $is_reviewer = false; switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getFullName()); } if($r["required"] == $user->getId()) $is_reviewer = true; break; case 1: // Reviewer is a group. $required = $dms->getGroup($r["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { $reqName = "".htmlspecialchars($required->getName()).""; } if($required->isMember($user)) $is_reviewer = true; break; } print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n\n"; } } if (is_array($approvalStatus) && count($approvalStatus)>0) { print ""; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; foreach ($approvalStatus as $a) { $required = null; $is_approver = false; switch ($a["type"]) { case 0: // Approver is an individual. $required = $dms->getUser($a["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; } else { $reqName = htmlspecialchars($required->getFullName()); } if($a["required"] == $user->getId()) $is_approver = true; break; case 1: // Approver is a group. $required = $dms->getGroup($a["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { $reqName = "".htmlspecialchars($required->getName()).""; } if($required->isMember($user)) $is_approver = true; break; } print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n\n"; } } print "
        \n"; UI::contentSubHeading(getMLText("reviewers")); print "
        ".getMLText("name")."".getMLText("last_update")."".getMLText("comment")."".getMLText("status")."
        ".$reqName."
        • ".$r["date"]."
        • "; $updateUser = $dms->getUser($r["userID"]); print "
        • ".(is_object($updateUser) ? htmlspecialchars($updateUser->getFullName()) : "unknown user id '".$r["userID"]."'")."
        ".htmlspecialchars($r["comment"])."".getReviewStatusText($r["status"])."
        \n"; UI::contentSubHeading(getMLText("approvers")); print "
        ".getMLText("name")."".getMLText("last_update")."".getMLText("comment")."".getMLText("status")."
        ".$reqName."
        • ".$a["date"]."
        • "; $updateUser = $dms->getUser($a["userID"]); print "
        • ".(is_object($updateUser) ? htmlspecialchars($updateUser->getFullName()) : "unknown user id '".$a["userID"]."'")."
        ".htmlspecialchars($a["comment"])."".getApprovalStatusText($a["status"])."
        \n"; UI::contentContainerEnd(); UI::contentHeading(getMLText("previous_versions")); UI::contentContainerStart(); if (count($versions)>1) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; for ($i = count($versions)-2; $i >= 0; $i--) { $version = $versions[$i]; $vstat = $version->getStatus(); // verify if file exists $file_exists=file_exists($dms->contentDir . $version->getPath()); print "\n"; print "\n"; print "\n"; print ""; print ""; print "\n\n"; } print "\n
        ".getMLText("version")."".getMLText("file")."".getMLText("comment")."".getMLText("status")."
        ".$version->getVersion()."
          \n"; print "
        • ".$version->getOriginalFileName()."
        • \n"; if ($file_exists) print "
        • ". formatted_size(filesize($dms->contentDir . $version->getPath())) ." ".htmlspecialchars($version->getMimeType())."
        • "; else print "
        • ".getMLText("document_deleted")."
        • "; $updatingUser = $version->getUser(); print "
        • ".getMLText("uploaded_by")." getEmail()."\">".htmlspecialchars($updatingUser->getFullName())."
        • "; print "
        • ".getLongReadableDate($version->getDate())."
        • "; print "
        \n"; print "
        ".htmlspecialchars($version->getComment())."".getOverallStatusText($vstat["status"]).""; print ""; print "
        \n"; } else printMLText("no_previous_versions"); UI::contentContainerEnd(); UI::contentHeading(getMLText("linked_files")); UI::contentContainerStart(); $files = $document->getDocumentFiles(); if (count($files) > 0) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach($files as $file) { $file_exists=file_exists($dms->contentDir . $file->getPath()); $responsibleUser = $file->getUser(); print ""; print ""; print ""; print ""; print ""; } print "\n
        ".getMLText("file")."".getMLText("comment")."
          \n"; print "
        • ".$file->getOriginalFileName() ."
        • \n"; if ($file_exists) print "
        • ". filesize($dms->contentDir . $file->getPath()) ." bytes ".htmlspecialchars($file->getMimeType())."
        • "; else print "
        • ".htmlspecialchars($file->getMimeType())." - ".getMLText("document_deleted")."
        • "; print "
        • ".getMLText("uploaded_by")." getEmail()."\">".htmlspecialchars($responsibleUser->getFullName())."
        • "; print "
        • ".getLongReadableDate($file->getDate())."
        • "; print "
        ".htmlspecialchars($file->getComment()).""; if (($document->getAccessMode($user) == M_ALL)||($file->getUserID()==$user->getID())) print "
        getID()."\" />
        "; print "
        \n"; } else printMLText("no_attached_files"); if ($document->getAccessMode($user) >= M_READWRITE){ print "
        "; print "\n"; } UI::contentContainerEnd(); UI::contentHeading(getMLText("linked_documents")); UI::contentContainerStart(); $links = $document->getDocumentLinks(); $links = filterDocumentLinks($user, $links); if (count($links) > 0) { print ""; print "\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach($links as $link) { $responsibleUser = $link->getUser(); $targetDoc = $link->getTarget(); print ""; print ""; print ""; print ""; print ""; print ""; } print "\n
        ".getMLText("comment")."".getMLText("document_link_by")."
        getID()."\" class=\"linklist\">".htmlspecialchars($targetDoc->getName())."".htmlspecialchars($targetDoc->getComment())."".htmlspecialchars($responsibleUser->getFullName()); if (($user->getID() == $responsibleUser->getID()) || ($document->getAccessMode($user) == M_ALL )) print "
        ".getMLText("document_link_public").":".(($link->isPublic()) ? getMLText("yes") : getMLText("no")); print "
        "; if (($user->getID() == $responsibleUser->getID()) || ($document->getAccessMode($user) == M_ALL )) print "
        ".createHiddenFieldWithKey('removedocumentlink')."getID()."\" />
        "; print "
        \n"; } else printMLText("no_linked_files"); if (!$user->isGuest()){ ?>
        getAccessMode($user) >= M_READWRITE) { print ""; print ""; } ?>
        :
        ".getMLText("document_link_public")."
          "; print "
        • " . getMLText("yes")."
        • "; print "
        • " . getMLText("no")."
        • "; print "
        ">
        letodms-3.3.11+dfsg.1/out/out.Login.php0000644000175000017500000000764012040235120020216 0ustar franciscofrancisco
        0) { $refer=$_GET["referuri"]; } else if (isset($_POST["referuri"]) && strlen($_POST["referuri"])>0) { $refer=$_POST["referuri"]; } if (isset($refer) && strlen($refer)>0) { echo ""; } ?>
        "; print "
        "; print "
        ">
        _enableGuestLogin) $tmpfoot[] = "" . getMLText("guest_login") . "\n"; if ($settings->_enablePasswordForgotten) $tmpfoot[] = "" . getMLText("password_forgotten") . "\n"; if($tmpfoot) { print "

        "; print implode(' | ', $tmpfoot); print "

        \n"; } ?> letodms-3.3.11+dfsg.1/LICENSE0000644000175000017500000004362112040235117016032 0ustar franciscofrancisco GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. letodms-3.3.11+dfsg.1/CHANGELOG0000644000175000017500000012655212056056345016257 0ustar franciscofrancisco-------------------------------------------------------------------------------- Changes in version 3.3.11 -------------------------------------------------------------------------------- - fixed output of status in full text search result - do not allow to insert categories with an empty name -------------------------------------------------------------------------------- Changes in version 3.3.10 -------------------------------------------------------------------------------- - fixed stupid error in addDocumentCategory -------------------------------------------------------------------------------- Changes in version 3.3.9 -------------------------------------------------------------------------------- - more security fixes for preventing XSS - minor fix in spanish translation - do not show document on mydocuments page twice -------------------------------------------------------------------------------- Changes in version 3.3.8 -------------------------------------------------------------------------------- - more security fixes for preventing CSRF, XSS and sql injection attacks - fixed search for special chars (e.g. german umlaute) in fulltext search -------------------------------------------------------------------------------- Changes in version 3.3.7 -------------------------------------------------------------------------------- - major security update which fixeѕ lots of possible XSS and CSRF attacks - comment is no longer needed when adding a user, email is now required (this time it is really changed) -------------------------------------------------------------------------------- Changes in version 3.3.6 -------------------------------------------------------------------------------- - fixed deletion of files over WebDAV for some clients - updated russian language - comment is no longer needed when adding a user, email is now required - added debug mode in DBAccess class - list of users/groups on 'Edit Access' page does not contain users/groups which are already on the acl - if a document/folder has access rights based on a group, then the highest access right will be used (not the one first assigned) - added configuration of path to stop words file - fixed creation of database dump file -------------------------------------------------------------------------------- Changes in version 3.3.5 -------------------------------------------------------------------------------- - extend the php include path with ADOdb path much earlier. This fixeѕ problems with Log.php if installed in the same as ADOdb. -------------------------------------------------------------------------------- Changes in version 3.3.4 -------------------------------------------------------------------------------- - fixed another issue of incorrect document access if masDirID != 0 - updated README - use common way to check for configuration file -------------------------------------------------------------------------------- Changes in version 3.3.3 -------------------------------------------------------------------------------- - fixed incorrect document access if masDirID != 0 - added swedish translation (thanks to Thorsten Michelfelder) -------------------------------------------------------------------------------- Changes in version 3.3.2 -------------------------------------------------------------------------------- - minor bugfixes -------------------------------------------------------------------------------- Changes in version 3.3.1 -------------------------------------------------------------------------------- - added missing check for access right in webdav server - update.sql creates table tblUserPasswordRequest - minor changes in language files - fixed link to login page on password forgotten page -------------------------------------------------------------------------------- Changes in version 3.3.0 -------------------------------------------------------------------------------- - all data is saved into the database without prior modification - smoother installation process with less manual interaction - support multi level content directory to overcome the limitations of recent filesystems - better approval/review workflow - do not allow any operation on a document if is locked (unless you are the owner) - searching for folders (run the new consistency check function!) - initial consistency check of database with repair function - group managers are allowed to remove and delete users from their group - withdraw rights from a group if the group access is set to none - added password forgotten function -------------------------------------------------------------------------------- Changes in version 3.2.2 -------------------------------------------------------------------------------- - fixed unallowed access on documents and folders -------------------------------------------------------------------------------- Changes in version 3.2.1 -------------------------------------------------------------------------------- - large file upload with jumploader can be turned off -------------------------------------------------------------------------------- Changes in version 3.2.0 -------------------------------------------------------------------------------- - select keywords from list in advanced search form - support for full text index lucene - much better support for uploading several files at once and huge files - put configuration into xml file - added installation script -------------------------------------------------------------------------------- Changes in version 3.0.1 -------------------------------------------------------------------------------- - Fixed license in package.xml - Removed some php short tags - updated czech translation (Thanks to Radek Žufan Tichý ) - do not ask for a filename if _strictFormCheck is set to false - do not erase file selection fields if a new document is added - fixed problems with expiry system -------------------------------------------------------------------------------- Changes in version 3.0.0 -------------------------------------------------------------------------------- Major reorganisation of code Split LetoDMS into a core module, webdav server, and the known web application -------------------------------------------------------------------------------- Changes in version 2.0.1 -------------------------------------------------------------------------------- ADDED A GRAPHIC LOGO The user can personalize it changing the image in styles/logo.png Reviewed the style to accomplish with the logo New settings' flag "_expandFolderTree" to start with the navigation tree hidden, expanded or expanded at the first level The tree status (hide/show) will be preserved through folder actions The witdh of open/closed tree can be defined using CSS (in "clean" CSS style "tree-open" and "tree-closed" ) DIFFERENT COMMENTS FOR DOCUMENT AND VERSION Creating a document user can insert a different comment for version and for entire document. If the version comment is leaved empty the document comment will be used for both Added a warning about the maximum upload file size in the upload pages (add document and add files). The size is a server setting and does not depend by letoDMS Better allignment in the view document page (Thanks to alekseyn). Better allignment in the view document version page. Note: the allignement is simply suggested setting width in table columns, thus can be modified by very long strings. Now checking none between keywords,name and comment in search form means searching all. That's a more logical way (same as behaviour of status checks) Added a settings var for default calendar view (week,month or year) Simplified the "Related documents" table: now the public yes/no is visible only to the user tha can edit it Removed a small bug with calendar function inclusion (thanks to c8900219) Bugfixed the control of empty document names (thanks to turkeburgr) Fixed a compatiblity bug in log management page (removed the unused readlink function) Restyled the warnings appearance in clean style Fixed a bug with empty vars on user management Fixed a small bug when trying to download deleted files from folder view Fixed a smal bug with logging on version removing (Thanks to larppaxyz) Reviewed print css according to folder tree and logo In print view the status was hide by css. Fixed EXPERIMENTAL: review the LDAP autentication by Doudoux. The old code is leaved commented in op.Login.php and in inc.Settings.php. the submit review/approval has moved in the reviewer/approvers list -------------------------------------------------------------------------------- Changes in version 2.0.0 -------------------------------------------------------------------------------- ADDED MULTIPLE DOCUMENT INCLUSION in "Add document" page there's a new switch to add multiple files for every file a new document will be created in the folder the size limit depends on server settings if multiple file are added: - the file name is used to name the document - expiration, reviewers, approvers, comment, etc will be the same for every document ADDED HUMAN-READABLE OPTION ON ARCHIVE CREATION: with a flag in the "archive creation" tool the archive can be created using DMS paths and original file names. The archive contains only the last version of every file. Clearly a human readable archive cannot be used to restore a server backup but they are handyer for external uses. ADDED A SIDEBAR WITH TREE VIEW on the folder browsing the feature is optional an there's a new settings flag var $_enableFolderTree = true; The sidebar shows only folders (a complete tree wich includes document would be very heavy on most installation) ADDED A SHARED CALENDAR for DMS users - there'a new menu item ("calendar") to access the calendar - the starting view is current week - calendar has 3 view : year, month and week - every event has start/end time (only date), user, creation and date, name and comment - no hour/minute management (is not intent as personal/daily calendar) - events can be added and viewed by everyone (are public) - the event can be edit and delete by the user who insert it or by administrators - the feature is optional (can be deactivated in inc.Settings) ADDED A SIMPLE DB DUMP UTILITY in the Admin-Tools/Backup tools - the feature should complete the backup utilities toolkit - THE DB DUMP IS EXPERIMENTAL AND MUST BE TESTED WITH YOUR DB - The created will require an empty existing db to restore data (content only) IMPROVED THE DOCUMENT SEARCH FOR DOCUMENT STATUS now one can search all document rejected, expired, obsolete, ecc. reordered and restyled search form and result list Beautyfied e-mail messages The document expiration date (if any) is now showed near the status lined up the reviewer approvers table in view document and document details fixed a bug with group notify list administration reverse alphabetical order (newer first) for log list, backup list, dump list minor bugfix in versioning file creation/notification list editing added confirmation page for user/group deletion improve some log lines in user/group management minor bugfix in myDocuments view Now when editing a user the password can be leaved unchanged (if nothing is inserted the password will not be changed) Completed (not translated) some languages files fixed some bug with user deletion (there were some tables not updated) Fixed a bug with the time picker improved the folder chooser dialog Now the "view on line" works regardless to the case of the extension string (the extension can be upper, lower or mixed case) Same bugfix for the icon used in folder/document view Removed the javascript hide/show for reviewers/approvers list (buggy with some browser) Resolved a bug with hidden user flag Improved the log view page Reordered document action casistics (lock/unlock, permissiones, ecc.) Removed the js source folder and file (not used) Added new features description to the on-line help On update operation the mandatory users/reviwers where not used: fixed Bugfix again on View online function Bugfix in personal keyword list editing Removed a lot of php notice (viable only on some servers with php Notice enabled) Removed a bug with direcotry creation and safe_mod activated Reordered the theme folders Fixed a not define accessmode in document chooser -------------------------------------------------------------------------------- Changes in version 1.9 -------------------------------------------------------------------------------- This is a first major release with a lot of changes, then some new features can contain new bugs. The DB require a small change: update.sql is included in the folder UPDATE-v1.9 ADDED THE MANDATORY REVIEWERS AND APPROVERS LIST (per user): Administrator can associate to every user one or more users as mandatory reviewer/approver. Every document inserted by that user will be forced to be reviewed/approved by the users in that list. Note that if document is not readable by the mandatory approver/reviewer then the appoval/review will not be required (for example will not be required for private documents). ADDED A LOGGING SYSTEM: - works with plain files - administrator tools includes a page to view/download/delete log files - log files are rotated with a time parameter in settings ($_logFileRotation) The logging system is an experimental feature and must be carefully tested in large multiuser environments. There are two new parameters in inc.Settings to enable. USERS CAN NOW BE HIDDEN FROM USERS LISTS viewed by all (there's a "hide" checkbox in user manager page) this function works with the "user view" list shown to all users clearly if "$_enableUsersView = false" in configuration the option is useless Restyled and improve the notify management: - the new personal administration is included in "myAccount" menu of every user - ADDED RECURSIVE INCLUSION (folder with all subfolders and/or all documents) Viewonline now works (but should be tested again with different platforms) Owner of a document is now emailed if someone else rename/move/update the document When a document is reviewed/approved the mail is now correclty sent to the document updater (the user who update the version) not necessarly to the owner. ADDED SWITCH BETWEEN ALPHABETICAL OR ORIGINAL ORDER in the folder view clicking on the "name" column header The archive includes an older version of adodb working with MySQL-4 The downloadable text file with versioning infos is now updated immediatly before download Bugfixed the create_table.sql Removed a bug in english language file Removed last references to the old name "myDMS" Restyled and improved the "backup tools" page Bugfixed the datechooser (was limited to 2010) ADDED THE EDITABLE "MANAGER" FLAG TO GROUP MEMBER now one (or more) user can be flagged as "manager" group member Currently group notification are editable only by group managers but the flag will be required for future use IMPROVED THE GROUP/USER MANAGEMENT PAGES - operation are ordered in a more clear way - the "add new" operation uses the hide/show javascript - now the page refresh immediatly when new data are saved Restyled and improve the "edit access permission" pages Improved the keyword category editing - operation are ordered in a more clear way - the "add new" operation uses the hide/show javascript - now the page refresh immediatly when new data are saved - the keyword category operation has been removed from administration personal account menu (the operation has gone in administration tool's menu because administrator edits the global keywords categories) Improved Keword chooser Added quick installation instruction on the README file THE USER IMAGES ARE NOW OPTIONAL (the implementation is poor and doesn't work on every system, then can be disabled) ------------------------------------------------------------------- Changes in version 1.8.3 ------------------------------------------------------------------- Improved portuguese (thanks to Pedro.broggini), slovak (thanks to deb00t) and german (thanks to Vault) languages translations. Resolved some minor bugs (undefined variables) in inc.Class document and inc.ClassUI Bugfixed UPDATE script - added update instruction in README file Resolved a bug on ViewOnline feature (thanks to doudoux) ------------------------------------------------------------------- Changes in version 1.8.2 ------------------------------------------------------------------- The link in revision/approval request email now is for the ViewDocument Fix a bug in big backup file creation Review ad reorganized the ViewFolder page: removed Reviewers/Approvers list and added directory contents (file and subfolder count) and comments Added directory dimension and content in out.Statistics Now thwe initial version number of a new document can be set (you can start a document with a version > 1) Some mail are corrected The various input field has been enlarged (using clean style) ------------------------------------------------------------------- Changes in version 1.8.1 ------------------------------------------------------------------- REDESIGNED THE ORGANIZATION OF DATA FOLDER Now the data folder (where files are located) has a more efficient organization: data_dir / id / version.filetype This scheme makes backups much more intuitive (the folder name corresponds to the id of the document, all versions and attached files are in the same folder. - Removed no longer needed tdbDirPath and tdlPathList - Removed no longer needed free path lookup functions - Modified sql create_tables.sql for changes to the DB in accordance with the new organization WARNING: This change makes the version incompatible with existing archives/DB but is required by the all thennew features (read ahead) The "UPDATE" folder contais two script for updating existing installations To update an existing archive: - Backup all (including DB) - Install the new DMS version - Install the "UPDATE" folder containing two files update.php and update.sql - Log in as administrator - Manually invoke the script (http://indirizzo/UPDATE/update.php - Remove the folder "UPDATE" If everything works well the old content has ben renamed "old" and can be removed (eg via ftp) ADDITIONAL FILES Added the ability to upload additional files associated to a document (as attachments) these files are not versioned and are designed as accessories to the document (Eg the PDF version or reductions in the image). The files are associated with the document, not to version. NOTE: To add attachments the user must have write permission on the document The attachment can be removed by the user who added it or having total permissions BACKUP Added some useful tools for backing up files and folders (real files, not the DB). Especially useful for working with entire folders which, being virtual, can not easily be backupped via ftp. There are three operations designed to be eventually applied in sequence. Data Backup versioning: Create for each document in a DMS folder a file containing the main versioning informations This allows you to make backup copies of which also contain information from the DB. This is meant to be performed before the creation of an archive, After creating the file versioning file can be viewed from out.ViewDocument Creating Archives: Creates a tar.gz file containing all files related to a specific DMS folder. The file is created in settings->_contentDir The file is constructed so that it can be unpacked again in the settings->_contentDir to restore removed files. In the page is presented the list of existing backup files which you can downloaded or delete Deleting files: you can delete from the server all the files related to a specific DMS folder and all its subfolders. By doing this you can free space on the server without removing the version information saved in the database that will be available for regular consultation. Having a backup deleted files can easily be restored when needed. All backups operations can be performed on the entire archive or only on a DMS folder. All backups operations are accessible only to administrators. OTHER FEATURES Added the possibility to change a approval/review already done. The editing is possible at any moment only to the user who made it. The time is retained (so you can understand subsequent amendments). The document status is updated automatically following a change. The editing is only possible on the latest version of the document. If a document expire date is set editing is only possible within that time Added delete_all_contents script. Cleaning DB tool for test use Proper content of some e-mail Added general information to the statistic page: - No. of documents - No. of folders - No. of files in every document - Number of total files - Total size of the archive Fixed the view of system notify list The comments related to the update opration (versione comment) are now editable Adjusted out.DefaultKeywords now equal to out.UserDefaultKeyword Added function formatted_size (view size in Bytes / Kb / Mb / Gb) in inc.Utils and applied where necessary Fixed a bug on documents cancellation (was not removed the corresponding list of notification) The files in data folder can be removed without cause errors in the DMS. When a file is not effectively present in out.ViewDocument displays a warning "file removed" and, of course, is no longer given the option to download. This feature can be used to free up space on the server, removing old files, while leaving available the corresponding version information. Fixed the view in out.AddSubFolder.php (default font size) Added icons for openoffice.org mime-type Added icons for some types of extensions (bz, dot, docx, etc.). Added (in inc.settings) option to disable the user administrator as a reviewer / approver (not listed) Remove the untranslated instructions "die" (replaced by UI:: exitError) Proper control permissions for internal links (related document): - The guest user can not add links - Users without write permission can only add links private - Add link publici the user must have write permission - To cancel link should be the user that added or have permission to total ------------------------------------------------------------------- Changes in version 1.8 ------------------------------------------------------------------- The reviewer/approver can edit his review/approval after having submitted it. Only the user whom effectivly submitted the review/approval can edit it, even if he was required as group member. The document status will be updated autmatically according with the modified submission. The edit is possible only on the last version of a document (there's no reason to edit a old version). If expiration date is set the edit is possible (obviously) only within that date. Account menu has been reviewed. Two new pages containing general views of groups and users are integrated in the account menu. The feature can be disabled in inc.Settings.php. The email notification can be completely disabled in inc.Settings.php. Every users can leave empty his e-mail field to not receive e-mail even if strictFormCheck is on. Fix of two redirection bugs after deleting documents or folders. The notification list is now integrated in the myDocument page/menu. The general tree view has been enhance. Fix of some e-mail composition errors. Fix of some italian translation errors. The owner is no longer automatically added to the notification list of a document. The notification lists should not be modified automatically (if not required the notification are annoying) ------------------------------------------------------------------- Changes in version 1.7.3 ------------------------------------------------------------------- - removed vulnerability lang/theme at login (TODO: referuri in op.Login.php) - completed translation calls - a print css added - added "warning" and "error" styles - new css clean e hc (high contrast for visually impaired folks) - guest login must be default false - reorderer the first level menu - reordered personal document navigation - reorderd personal account navigation - out.info is now linked to administrator only and access protected - added permission control on root folder (no inheritance) - removed "remove" and "move" commands for root folder - reorganized permission pages - added disclaimer note (shown on every page) with setting flag and translation - where possible ALL the operation feedback are removed (where no errors the page return immedatly to the contents) - added and exitError function in ClassUI and review ALL pages to comply - syled the out.KeywordChooser page - deleted inc.OutUtils - deleted op.NotifyMailer (not used) - added a "legend" to out.Statistics ------------------------------------------------------------------- Changes in version 1.7.2 ------------------------------------------------------------------- - Style Sheet modifications to improve IE6 compatibility, contributed by Juan Lago (thanks Juan!). This fixes some placement issues with elements that have the position attribute set to "absolute". - The div elements that are used to clear floats have been fixed so that they have zero height in IE6. It is not enough to specify "height: 0"; one must also set "font-size:0" otherwise IE6 will set the height of the element to match the standard font size. - UI layout improvements. Various changes to the user interface to improve the page flow and allow for further expansion in the future. The context menu bar has been separated from the page heading into its own container underneath the title. It's a more logical place to present the menu, and will allow for the easy addition of further sub-headings in the future without compromising the page flow. - The last dependency on the original theme system has been eliminated with the introduction of updated chooser dialogues for selecting files and folders. These dialogues have the new themes and the code has been revamped, replacing the old table structures with unordered lists. - LDAP update. A minor change to the LDAP authentication code to allow for the use of URIs to identify the server name (e.g. ldaps://host.com). Also, the LDAP version is set to 3 in order to support secure connections. - New language translations for Czech and Slovak. Contributed by SF user helix84 (thanks!). ------------------------------------------------------------------- Changes in version 1.7.1 ------------------------------------------------------------------- - Re-vamped Notification system allows users to receive an email when a document or folder is changed. This is a new, event-based mechanism that notifies the user as soon as the change has been made and replaces the cron mechanism originally developed. Any user that has read access to a document or folder can subscribe to be notified of changes. Users that have been assigned as reviewers or approvers for a document are automatically added to the notification system for that document. A new page has been created for users to assist with the management of their notification subscriptions. This can be found in the "My Account" section under "Notification List". - The test used to identify HTTPS connections has been improved so that it correctly identifies IIS servers that have ISAPI enabled but are not using HTTPS protocol. ------------------------------------------------------------------- Changes in version 1.7.0 ------------------------------------------------------------------- - Fixes to CSS display bugs. Minor updates to the display. - Improved handling of character escape sequences. - Review / Approve dates added to folder views and search results. - New file system directory management code to accommodate limitations in the underlying filesystem which restrict the number of files that MyDMS can store. MyDMS now uses a nested directory structure to store files, rather than a flat one. However, note that individual files are still stored one per directory in order to preserve compatibility with older versions of MyDMS. For details of the problem and the solution implemented, please refer to: http://mydms.sf.net/2007/08/15/new-file-system-storage-structure/ - Hungarian translation. - And as a bonus, there is a Drupal theme compatible with MyDMS. ------------------------------------------------------------------- Changes in version 1.6.1 ------------------------------------------------------------------- - Theme and language choice are now saved as user attributes between sessions. Read update-1.6.1.txt for changes to database schema. - Link to document review / approval page from out.ViewDocument.php. - French translation. - Brazilian Portuguese translation. - Traditional Chinese translation. - Relaxation of criteria for selecting reviewers / approvers. Users now only require read access to be eligible reviewers or approvers. - Documents are now displayed in the correct sequence in the folder view. - Documents can be downloaded directly from the folder view by clicking their icon. - Document icons in the folder view now reflect the document type. - Empty passwords are not accepted, even when JS is disabled in the browser. - New restricted access mode rejects login from users who are not entered into the internal database, even if LDAP authentication was successful. ------------------------------------------------------------------- Changes in version 1.6.0 ------------------------------------------------------------------- - Introduction of a document workflow system that manages the life-cycle of a document, including review and approval stages. Details: Document Class: Created new methods: Document::addIndReviewer() Document::addGrpReviewer() Document::addIndApprover() Document::addGrpApprover() Changes to: Document::addContent() New Class: Email. out.AddDocument.php op.AddDocument.php Changes to allow selection of reviewers and approvers. Group Class: Changes to: Group::getUsers() -- query optimised New Methods: Group::getReviewStatus() Group::getApprovalStatus() User Class: New Methods: User::getReviewStatus() User::getApprovalStatus() Class Folder: Changes to: Folder::addDocument() -- accept reviewers, approvers as parameters. New Class: AddContentResultSet. Database: Document version field changed from TINYINT to unsigned SMALLINT throughout database. `tblGroupMembers`: `id` field removed as it is unnecessary. Created a primary of `groupID`, `userID`. DocumentContent Class: Created new methods: DocumentContent::getStatus() DocumentContent::getReviewStatus() DocumentContent::getApprovalStatus() DocumentContent::delIndReviewer() DocumentContent::delGrpReviewer() DocumentContent::delIndApprover() DocumentContent::delGrpApprover() out.ViewDocument.php op.ViewDocument.php Changes to incorporate display of workflow status. Links to allow user to change status of a document revision. out.UpdateDocument.php op.UpdateDocument.php Changes to allow selection of reviewers and approvers. out.Login.php op.Login.php redirect user to originally requested URL upon successful login. out.ReviewDocument.php op.ReviewDocument.php out.ApproveDocument.php op.ApproveDocument.php Created to enable users to review and approve documents. out.OverrideContentStatus.php op.OverrideContentStatus.php Allows document owner or site administrator to override the status of a document. out.SetReviewersApprovers.php op.SetReviewersApprovers.php Allows document owner or site administrator to re-assign reviewers and approvers to a document revision that is pending review or approval. out.ActionSummary.php Lists all the documents owned by current user that are pending review or approval. Lists all documents that are awaiting review or approval by the user. Search page now allows user to search for documents pending review or approval. Search results display overall document status. - Admin user cannot be deleted, and admin privilege cannot be removed from the admin user. Previously, both actions were possible. - Users can be assigned administrative privileges in the User Manager. - Deleting document revisions or the document itself notifies all affected users by email, deletes entries from all status logs. ------------------------------------------------------------------- Changes in version 1.5.1 ------------------------------------------------------------------- - Fixed a bug in the keyword editing code which was preventing users from adding default keywords into global keyword categories. ------------------------------------------------------------------- Changes in version 1.5.0 ------------------------------------------------------------------- - Optimised search. Improved the performance of the search function by placing more of the work on the database and by applying indexes to some of the tables. Sub-folder searches are also dramatically improved due to the incorporation of a folderList field in the tblDocuments table. - Optimised display. New compact theme significantly reduces the page load times. This is the default theme. The original is still available as a selection. - Changed file download headers such that downloading works with IE over SSL. - Changed all instances of $HTTP_COOKIES_VARS, which has been deprecated, to $_COOKIE. - Replaced all short open tags (_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); $db->getResult("set names 'utf8'"); $dms = new LetoDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); if($settings->_logFileEnable) { if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); else $logname=date("Ym", time()); $logname = $settings->_contentDir."webdav-".$logname.".log"; $log = Log::factory('file', $logname); } else { $log = null; } $server = new HTTP_WebDAV_Server_LetoDMS(); $server->ServeRequest($dms, $log); //$files = array(); //$options = array('path'=>'/Test1/subdir', 'depth'=>1); //echo $server->MKCOL(&$options); ?> letodms-3.3.11+dfsg.1/webdav/letodms_webdav.php0000644000175000017500000006452712040235120022007 0ustar franciscofrancisco_coreDir)) require_once($settings->_coreDir.'/Core.php'); else require_once('LetoDMS/Core.php'); /** * LetoDMS access using WebDAV * * @access public * @author Uwe Steinmann * @version @package-version@ */ class HTTP_WebDAV_Server_LetoDMS extends HTTP_WebDAV_Server { /** * A reference of the DMS itself * * This is set by ServeRequest * * @access private * @var object */ var $dms = null; /** * A reference to a logger * * This is set by ServeRequest * * @access private * @var object */ var $logger = null; /** * Currently logged in user * * @access private * @var string */ var $user = ""; /** * Serve a webdav request * * @access public * @param object $dms reference to DMS */ function ServeRequest($dms = null, $logger = null) /* {{{ */ { // special treatment for litmus compliance test // reply on its identifier header // not needed for the test itself but eases debugging foreach (apache_request_headers() as $key => $value) { if (stristr($key, "litmus")) { error_log("Litmus test $value"); header("X-Litmus-reply: ".$value); } } // set root directory, defaults to webserver document root if not set if ($dms) { $this->dms = $dms; } else { return false; } // set logger $this->logger = $logger; // establish connection to property/locking db /* mysql_connect($this->db_host, $this->db_user, $this->db_passwd) or die(mysql_error()); mysql_select_db($this->db_name) or die(mysql_error()); */ // TODO throw on connection problems // let the base class do all the work parent::ServeRequest(); } /* }}} */ /** * Log array of options as passed to most functions * * @access private * @param string webdav methode that was called * @param array options */ function log_options($methode, $options) { /* {{{ */ if($this->logger) { $this->logger->log($methode.': '.$options['path'], PEAR_LOG_INFO); foreach($options as $key=>$option) { if(is_array($option)) { $this->logger->log($methode.': '.$key.'='.var_export($option, true), PEAR_LOG_DEBUG); } else { $this->logger->log($methode.': '.$key.'='.$option, PEAR_LOG_DEBUG); } } } } /* }}} */ /** * No authentication is needed here * * @access private * @param string HTTP Authentication type (Basic, Digest, ...) * @param string Username * @param string Password * @return bool true on successful authentication */ function check_auth($type, $user, $pass) /* {{{ */ { if($this->logger) $this->logger->log('check_auth: type='.$type.', user='.$user.'', PEAR_LOG_INFO); $userobj = $this->dms->getUserByLogin($user); if(!$userobj) return false; if(md5($pass) != $userobj->getPwd()) return false; $this->user = $userobj; return true; } /* }}} */ /** * Get the object id from its path * * @access private * @param string path * @return bool/object object with given path or false on error */ function reverseLookup($path) /* {{{ */ { $path = rawurldecode($path); if($this->logger) $this->logger->log('reverseLookup: path='.$path.'', PEAR_LOG_DEBUG); $root = $this->dms->getRootFolder(); if($path[0] == '/') { $path = substr($path, 1); } $patharr = explode('/', $path); /* The last entry is always the document, though if the path ends * in '/', the document name will be empty. */ $docname = array_pop($patharr); $parentfolder = $root; if(!$patharr) { if(!$docname) { if($this->logger) $this->logger->log('reverseLookup: found folder '.$root->getName().' ('.$root->getID().')', PEAR_LOG_DEBUG); return $root; } else { if($document = $this->dms->getDocumentByName($docname, $root)) { if($this->logger) $this->logger->log('reverseLookup: found document '.$document->getName().' ('.$document->getID().')', PEAR_LOG_DEBUG); return $document; } else { return false; } } } foreach($patharr as $pathseg) { if($folder = $this->dms->getFolderByName($pathseg, $parentfolder)) { $parentfolder = $folder; } } if($folder) { if($docname) { if($document = $this->dms->getDocumentByName($docname, $folder)) { if($this->logger) $this->logger->log('reverseLookup: found document '.$document->getName().' ('.$document->getID().')', PEAR_LOG_DEBUG); return $document; } else { if($this->logger) $this->logger->log('reverseLookup: nothing found', PEAR_LOG_DEBUG); return false; } } else { if($this->logger) $this->logger->log('reverseLookup: found folder '.$folder->getName().' ('.$folder->getID().')', PEAR_LOG_DEBUG); return $folder; } } else { if($this->logger) $this->logger->log('reverseLookup: nothing found', PEAR_LOG_DEBUG); return false; } if($this->logger) $this->logger->log('reverseLookup: nothing found', PEAR_LOG_DEBUG); return false; } /* }}} */ /** * PROPFIND method handler * * @param array general parameter passing array * @param array return array for file properties * @return bool true on success */ function PROPFIND(&$options, &$files) /* {{{ */ { $this->log_options('PROFIND', $options); // get folder or document from path $obj = $this->reverseLookup($options["path"]); // sanity check if (!$obj) { $obj = $this->reverseLookup($options["path"].'/'); if(!$obj) return false; } // prepare property array $files["files"] = array(); // store information for the requested path itself $files["files"][] = $this->fileinfo($obj); // information for contained resources requested? if (get_class($obj) == 'LetoDMS_Core_Folder' && !empty($options["depth"])) { $subfolders = $obj->getSubFolders(); $subfolders = LetoDMS_Core_DMS::filterAccess($subfolders, $this->user, M_READ); if ($subfolders) { // ok, now get all its contents foreach($subfolders as $subfolder) { $files["files"][] = $this->fileinfo($subfolder); } // TODO recursion needed if "Depth: infinite" } $documents = $obj->getDocuments(); $documents = LetoDMS_Core_DMS::filterAccess($documents, $this->user, M_READ); if ($documents) { // ok, now get all its contents foreach($documents as $document) { $files["files"][] = $this->fileinfo($document); } } } // ok, all done return true; } /* }}} */ /** * Get properties for a single file/resource * * @param string resource path * @return array resource properties */ function fileinfo($obj) /* {{{ */ { // create result array $info = array(); $info["props"] = array(); // modification time $info["props"][] = $this->mkprop("getlastmodified", time()); // type and size (caller already made sure that path exists) if (get_class($obj) == 'LetoDMS_Core_Folder') { /* folders do not have a modification time */ $info["props"][] = $this->mkprop("creationdate", time()); // directory (WebDAV collection) $patharr = $obj->getPath(); array_shift($patharr); $path = ''; foreach($patharr as $pathseg) // $path .= '/'.rawurlencode($pathseg->getName()); $path .= '/'.$pathseg->getName(); if(!$path) { $path = '/'; $info["props"][] = $this->mkprop("isroot", "true"); } // $info["path"] = htmlspecialchars($path); $info["path"] = $path; $info["props"][] = $this->mkprop("displayname", $obj->getName()); $info["props"][] = $this->mkprop("resourcetype", "collection"); $info["props"][] = $this->mkprop("getcontenttype", "httpd/unix-directory"); } else { $info["props"][] = $this->mkprop("creationdate", $obj->getDate()); // plain file (WebDAV resource) $content = $obj->getLatestContent(); $fspath = $content->getPath(); $patharr = $obj->getFolder()->getPath(); array_shift($patharr); $path = '/'; foreach($patharr as $pathseg) // $path .= rawurlencode($pathseg->getName()).'/'; $path .= $pathseg->getName().'/'; // $info["path"] = htmlspecialchars($path.rawurlencode($obj->getName())); $info["path"] = $path.$obj->getName(); $info["props"][] = $this->mkprop("displayname", $obj->getName()); $info["props"][] = $this->mkprop("resourcetype", ""); if (1 /*is_readable($fspath)*/) { $info["props"][] = $this->mkprop("getcontenttype", $content->getMimeType()); } else { $info["props"][] = $this->mkprop("getcontenttype", "application/x-non-readable"); } $info["props"][] = $this->mkprop("getcontentlength", filesize($this->dms->contentDir.'/'.$fspath)); if($keywords = $obj->getKeywords()) $info["props"][] = $this->mkprop("LetoDMS:", "keywords", $keywords); $info["props"][] = $this->mkprop("LetoDMS:", "version", $content->getVersion()); $status = $content->getStatus(); $info["props"][] = $this->mkprop("LetoDMS:", "status", $status['status']); $info["props"][] = $this->mkprop("LetoDMS:", "status-comment", $status['comment']); $info["props"][] = $this->mkprop("LetoDMS:", "status-date", $status['date']); if($obj->getExpires()) $info["props"][] = $this->mkprop("LetoDMS:", "expires", date('c', $obj->getExpires())); } if($comment = $obj->getComment()) $info["props"][] = $this->mkprop("LetoDMS:", "comment", $comment); $info["props"][] = $this->mkprop("LetoDMS:", "owner", $obj->getOwner()->getLogin()); // get additional properties from database /* $query = "SELECT ns, name, value FROM {$this->db_prefix}properties WHERE path = '$path'"; $res = mysql_query($query); while ($row = mysql_fetch_assoc($res)) { $info["props"][] = $this->mkprop($row["ns"], $row["name"], $row["value"]); } mysql_free_result($res); */ return $info; } /* }}} */ /** * GET method handler * * @param array parameter passing array * @return bool true on success */ function GET(&$options) /* {{{ */ { $this->log_options('GET', $options); // get folder or document from path $obj = $this->reverseLookup($options["path"]); // sanity check if (!$obj) return false; // is this a collection? if (get_class($obj) == 'LetoDMS_Core_Folder') { return $this->GetDir($obj, $options); } $content = $obj->getLatestContent(); // detect resource type $options['mimetype'] = $content->getMimeType(); // detect modification time // see rfc2518, section 13.7 // some clients seem to treat this as a reverse rule // requiering a Last-Modified header if the getlastmodified header was set $options['mtime'] = $content->getDate(); $fspath = $this->dms->contentDir.'/'.$content->getPath(); // detect resource size $options['size'] = filesize($fspath); // no need to check result here, it is handled by the base class $options['stream'] = fopen($fspath, "r"); return true; } /* }}} */ /** * GET method handler for directories * * This is a very simple mod_index lookalike. * See RFC 2518, Section 8.4 on GET/HEAD for collections * * @param object folder object * @return void function has to handle HTTP response itself */ function GetDir($folder, &$options) /* {{{ */ { // fixed width directory column format $format = "%15s %-19s %-s\n"; $subfolders = $folder->getSubFolders(); $subfolders = LetoDMS_Core_DMS::filterAccess($subfolders, $this->user, M_READ); $documents = $folder->getDocuments(); $documents = LetoDMS_Core_DMS::filterAccess($documents, $this->user, M_READ); $objs = array_merge($subfolders, $documents); echo "Index of ".htmlspecialchars($options['path'])."\n"; echo "

        Index of ".htmlspecialchars($options['path'])."

        \n"; echo "
        ";
        		printf($format, "Size", "Last modified", "Filename");
        		echo "
        "; foreach ($objs as $obj) { $filename = $obj->getName(); $parents = $folder->getPath(); array_shift($parents); $fullpath = '/'; if($parents) { foreach($parents as $parent) $fullpath .= $parent->getName().'/'; } $fullpath .= $filename; if(get_class($obj) == 'LetoDMS_Core_Folder') { $fullpath .= '/'; $filename .= '/'; $filesize = 0; $mtime = $obj->getDate(); } else { $content = $obj->getLatestContent(); $mimetype = $content->getMimeType(); $mtime = $content->getDate(); $fspath = $this->dms->contentDir.'/'.$content->getPath(); $filesize = filesize($fspath); } // $name = htmlspecialchars($filename); $name = $filename; printf($format, number_format($filesize), strftime("%Y-%m-%d %H:%M:%S", $mtime), "".htmlspecialchars($name, ENT_QUOTES).""); } echo "
        "; echo "\n"; exit; } /* }}} */ /** * PUT method handler * * @param array parameter passing array * @return bool true on success */ function PUT(&$options) /* {{{ */ { $this->log_options('PUT', $options); $path = $options["path"]; $parent = dirname($path); $name = basename($path); // get folder from path if($parent == '/') $parent = ''; $folder = $this->reverseLookup($parent.'/'); if (!$folder || get_class($folder) != "LetoDMS_Core_Folder") { return "409 Conflict"; } /* Check if user is logged in */ if(!$this->user) { return "403 Forbidden"; } $tmpFile = tempnam('/tmp', 'webdav'); $fp = fopen($tmpFile, 'w'); while(!feof($options["stream"])) { $data = fread($options["stream"], 1000); fwrite($fp, $data); } fclose($fp); $finfo = new finfo(FILEINFO_MIME); $mimetype = $finfo->file($tmpFile); $tmp = explode(';', $mimetype); $mimetype = $tmp[0]; switch($mimetype) { case 'application/pdf'; $fileType = ".pdf"; break; default: $lastDotIndex = strrpos($name, "."); if($lastDotIndex === false) $fileType = "."; else $fileType = substr($name, $lastDotIndex); } if($document = $this->dms->getDocumentByName($name, $folder)) { if ($document->getAccessMode($this->user) < M_READWRITE) { unlink($tmpFile); return "403 Forbidden"; } elseif(!$document->addContent('', $this->user, $tmpFile, $name, $fileType, $mimetype, array(), array(), 0)) { unlink($tmpFile); return "409 Conflict"; } } else { if ($folder->getAccessMode($this->user) < M_READWRITE) { unlink($tmpFile); return "403 Forbidden"; } elseif(!$res = $folder->addDocument($name, '', 0, $this->user, '', array(), $tmpFile, $name, $fileType, $mimetype, 0, array(), array(), 0, "")) { unlink($tmpFile); return "409 Conflict"; } } unlink($tmpFile); return "201 Created"; } /* }}} */ /** * MKCOL method handler * * @param array general parameter passing array * @return bool true on success */ function MKCOL($options) /* {{{ */ { $this->log_options('MKCOL', $options); $path = $options["path"]; $parent = dirname($path); $name = basename($path); // get folder from path if($parent == '/') $parent = ''; $folder = $this->reverseLookup($parent.'/'); /* Check if parent folder exists at all */ if (!$folder) { return "409 Conflict"; } /* Check if parent of new folder is a folder */ if (get_class($folder) != 'LetoDMS_Core_Folder') { return "403 Forbidden"; } /* Check if parent folder already has folder with the same name */ if ($this->dms->getFolderByName($name, $folder) ) { return "405 Method not allowed"; } if (!empty($this->_SERVER["CONTENT_LENGTH"])) { // no body parsing yet return "415 Unsupported media type"; } /* Check if user is logged in */ if(!$this->user) { return "403 Forbidden"; } if ($folder->getAccessMode($this->user) < M_READWRITE) { return "403 Forbidden"; } if (!$folder->addSubFolder($name, '', $this->user, 0)) { return "403 Forbidden"; } return ("201 Created"); } /* }}} */ /** * DELETE method handler * * @param array general parameter passing array * @return bool true on success */ function DELETE($options) /* {{{ */ { $this->log_options('DELETE', $options); // get folder or document from path $obj = $this->reverseLookup($options["path"]); /* Make a second try if it is a directory with the leading '/' */ if(!$obj) $obj = $this->reverseLookup($options["path"].'/'); // sanity check if (!$obj) return "404 Not found"; // check for access rights if($obj->getAccessMode($this->user) < M_ALL) { return "403 Forbidden"; } if (get_class($obj) == 'LetoDMS_Core_Folder') { if(!$obj->remove()) { return "409 Conflict"; } } else { if(!$obj->remove()) { return "409 Conflict"; } } return "204 No Content"; } /* }}} */ /** * MOVE method handler * * @param array general parameter passing array * @return bool true on success */ function MOVE($options) /* {{{ */ { $this->log_options('MOVE', $options); // no copying to different WebDAV Servers yet if (isset($options["dest_url"])) { return "502 bad gateway"; } // get folder or document to move $objsource = $this->reverseLookup($options["path"]); /* Make a second try if it is directory with the leading '/' */ if(!$objsource) $objsource = $this->reverseLookup($options["path"].'/'); if (!$objsource) return "404 Not found"; // get dest folder or document $objdest = $this->reverseLookup($options["dest"]); $newdocname = ''; if(!$objdest) { /* check if at least the dest directory exists */ $dirname = dirname($options['dest']); if($dirname != '/') $dirname .= '/'; $newdocname = basename($options['dest']); $objdest = $this->reverseLookup($dirname); if(!$objdest) return "412 precondition failed"; } /* Moving a document requires write access on the source and * destination object */ if (($objsource->getAccessMode($this->user) < M_READWRITE) || ($objdest->getAccessMode($this->user) < M_READWRITE)) { return "403 Forbidden"; } if(get_class($objdest) == 'LetoDMS_Core_Document') { /* If destination object is a document it must be overwritten */ if (!$options["overwrite"]) { return "412 precondition failed"; } if(get_class($objsource) == 'LetoDMS_Core_Folder') { return "400 Bad request"; } /* get the latest content of the source object */ $content = $objsource->getLatestContent(); $fspath = $this->dms->contentDir.'/'.$content->getPath(); /* save the content as a new version in the destination document */ if(!$objdest->addContent('', $this->user, $fspath, $content->getOriginalFileName(), $content->getFileType(), $content->getMimeType, array(), array(), 0)) { unlink($tmpFile); return "409 Conflict"; } /* change the name of the destination object */ $objdest->setName($objsource->getName()); /* delete the source object */ $objsource->remove(); return "204 No Content"; } elseif(get_class($objdest) == 'LetoDMS_Core_Folder') { /* Set the new Folder of the source object */ if(get_class($objsource) == 'LetoDMS_Core_Document') $objsource->setFolder($objdest); elseif(get_class($objsource) == 'LetoDMS_Core_Folder') $objsource->setParent($objdest); else return "500 Internal server error"; if($newdocname) $objsource->setName($newdocname); return "204 No Content"; } } /* }}} */ /** * COPY method handler * * @param array general parameter passing array * @return bool true on success */ function COPY($options, $del=false) /* {{{ */ { if(!$del) $this->log_options('COPY', $options); // TODO Property updates still broken (Litmus should detect this?) if (!empty($this->_SERVER["CONTENT_LENGTH"])) { // no body parsing yet return "415 Unsupported media type"; } // no copying to different WebDAV Servers yet if (isset($options["dest_url"])) { return "502 bad gateway"; } // get folder or document to move $objsource = $this->reverseLookup($options["path"]); /* Make a second try if it is directory with the leading '/' */ if(!$objsource) $objsource = $this->reverseLookup($options["path"].'/'); if (!$objsource) return "404 Not found"; if (get_class($objsource) == 'LetoDMS_Core_Folder' && ($options["depth"] != "infinity")) { // RFC 2518 Section 9.2, last paragraph return "400 Bad request"; } // get dest folder or document $objdest = $this->reverseLookup($options["dest"]); $newdocname = ''; if(!$objdest) { /* check if at least the dest directory exists */ $dirname = dirname($options['dest']); if($dirname != '/') $dirname .= '/'; $newdocname = basename($options['dest']); $objdest = $this->reverseLookup($dirname); if(!$objdest) return "412 precondition failed"; } /* Copying a document requires read access on the source and write * access on the destination object */ if (($objsource->getAccessMode($this->user) < M_READ) || ($objdest->getAccessMode($this->user) < M_READWRITE)) { return "403 Forbidden"; } /* If destination object is a document it must be overwritten */ if(get_class($objdest) == 'LetoDMS_Core_Document') { if (!$options["overwrite"]) { return "412 precondition failed"; } /* Copying a folder into a document makes no sense */ if(get_class($objsource) == 'LetoDMS_Core_Folder') { return "400 Bad request"; } /* get the latest content of the source object */ $content = $objsource->getLatestContent(); $fspath = $this->dms->contentDir.'/'.$content->getPath(); /* save the content as a new version in the destination document */ if(!$objdest->addContent('', $this->user, $fspath, $content->getOriginalFileName(), $content->getFileType(), $content->getMimeType, array(), array(), 0)) { unlink($tmpFile); return "409 Conflict"; } $objdest->setName($objsource->getName()); return "204 No Content"; } elseif(get_class($objdest) == 'LetoDMS_Core_Folder') { if($this->logger) $this->logger->log('COPY: copy \''.$objdest->getName().'\' to folder '.$objdest->getName().'', PEAR_LOG_INFO); /* Currently no support for copying folders */ if(get_class($objsource) == 'LetoDMS_Core_Folder') { if($this->logger) $this->logger->log('COPY: source is a folder '.$objsource->getName().'', PEAR_LOG_INFO); return "400 Bad request"; } if(!$newdocname) $newdocname = $objsource->getName(); /* get the latest content of the source object */ $content = $objsource->getLatestContent(); $fspath = $this->dms->contentDir.'/'.$content->getPath(); if(!$newdoc = $objdest->addDocument($newdocname, '', 0, $this->user, '', array(), $fspath, $content->getOriginalFileName(), $content->getFileType(), $content->getMimeType(), 0, array(), array(), 0, "")) { if($this->logger) $this->logger->log('COPY: error copying object', PEAR_LOG_INFO); return "409 Conflict"; } return "201 Created"; } } /* }}} */ /** * PROPPATCH method handler * * @param array general parameter passing array * @return bool true on success */ function PROPPATCH(&$options) /* {{{ */ { $this->log_options('PROPPATCH', $options); // get folder or document from path $obj = $this->reverseLookup($options["path"]); // sanity check if (!$obj) { $obj = $this->reverseLookup($options["path"].'/'); if(!$obj) return false; } if ($obj->getAccessMode($this->user) < M_READWRITE) { return false; } foreach ($options["props"] as $key => $prop) { if ($prop["ns"] == "DAV:") { $options["props"][$key]['status'] = "403 Forbidden"; } else { $this->logger->log('PROPPATCH: set '.$prop["ns"].''.$prop["val"].' to '.$prop["val"], PEAR_LOG_INFO); if($prop["ns"] == "LetoDMS:") { if (isset($prop["val"])) $val = $prop["val"]; else $val = ''; switch($prop["name"]) { case "comment": $obj->setComment($val); break; } } } } return ""; } /* }}} */ /** * LOCK method handler * * @param array general parameter passing array * @return bool true on success */ function LOCK(&$options) /* {{{ */ { $this->log_options('LOCK', $options); // get object to lock $obj = $this->reverseLookup($options["path"]); if(!$obj) return "200 OK"; // TODO recursive locks on directories not supported yet if (get_class($obj) == 'LetoDMS_Core_Folder' && !empty($options["depth"])) { return "409 Conflict"; } if ($obj->getAccessMode($this->user) < M_READWRITE) { return "403 Forbidden"; } $options["timeout"] = 0;//time()+300; // 5min. hardcoded if(!$obj->setLocked($this->user)) { return "409 Conflict"; } $options['owner'] = $this->user->getLogin(); $options['scope'] = "exclusive"; $options['type'] = "write"; return "200 OK"; } /* }}} */ /** * UNLOCK method handler * * @param array general parameter passing array * @return bool true on success */ function UNLOCK(&$options) /* {{{ */ { $this->log_options('UNLOCK', $options); // get object to unlock $obj = $this->reverseLookup($options["path"]); if(!$obj) return "204 No Content"; // TODO recursive locks on directories not supported yet if (get_class($obj) == 'LetoDMS_Core_Folder' && !empty($options["depth"])) { return "409 Conflict"; } if ($obj->getAccessMode($this->user) < M_READWRITE) { return "403 Forbidden"; } if(!$obj->setLocked(false)) { return "409 Conflict"; } return "204 No Content"; } /* }}} */ /** * checkLock() helper * * @param string resource path to check for locks * @return bool true on success */ function checkLock($path) /* {{{ */ { if($this->logger) $this->logger->log('checkLock: path='.$path.'', PEAR_LOG_INFO); // get object to check for lock $obj = $this->reverseLookup($path); // check for folder returns no object if(!$obj) { if($this->logger) $this->logger->log('checkLock: object not found', PEAR_LOG_INFO); return false; } // Folders cannot be locked if(get_class($obj) == 'LetoDMS_Core_Folder') { if($this->logger) $this->logger->log('checkLock: object is a folder', PEAR_LOG_INFO); return false; } if($obj->isLocked()) { $lockuser = $obj->getLockingUser(); if($this->logger) $this->logger->log('checkLock: object is locked by '.$lockuser->getLogin(), PEAR_LOG_INFO); return array( "type" => "write", "scope" => "exclusive", "depth" => 0, "owner" => $lockuser->getLogin(), "token" => 'kk', // must return something to prevent php warning in Server.php:1865 "created" => '', "modified" => '', "expires" => '' ); } else { if($this->logger) $this->logger->log('checkLock: object is not locked', PEAR_LOG_INFO); return false; } } /* }}} */ } /* * vim: ts=2 sw=2 noexpandtab */ ?>