From 9666fe121f49aee995e8f8f855d9318bba57e7f1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 30 Jun 2015 07:52:07 +0200 Subject: [PATCH 001/107] add configuration parameter to turn of database version check --- inc/inc.ClassSettings.php | 4 ++++ inc/inc.DBInit.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index fb4ba1d30..00c6d3512 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -187,6 +187,8 @@ class Settings { /* {{{ */ var $_showMissingTranslations = false; // Extra Path to additional software, will be added to include path var $_extraPath = null; + // do not check version of database + var $_doNotCheckDBVersion = false; // DB-Driver used by adodb (see adodb-readme) var $_dbDriver = "mysql"; // DB-Server @@ -436,6 +438,7 @@ class Settings { /* {{{ */ $this->_dbDatabase = strval($tab["dbDatabase"]); $this->_dbUser = strval($tab["dbUser"]); $this->_dbPass = strval($tab["dbPass"]); + $this->_doNotCheckDBVersion = Settings::boolVal($tab["doNotCheckVersion"]); // XML Path: /configuration/system/smtp $node = $xml->xpath('/configuration/system/smtp'); @@ -712,6 +715,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); + $this->setXMLAttributValue($node, "doNotCheckVersion", $this->_doNotCheckVersion); // XML Path: /configuration/system/smtp $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); diff --git a/inc/inc.DBInit.php b/inc/inc.DBInit.php index 5230b051a..583e6482a 100644 --- a/inc/inc.DBInit.php +++ b/inc/inc.DBInit.php @@ -28,7 +28,7 @@ $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostn $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); -if(!$dms->checkVersion()) { +if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { echo "Database update needed."; exit; } From 94b3b8e6ee638a9c766005b8ec095096304d1362 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 30 Jun 2015 18:12:24 +0200 Subject: [PATCH 002/107] remove print_r() --- op/op.EditDocument.php | 1 - 1 file changed, 1 deletion(-) diff --git a/op/op.EditDocument.php b/op/op.EditDocument.php index 0b6e645a7..314066565 100644 --- a/op/op.EditDocument.php +++ b/op/op.EditDocument.php @@ -268,7 +268,6 @@ if($attributes) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName()))); } if($attrdef->getMaxValues() && $attrdef->getMaxValues() < count($attribute)) { - print_r($attrdef); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_max_values", array("attrname"=>$attrdef->getName()))); } } From 77a5512f0b5d0640f6f163acd27598b4c944ba77 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 30 Jun 2015 18:53:40 +0200 Subject: [PATCH 003/107] move code for easier merging --- views/bootstrap/class.Bootstrap.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index f8980c008..8e62b28b8 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -346,8 +346,6 @@ $(document).ready(function () { function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */ if ($pageType!=null && strcasecmp($pageType, "noNav")) { - if($pageType == "view_folder" || $pageType == "view_document") - echo $pageTitle."\n"; echo "
\n"; echo "
\n"; echo "
\n"; @@ -378,6 +376,8 @@ $(document).ready(function () { echo "
\n"; echo "
\n"; echo "
\n"; + if($pageType == "view_folder" || $pageType == "view_document") + echo $pageTitle."\n"; } else { echo "".$pageTitle."\n"; } From b74e4e154f103e1f69a036b0ff063eada6765961 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 3 Jul 2015 16:57:01 +0200 Subject: [PATCH 004/107] set heading to add_approval --- views/bootstrap/class.ApproveDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.ApproveDocument.php b/views/bootstrap/class.ApproveDocument.php index 16e6d3523..04f104430 100644 --- a/views/bootstrap/class.ApproveDocument.php +++ b/views/bootstrap/class.ApproveDocument.php @@ -51,7 +51,7 @@ class SeedDMS_View_ApproveDocument extends SeedDMS_Bootstrap_Style { $this->globalNavigation($folder); $this->contentStart(); $this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document); - $this->contentHeading(getMLText("submit_approval")); + $this->contentHeading(getMLText("add_approval")); ?> \n"; -echo "\n"; -echo "\n"; - $this->contentContainerEnd(); $this->htmlEndPage(); From c85e00510aafde7c20ca328267d490cc0006215d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 6 Aug 2015 18:05:41 +0200 Subject: [PATCH 045/107] add number of objects export at end of file, add export date --- utils/xmldump.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index 1c77fd9b5..79dd9826c 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -91,8 +91,18 @@ if(isset($options['skip-root'])) { $skiproot = true; } +$statistic = array( + 'documents'=>0, + 'folders'=>0, + 'users'=>0, + 'groups'=>0, + 'attributedefinitions'=>0, + 'keywordcategories'=>0, + 'documentcategories'=>0, +); + function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ - global $index, $dms, $maxsize, $contentdir; + global $statistic, $index, $dms, $maxsize, $contentdir; if(!$skipcurrent) { echo $indent."getId()."\""; @@ -134,6 +144,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." \n"; } echo $indent."\n"; + $statistic['folders']++; $parentfolder = $folder; } else { $parentfolder = null; @@ -375,6 +386,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ } echo $indent."\n"; + $statistic['documents']++; } } } /* }}} */ @@ -391,7 +403,7 @@ if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { $dms->setRootFolderID($settings->_rootFolderID); echo "\n"; -echo "getDBVersion(), 1, 3))."\">\n"; +echo "getDBVersion(), 1, 3))."\" date=\"".date('Y-m-d H:i:s')."\">\n"; $users = $dms->getAllUsers(); if($users) { echo "\n"; @@ -435,6 +447,7 @@ if($users) { echo " \n"; } echo " \n"; + $statistic['users']++; } echo "\n"; } @@ -455,6 +468,7 @@ if($groups) { echo " \n"; } echo " \n"; + $statistic['groups']++; } echo "\n"; } @@ -477,6 +491,7 @@ if($categories) { echo " \n"; } echo " \n"; + $statistic['keywordcategories']++; } echo "\n"; } @@ -488,6 +503,7 @@ if($categories) { echo " getId()."\">\n"; echo " ".wrapWithCData($category->getName())."\n"; echo " \n"; + $statistic['documentcategories']++; } echo "\n"; } @@ -520,6 +536,7 @@ if($attrdefs) { echo " ".$attrdef->getMaxValues()."\n"; echo " ".wrapWithCData($attrdef->getRegex())."\n"; echo " \n"; + $statistic['attributedefinitions']++; } echo "\n"; } @@ -530,4 +547,8 @@ if($folder) { } echo "\n"; +echo "\n" ?> From ac544ef206a193db326cdfd59ed1709112b507b0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 6 Aug 2015 18:16:30 +0200 Subject: [PATCH 046/107] add command line to statistic section --- utils/xmldump.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/xmldump.php b/utils/xmldump.php index 79dd9826c..4ad5be69f 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -548,6 +548,9 @@ if($folder) { echo "\n"; echo "\n" From e4b3c76f0fc51afce4be843afc097e94e3f1d29c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 6 Aug 2015 18:20:43 +0200 Subject: [PATCH 047/107] add statistics with regular xml tags --- utils/xmldump.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index 4ad5be69f..3abcfd7d5 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -546,12 +546,10 @@ if($folder) { tree($folder, null, '', $skiproot); } -echo "\n"; -echo "\n" + echo " <".$type.">".$count."\n"; +echo "\n"; +echo "\n"; ?> From b3b638c1a8e1a9dc84400dfa4d0b7370de8f1350 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 6 Aug 2015 22:30:39 +0200 Subject: [PATCH 048/107] sections to be exported can be specified --- utils/xmldump.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index 3abcfd7d5..aec6fa01f 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -14,6 +14,7 @@ function usage() { /* {{{ */ echo " --config: set alternative config file.\n"; echo " --folder: set start folder.\n"; echo " --skip-root: do not export the root folder itself.\n"; + echo " --sections : comma seperated list of sections to export.\n"; echo " --maxsize: maximum size of files to be included in output\n"; echo " (defaults to 100000)\n"; echo " --contentdir: directory where all document versions are stored\n"; @@ -29,7 +30,7 @@ function wrapWithCData($text) { /* {{{ */ $version = "0.0.1"; $shortoptions = "hv"; -$longoptions = array('help', 'version', 'skip-root', 'config:', 'folder:', 'maxsize:', 'contentdir:'); +$longoptions = array('help', 'version', 'skip-root', 'config:', 'folder:', 'maxsize:', 'contentdir:', 'sections:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); @@ -75,6 +76,11 @@ if(isset($options['contentdir'])) { $contentdir = ''; } +$sections = array(); +if(isset($options['sections'])) { + $sections = explode(',', $options['sections']); +} + if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); @@ -102,8 +108,9 @@ $statistic = array( ); function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ - global $statistic, $index, $dms, $maxsize, $contentdir; + global $sections, $statistic, $index, $dms, $maxsize, $contentdir; + if(!$sections || in_array('folders', $sections)) { if(!$skipcurrent) { echo $indent."getId()."\""; if($parent) @@ -155,6 +162,9 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ tree($subfolder, $parentfolder, $indent); } } + } + + if(!$sections || in_array('documents', $sections)) { $documents = $folder->getDocuments(); if($documents) { foreach($documents as $document) { @@ -389,6 +399,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ $statistic['documents']++; } } + } } /* }}} */ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); @@ -404,6 +415,7 @@ $dms->setRootFolderID($settings->_rootFolderID); echo "\n"; echo "getDBVersion(), 1, 3))."\" date=\"".date('Y-m-d H:i:s')."\">\n"; +if(!$sections || in_array('users', $sections)) { $users = $dms->getAllUsers(); if($users) { echo "\n"; @@ -451,7 +463,9 @@ if($users) { } echo "\n"; } +} +if(!$sections || in_array('groups', $sections)) { $groups = $dms->getAllGroups(); if($groups) { echo "\n"; @@ -472,7 +486,9 @@ if($groups) { } echo "\n"; } +} +if(!$sections || in_array('keywordcategories', $sections)) { $categories = $dms->getAllKeywordCategories(); if($categories) { echo "\n"; @@ -495,7 +511,9 @@ if($categories) { } echo "\n"; } +} +if(!$sections || in_array('documentcategories', $sections)) { $categories = $dms->getDocumentCategories(); if($categories) { echo "\n"; @@ -507,7 +525,9 @@ if($categories) { } echo "\n"; } +} +if(!$sections || in_array('attributedefinition', $sections)) { $attrdefs = $dms->getAllAttributeDefinitions(); if($attrdefs) { echo "\n"; @@ -540,6 +560,7 @@ if($attrdefs) { } echo "\n"; } +} $folder = $dms->getFolder($folderid); if($folder) { From 57abe531667eb182a8fc8005cf72e290d19bde2e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 09:11:00 +0200 Subject: [PATCH 049/107] set default language to en_GB (was still 'English') --- inc/inc.ClassSettings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 7accdf099..36e44f757 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -92,7 +92,7 @@ class Settings { /* {{{ */ // Maximum number of sub-directories per parent directory var $_maxDirID = 32700; // default language (name of a subfolder in folder "languages") - var $_language = "English"; + var $_language = "en_GB"; // 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 From 5b53df6356bd5a759cf208e99d716a34ec70180a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 09:13:06 +0200 Subject: [PATCH 050/107] no need to explicitly load the english translations the default language is now propperly set in the inc/inc.ClassSettings.php --- install/index.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/index.php b/install/index.php index ffab318f5..57fa4afc9 100644 --- a/install/index.php +++ b/install/index.php @@ -7,9 +7,7 @@ $settings->_rootDir = $rootDir.'/'; $theme = "blue"; include("../inc/inc.Language.php"); -include "../languages/en_GB/lang.inc"; include("../inc/inc.ClassUI.php"); -$LANG['en_GB'] = $text; UI::htmlStartPage("INSTALL"); UI::contentHeading("SeedDMS Installation..."); From 36a11facf210c4e8387329d7be30ec3407dd300f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 09:27:54 +0200 Subject: [PATCH 051/107] use relative link to out/out.Settings.php --- install/install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/install.php b/install/install.php index 569db5a2b..2e0f1630c 100644 --- a/install/install.php +++ b/install/install.php @@ -206,7 +206,7 @@ if (isset($_GET['disableinstall'])) { /* {{{ */ if(unlink($configDir."/ENABLE_INSTALL_TOOL")) { echo getMLText("settings_install_disabled"); echo "

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

"; @@ -368,7 +368,7 @@ if ($action=="setSettings") { echo '' . getMLText("settings_disable_install") . ''; echo "

"; - echo '' . getMLText("settings_more_settings") .''; + echo '' . getMLText("settings_more_settings") .''; $showform = false; } } else { From 0834571885aed155880198ea268f21782f04d3bb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 13:36:39 +0200 Subject: [PATCH 052/107] add croatian (hr_HR) --- languages/ar_EG/lang.inc | 1 + languages/bg_BG/lang.inc | 1 + languages/ca_ES/lang.inc | 1 + languages/cs_CZ/lang.inc | 1 + languages/de_DE/lang.inc | 3 +- languages/en_GB/lang.inc | 5 +- languages/es_ES/lang.inc | 1 + languages/fr_FR/lang.inc | 1 + languages/hr_HR/lang.inc | 1353 ++++++++++++++++++++++++++++++++++++++ languages/hu_HU/lang.inc | 1 + languages/it_IT/lang.inc | 1 + languages/ko_KR/lang.inc | 7 +- languages/nl_NL/lang.inc | 1 + languages/pl_PL/lang.inc | 1 + languages/pt_BR/lang.inc | 13 +- languages/ro_RO/lang.inc | 1 + languages/ru_RU/lang.inc | 1 + languages/sk_SK/lang.inc | 1 + languages/sv_SE/lang.inc | 1 + languages/tr_TR/lang.inc | 1 + languages/uk_UA/lang.inc | 1 + languages/zh_CN/lang.inc | 1 + languages/zh_TW/lang.inc | 1 + 23 files changed, 1387 insertions(+), 12 deletions(-) create mode 100644 languages/hr_HR/lang.inc diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index dee269d0f..194936883 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -466,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'بالساعة', 'hours' => 'ساعات', +'hr_HR' => '', 'human_readable' => 'ارشيف مقروء', 'hu_HU' => 'مجرية', 'id' => 'معرف', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index c39730581..c4a8756a6 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -397,6 +397,7 @@ $text = array( 'home_folder' => '', 'hourly' => 'Ежечасно', 'hours' => 'часа', +'hr_HR' => '', 'human_readable' => 'Човекопонятен архив', 'hu_HU' => '', 'id' => 'ID', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 29d070f08..39277d154 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -402,6 +402,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Hourly', 'hours' => '', +'hr_HR' => '', 'human_readable' => 'Arxiu llegible per humans', 'hu_HU' => '', 'id' => 'ID', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 8536655a5..25e2f300f 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -473,6 +473,7 @@ URL: [url]', 'home_folder' => 'Domácí složka', 'hourly' => 'Hodinově', 'hours' => 'hodiny', +'hr_HR' => '', 'human_readable' => 'Bežně čitelný archív', 'hu_HU' => 'Maďarština', 'id' => 'ID', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index f62314e2b..23c5cc16e 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2101), dgrutsch (18) +// Translators: Admin (2102), dgrutsch (18) $text = array( 'accept' => 'Übernehmen', @@ -478,6 +478,7 @@ URL: [url]', 'home_folder' => 'Heimatordner', 'hourly' => 'stündlich', 'hours' => 'Stunden', +'hr_HR' => 'Kroatisch', 'human_readable' => 'Menschenlesbares Archiv', 'hu_HU' => 'Ungarisch', 'id' => 'ID', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index a3b8ff5bb..0f79f30c9 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1232), dgrutsch (3), netixw (14) +// Translators: Admin (1234), dgrutsch (3), netixw (14) $text = array( 'accept' => 'Accept', @@ -478,6 +478,7 @@ URL: [url]', 'home_folder' => 'Home folder', 'hourly' => 'Hourly', 'hours' => 'hours', +'hr_HR' => 'Croatian', 'human_readable' => 'Human readable archive', 'hu_HU' => 'Hungarian', 'id' => 'ID', @@ -540,7 +541,7 @@ URL: [url]', 'keep_doc_status' => 'Keep document status', 'keywords' => 'Keywords', 'keyword_exists' => 'Keyword already exists', -'ko_KR' => '', +'ko_KR' => 'Korean', 'language' => 'Language', 'lastaccess' => 'Last access', 'last_update' => 'Last Update', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index d0c8f2838..f4b65e580 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -473,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Horaria', 'hours' => 'horas', +'hr_HR' => '', 'human_readable' => 'Archivo legible por humanos', 'hu_HU' => 'Hungaro', 'id' => 'ID', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index d41e8601e..a516e2a6c 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -473,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Une fois par heure', 'hours' => 'heures', +'hr_HR' => '', 'human_readable' => 'Archive au format lisible', 'hu_HU' => 'Hongrois', 'id' => 'ID', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc new file mode 100644 index 000000000..c6153e8c4 --- /dev/null +++ b/languages/hr_HR/lang.inc @@ -0,0 +1,1353 @@ + 'Prihvati', +'access_denied' => 'Odbijen pristup.', +'access_inheritance' => 'Nasljedivost razine pristupa', +'access_mode' => 'Način pristupa', +'access_mode_all' => 'Sve dozvole', +'access_mode_none' => 'Bez pristupa', +'access_mode_read' => 'Dozvola čitanja', +'access_mode_readwrite' => 'Dozvola čitaj-piši', +'access_permission_changed_email' => 'Dozvola je promijenjena', +'access_permission_changed_email_body' => 'Dozvola je promijenjena +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'access_permission_changed_email_subject' => '[sitename]: [name] - Dozvola je promijenjena', +'according_settings' => 'sukladno postavkama', +'action' => 'Postupak', +'actions' => 'Postupci', +'action_approve' => 'Odobri', +'action_complete' => 'Završi', +'action_is_complete' => 'Završeno', +'action_is_not_complete' => 'Nije završeno', +'action_reject' => 'Odbaci', +'action_review' => 'Pregledaj', +'action_revise' => 'Izmijeni', +'add' => 'Dodaj', +'add_approval' => '', +'add_document' => 'Dodaj dokument', +'add_document_link' => 'Dodaj poveznicu', +'add_document_notify' => '', +'add_doc_reviewer_approver_warning' => 'N.B. Dokumenti se automatski označavaju kao objavljeni ako nije dodijeljen recezent ili validator.', +'add_doc_workflow_warning' => 'N.B. Dokumenti se automatski označavaju kao objavljeni ako nije dodijeljen tok rada.', +'add_event' => 'Dodaj događaj', +'add_group' => 'Dodaj novu grupu', +'add_member' => 'Dodaj člana', +'add_multiple_documents' => 'Dodaj više dokumenata odjednom', +'add_multiple_files' => 'Dodaj više datoteka (koristit će naziv datoteke kao naziv dokumenta)', +'add_receipt' => '', +'add_review' => '', +'add_revision' => '', +'add_subfolder' => 'Dodaj podmapu', +'add_to_clipboard' => 'Dodaj u međuspremnik', +'add_to_transmittal' => '', +'add_transmittal' => '', +'add_user' => 'Dodaj novog korisnika', +'add_user_to_group' => 'Dodaj korisnika u grupu', +'add_workflow' => 'Dodaj novi tok rada', +'add_workflow_action' => 'Dodaj novu radnju toka rada', +'add_workflow_state' => 'Dodaj novi status toka rada', +'admin' => 'Administrator', +'admin_tools' => 'Administratorski alati', +'all' => 'Sve', +'all_categories' => 'Sve kategorije', +'all_documents' => 'Svi dokumenti', +'all_pages' => 'Sve', +'all_users' => 'Svi korisnici', +'already_subscribed' => 'Već prijavljeno', +'and' => 'i', +'apply' => 'Primjeni', +'approval_deletion_email' => 'Izbrisan zahtjev za odobrenje', +'approval_deletion_email_body' => '', +'approval_deletion_email_subject' => '', +'approval_file' => '', +'approval_group' => 'Grupa odobrenja', +'approval_log' => 'Popis odobrenja', +'approval_request_email' => 'Zahtjev za odobrenje', +'approval_request_email_body' => 'Zahtjev za odobrenje +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'approval_request_email_subject' => '[sitename]: [name] - Zahtjev za odobrenje', +'approval_status' => 'Status odobrenja', +'approval_submit_email' => '', +'approval_submit_email_body' => 'Odobrenje dokumenta +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Status: [status] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'approval_submit_email_subject' => 'Podnešeno odobrenje', +'approval_summary' => 'Pregled odobrenja', +'approval_update_failed' => 'Greška pri ažuriranju statusa odobrenja. Ažuriranje nije uspjelo.', +'approvers' => 'Validatori', +'approver_already_assigned' => '', +'approver_already_removed' => '', +'april' => 'Travanj', +'archive_creation' => 'Izrada arhive', +'archive_creation_warning' => 'Ovom radnjom možete izraditi arhivu koja sadrži datoteke cijele DMS mape. Nakon izrade arhiva će biti pohranjena u podatkovnu mapu vašer servera.
UPOZORENJE: arhiva izrađena na način da je čitljiva ljudima, bit će bezkorisna kao sigurnosna kopija servera.', +'ar_EG' => 'Arapski', +'assign_approvers' => 'Dodijeli validatore', +'assign_reviewers' => 'Dodijeli recezente', +'assign_user_property_to' => 'Dodijeli svojstva korisnika za', +'assumed_released' => 'Podrazumijevano obrađeno', +'attrdef_exists' => 'Definicija atributa već postoji', +'attrdef_in_use' => 'Definicija atributa se već koristi', +'attrdef_management' => 'Upravljanje definicijama atributa', +'attrdef_maxvalues' => 'Max. broj vrijednosti', +'attrdef_minvalues' => 'Min. broj vrijednosti', +'attrdef_min_greater_max' => 'Minimalni broj vrijednosti je veći od maksimalnog broja vrijednosti', +'attrdef_multiple' => 'Dozvoli više vrijednosti', +'attrdef_must_be_multiple' => 'Atribut mora imati više od jedne vrijednosti, ali nije postavljeno više vrijednosti', +'attrdef_name' => 'Naziv', +'attrdef_noname' => 'Nedostaje naziv za definiciju atributa', +'attrdef_objtype' => 'Vrsta objekta', +'attrdef_regex' => 'Pravilni izraz', +'attrdef_type' => 'Vrsta', +'attrdef_type_boolean' => '', +'attrdef_type_email' => '', +'attrdef_type_float' => '', +'attrdef_type_int' => '', +'attrdef_type_string' => '', +'attrdef_type_url' => '', +'attrdef_valueset' => 'Skup vrijednosti', +'attributes' => 'Atributi', +'attribute_changed_email_body' => 'Promijenjen atribut +Dokument: [name] +Verzija: [version] +Atribut: [attribute] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'attribute_changed_email_subject' => '[sitename]: [name] - Promijenjen atribut', +'attribute_count' => 'Broj uporaba', +'attribute_value' => 'Vrijednost atributa', +'attr_malformed_email' => '', +'attr_malformed_url' => '', +'attr_max_values' => 'Premašen je maksimalni broj zahtjevanih vrijednosti za atribute[attrname].', +'attr_min_values' => 'Minimalni broj zahtjevanih vrijednosti za atribute[attrname] nije dostignut.', +'attr_no_regex_match' => 'Vrijednost atributa ne odgovara pravilnom izrazu', +'at_least_n_users_of_group' => 'Najmanje [number_of_users] korisnika iz [group]', +'august' => 'Kolovoz', +'authentication' => 'Ovjera', +'author' => 'Autor', +'automatic_status_update' => 'Automatska promjena statusa', +'back' => 'Natrag', +'backup_list' => 'Popis postojećih sigurnosnih kopija', +'backup_log_management' => 'Sigurnosna kopija / Bilježenje', +'backup_remove' => 'Ukloni datoteku sigurnosne kopije', +'backup_tools' => 'Alat za sigurnosnu kopiju', +'between' => 'između', +'bg_BG' => 'Bugarski', +'browse' => 'Pretraži', +'calendar' => 'Kalendar', +'calendar_week' => 'kalendarski tjedan', +'cancel' => 'Odustani', +'cannot_assign_invalid_state' => 'Ne možete mijenjati zastarjeli ili odbijeni dokument', +'cannot_change_final_states' => 'Upozorenje: Ne možete mijenjati status odbijenog, isteklog ili dokumenta koji čeka na ovjeru ili odobrenje', +'cannot_delete_user' => 'Ne možete izbrisati korisnika', +'cannot_delete_yourself' => 'Ne možete izbrisati sebe', +'cannot_move_root' => 'Greška: Ne možete premještati root mapu.', +'cannot_retrieve_approval_snapshot' => 'Nije moguće dohvatiti snimku statusa odobrenja za ovu verziju dokumenta.', +'cannot_retrieve_review_snapshot' => 'Nije moguće dohvatiti snimku statusa pregleda za ovu verziju dokumenta.', +'cannot_rm_root' => 'Greška: Ne možete izbrisati root mapu.', +'categories' => 'Kategorije', +'category' => 'Kategorija', +'category_exists' => 'Kategorija već postoji.', +'category_filter' => 'Samo kategorije', +'category_in_use' => 'Ovu kategoriju trenutno koriste dokumenti.', +'category_noname' => 'Nije dan naziv kategoriji.', +'ca_ES' => 'Katalonski', +'change_assignments' => 'Promjena zadataka', +'change_password' => 'Promjeni lozinku', +'change_password_message' => 'Vaša lozinka je promijenjena.', +'change_recipients' => '', +'change_revisors' => '', +'change_status' => 'Promijeni status', +'charts' => 'Grafikoni', +'chart_docsaccumulated_title' => 'Broj dokumenata', +'chart_docspercategory_title' => 'Dokumenata po kategoriji', +'chart_docspermimetype_title' => 'Dokupenti po tipu', +'chart_docspermonth_title' => 'Novi dokumenti na mjesec', +'chart_docsperstatus_title' => 'Dokumenata po statusu', +'chart_docsperuser_title' => 'Dokumenata po korisniku', +'chart_selection' => 'Odaberi grafikon', +'chart_sizeperuser_title' => 'Prostor na disku po korisniku', +'checkedout_file_has_different_version' => '', +'checkedout_file_has_disappeared' => '', +'checkedout_file_is_unchanged' => '', +'checkin_document' => '', +'checkout_document' => '', +'checkout_is_disabled' => '', +'choose_attrdef' => 'Molim odaberite definiciju atributa', +'choose_category' => 'Molim odaberite', +'choose_group' => 'Odaberite grupu', +'choose_target_category' => 'Odaberite kategoriju', +'choose_target_document' => 'Odaberite dokument', +'choose_target_file' => 'Odaberite datoteku', +'choose_target_folder' => 'Odaberite mapu', +'choose_user' => 'Odaberite korisnika', +'choose_workflow' => 'Odaberite tok rada', +'choose_workflow_action' => 'Odaberite radnju toka rada', +'choose_workflow_state' => 'Odaberite status toka rada', +'clear_clipboard' => 'Očistite međuspremnik', +'clipboard' => 'Međuspremnik', +'close' => 'Zatvori', +'comment' => 'Komentar', +'comment_changed_email' => '', +'comment_for_current_version' => 'Verzija komentara', +'confirm_create_fulltext_index' => 'Da, želim ponovo indeksirati cijeli tekst!', +'confirm_pwd' => 'Potvrdi lozinku', +'confirm_rm_backup' => 'Da li zaista želite ukloniti datoteku "[arkname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_document' => 'Da li zaista želite ukloniti dokument \'[documentname]\'?
Oprez: ova radnja nije povratna.', +'confirm_rm_dump' => 'Da li zaista želite ukloniti datoteku "[dumpname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_event' => 'Da li zaista želite ukloniti događaj "[name]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_file' => 'Da li zaista želite ukloniti datoteku "[name]" dokumenta "[documentname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_folder' => 'Da li zaista želite ukloniti mapu \'[foldername]\' i njezin sadržaj?
Oprez: ova radnja nije povratna.', +'confirm_rm_folder_files' => 'Da li zaista želite ukloniti sve datoteke u mapi "[foldername]" i sve podmape?
Oprez: ova radnja nije povratna.', +'confirm_rm_group' => 'Da li zaista želite ukloniti grupu "[groupname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_log' => 'Da li zaista želite ukloniti log datoteku "[logname]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_transmittalitem' => '', +'confirm_rm_user' => 'Da li zaista želite ukloniti korisnika "[username]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_version' => 'Da li zaista želite ukloniti verziju [version] dokumenta "[documentname]"?
Oprez: ova radnja nije povratna.', +'confirm_update_transmittalitem' => '', +'content' => 'Sadržaj', +'continue' => 'Nastavi', +'converter_new_cmd' => '', +'converter_new_mimetype' => '', +'copied_to_checkout_as' => '', +'create_fulltext_index' => 'Indeksiraj cijeli tekst', +'create_fulltext_index_warning' => 'Želite ponovo indeksirati cijeli tekst. To može duže potrajati i smanjiti sveukupne performanse sustava. Ako zaista želite ponovno indeksirati, molimo potvrdite vašu radnju.', +'creation_date' => 'Izrađeno', +'cs_CZ' => 'Češki', +'current_password' => 'Trenutna lozinka', +'current_quota' => 'Postavljena je kvota sadašnjeg sustava [quota].', +'current_state' => 'Trenutni status', +'current_version' => 'Trenutna verzija', +'daily' => 'Dnevno', +'databasesearch' => 'Pretraživanje baze podataka', +'date' => 'Datum', +'days' => 'dani', +'december' => 'Prosinac', +'default_access' => 'Zadani način pristupa', +'default_keywords' => 'Dostupne ključne riječi', +'definitions' => 'Definicije', +'delete' => 'Izbriši', +'details' => 'Detalji', +'details_version' => 'Detalji za verziju: [version]', +'de_DE' => 'Njemački', +'disclaimer' => 'Ovo je klasificirano područje. Pristup je omogućen samo ovlaštenim osobama. Sa svakim kršenjem bit će postupano sukladno nacionalnim i međunarodnim zakonima.', +'discspace' => 'Prostor na disku', +'document' => 'Dokument', +'documents' => 'Dokumenti', +'documents_checked_out_by_you' => '', +'documents_in_process' => 'Dokumenti u postupku', +'documents_locked_by_you' => 'Dokumenti koje ste vi zaključali', +'documents_only' => 'Samo dokumenti', +'documents_to_approve' => 'Dokumenti koji čekaju vaše odobrenje', +'documents_to_receipt' => '', +'documents_to_review' => 'Dokumenti koji čekaju vaš pregled', +'documents_to_revise' => '', +'documents_user_rejected' => '', +'documents_user_requiring_attention' => 'Dokumenti u vašem vlasništvu koji zahtjevaju pažnju', +'document_already_checkedout' => '', +'document_already_locked' => 'Ovaj dokument je već zaključan', +'document_comment_changed_email' => 'Promijenjen komentar', +'document_comment_changed_email_body' => 'Promijenjen komentar +Dokument: [name] +Stari komentar: [old_comment] +Komentar: [new_comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', +'document_deleted' => 'Izbrisan dokument', +'document_deleted_email' => 'Izbrisan dokument', +'document_deleted_email_body' => 'Izbrisan dokument +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username]', +'document_deleted_email_subject' => '[sitename]: [name] - Izbrisan dokument', +'document_duplicate_name' => 'Duplicate document name', +'document_has_no_workflow' => 'Dokument nema tok rada', +'document_infos' => 'Informacije o dokumentu', +'document_is_checked_out' => '', +'document_is_not_locked' => 'Ovaj dokument nije zaključan', +'document_link_by' => 'Povezao', +'document_link_public' => 'Javno', +'document_moved_email' => 'Premješten dokument', +'document_moved_email_body' => 'Premješten dokument +Dokument: [name] +Prijašnja mapa: [old_folder_path] +Nova mapa: [new_folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_moved_email_subject' => '[sitename]: [name] - Premješten dokument', +'document_not_checkedout' => '', +'document_renamed_email' => 'Preimenovan dokument', +'document_renamed_email_body' => 'Promjenjen naziv dokumenta +Dokument: [name] +Glavna mapa: [folder_path] +Prijašnji naziv: [old_name] +Korisnik: [username] +Internet poveznica: [url]', +'document_renamed_email_subject' => '[sitename]: [name] - Preimenovan dokument', +'document_status_changed_email' => 'Promijenjen status dokumenta', +'document_status_changed_email_body' => 'Promijenjen status dokumenta +Dokument: [name] +Status: [status] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'document_status_changed_email_subject' => '[sitename]: [name] - Promijenjen status dokumenta', +'document_title' => 'Dokument \'[documentname]\'', +'document_updated_email' => 'Ažuriran dokument', +'document_updated_email_body' => 'Ažuriran dokument +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Komentar: [comment] +Komentar verzije: [version_comment] +Internet poveznica: [url]', +'document_updated_email_subject' => '[sitename]: [name] - Ažuriran dokument', +'does_not_expire' => 'Ne istječe', +'does_not_inherit_access_msg' => 'Naslijedi nivo pristupa', +'download' => 'Preuzimanje', +'do_object_repair' => 'Popravi sve mape i dokumente.', +'do_object_setchecksum' => 'Postavi kontrolnu sumu', +'do_object_setfilesize' => 'Postavi veličinu datoteke', +'do_object_unlink' => 'Izbriši verziju dokumenta', +'draft' => '', +'draft_pending_approval' => 'Skica - čeka odobrenje', +'draft_pending_review' => 'Skica - čeka pregled', +'drag_icon_here' => 'Ovdje povuci ikonu mape ili dokumenta!', +'dropfolder_file' => 'Datoteka iz padajuće mape', +'dropupload' => 'Zona za brzo učitavanje', +'drop_files_here' => 'Ovdje ispusti datoteku!', +'dump_creation' => 'Izrada odlagališta baze podataka', +'dump_creation_warning' => 'Ovom radnjom možete stvoriti datoteku za odlaganje sadržaja vaše baze podataka. Nakon izrade datoteka za odlaganje će biti pohranjena u podatkovnoj mapi na vašem serveru.', +'dump_list' => 'Postojeće datoteke za odlaganje', +'dump_remove' => 'Ukloni datoteku za odlaganje', +'duplicate_content' => '', +'edit' => 'Uredi', +'edit_attributes' => 'Uredi atribute', +'edit_comment' => 'Uredi komentar', +'edit_default_keywords' => 'Uredi ključne riječi', +'edit_document_access' => 'Uredi pristup', +'edit_document_notify' => 'Popis za obavijesti o dokumentu', +'edit_document_props' => 'Uredi dokument', +'edit_event' => 'Uredi događaj', +'edit_existing_access' => 'Uredi popis pristupa', +'edit_existing_notify' => 'Uredi popis za primanje obavijesti', +'edit_folder_access' => 'Uredi pristup', +'edit_folder_notify' => 'Popis za obavijesti o mapi', +'edit_folder_props' => 'Uredi mapu', +'edit_group' => 'Uredi mapu', +'edit_transmittal_props' => '', +'edit_user' => 'Uredi korisnika', +'edit_user_details' => 'Uredi detalje korisnika', +'email' => 'Email', +'email_error_title' => 'Nema ulaznog emaila', +'email_footer' => 'Koristeći funckcije \'Moj račun\' možete promijeniti postavke email obavještavanja.', +'email_header' => 'Ovo je automatski generirana poruka iz DMS sustava', +'email_not_given' => 'Molimo unesite valjanu email adresu.', +'empty_folder_list' => 'Nema dokumenata ili mapa', +'empty_notify_list' => 'Nema zapisa', +'en_GB' => 'Engleski (GB)', +'equal_transition_states' => 'Početni i završni status su jednaki', +'error' => 'Greška', +'error_no_document_selected' => 'Nije odabran dokument', +'error_no_folder_selected' => 'Nije odabrana mapa', +'error_occured' => 'Dogodila se greška', +'es_ES' => 'Španjolski', +'event_details' => 'Detalji događaja', +'expired' => 'Isteklo', +'expires' => 'Datum isteka', +'expiry_changed_email' => 'Promijenjen datum isteka', +'expiry_changed_email_body' => 'Promijenjen datum isteka +Dokument: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'expiry_changed_email_subject' => '[sitename]: [name] - Promijenjen datum isteka', +'export' => '', +'extension_manager' => 'Upravljanje ekstenzijama', +'february' => 'Veljača', +'file' => 'Datoteka', +'files' => 'Datoteke', +'files_deletion' => 'Brisanje datoteke', +'files_deletion_warning' => 'Ovom opcijom možete izbrisati sve datoteke ili cjelokupne DMS mape. Informacije o verzijama će ostati vidljive.', +'file_size' => 'Veličina datoteke', +'filter_for_documents' => 'Dodatni filter za dokumente', +'filter_for_folders' => 'Dodatni filter za dokumente', +'folder' => 'Mapa', +'folders' => 'Mape', +'folders_and_documents_statistic' => 'Pregled sadržaja', +'folder_comment_changed_email' => 'Promijenjen komentar', +'folder_comment_changed_email_body' => 'Promijenjen komentar +Mapa: [name] +Stari komentar: [old_comment] +Komentar: [new_comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', +'folder_contents' => 'Sadržaj mape', +'folder_deleted_email' => 'Izbrisana mapa', +'folder_deleted_email_body' => 'Izbrisana mapa +Mapa: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_deleted_email_subject' => '[sitename]: [name] - Izbrisana mapa', +'folder_infos' => 'Informacije o mapi', +'folder_moved_email' => 'Premještena mapa', +'folder_moved_email_body' => 'Premještaj mape +Mapa: [name] +Prijašnja mapa: [old_folder_path] +Nova mapa: [new_folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'folder_moved_email_subject' => '[sitename]: [name] - Premještena mapa', +'folder_renamed_email' => 'Preimenovana mapa', +'folder_renamed_email_body' => 'Preimenovana mapa +Mapa: [name] +Glavna mapa: [folder_path] +Old name: [old_name] +Korisnik: [username] +Internet poveznica: [url]', +'folder_renamed_email_subject' => '[sitename]: [name] - Preimenovana mapa', +'folder_title' => 'Mapa \'[foldername]\'', +'friday' => 'Petak', +'friday_abbr' => 'Pe', +'from' => 'Od', +'fr_FR' => 'Francuski', +'fullsearch' => 'Pretraživanje cijelog teksta', +'fullsearch_hint' => 'Koristi indeks cijelog teksta', +'fulltext_info' => 'Informacije cijelog teksta', +'global_attributedefinitions' => 'Atributi', +'global_default_keywords' => 'Globalne ključne riječi', +'global_document_categories' => 'Kategorije', +'global_workflows' => 'Tokovi rada', +'global_workflow_actions' => 'Radnje toka rada', +'global_workflow_states' => 'Statusi toka rada', +'group' => 'Grupa', +'groups' => 'Grupe', +'group_approval_summary' => 'Pregled odobrenja grupe', +'group_exists' => 'Grupa već postoji.', +'group_management' => 'Upravljanje grupama', +'group_members' => 'Članovi grupe', +'group_receipt_summary' => '', +'group_review_summary' => 'Sažetak pregleda grupe', +'guest_login' => 'Prijavite se kao gost', +'guest_login_disabled' => 'Prijava "kao gost" je onemogućena.', +'help' => 'Pomoć', +'home_folder' => 'Početna mapa', +'hourly' => 'Po satima', +'hours' => 'sati', +'hr_HR' => 'Hrvatski', +'human_readable' => 'Arhiva čitljiva ljudima', +'hu_HU' => 'Mađarski', +'id' => 'ID', +'identical_version' => 'Nova verzija je identična trenutnoj verziji.', +'include_content' => '', +'include_documents' => 'Sadrži dokumente', +'include_subdirectories' => 'Sadrži podmape', +'index_converters' => 'Pretvorba indeksa dokumenta', +'index_folder' => 'Mapa indeksa', +'individuals' => 'Pojedinci', +'inherited' => 'naslijeđeno', +'inherits_access_copy_msg' => 'Kopiraj listu naslijeđenih prava pristupa', +'inherits_access_empty_msg' => 'Započnite s praznim popisom pristupa', +'inherits_access_msg' => 'Prava pristupa se naslijeđuju.', +'internal_error' => 'Interna greška', +'internal_error_exit' => 'Interna greška. Ne mogu završiti zahtjev. Izlaz.', +'invalid_access_mode' => 'Pogrešan način pristupa', +'invalid_action' => 'Pogrešna radnja', +'invalid_approval_status' => 'Pogrešan status odobrenja', +'invalid_create_date_end' => 'Pogrešan krajnji datum za izradu vremenskog raspona.', +'invalid_create_date_start' => 'Pogrešan početni datum za izradu vremenskog raspona.', +'invalid_doc_id' => 'Pogrešan ID dokumenta', +'invalid_file_id' => 'Pogrešan ID datoteke', +'invalid_folder_id' => 'Pogrešan ID mape', +'invalid_group_id' => 'Pogrešan ID grupe', +'invalid_link_id' => 'Pogrešan identifikator poveznice', +'invalid_request_token' => 'Pogrešan zahtjev za token', +'invalid_review_status' => 'Pogrešan status pregleda', +'invalid_sequence' => 'Pogrešna vrijednost sekvence', +'invalid_status' => 'Pogrešan status dokumenta', +'invalid_target_doc_id' => 'Pogrešan ID ciljanog dokumenta', +'invalid_target_folder' => 'Pogrešan ID ciljane mape', +'invalid_user_id' => 'Pogrešan ID korisnika', +'invalid_version' => 'Pogrešna verzija dokumenta', +'in_revision' => '', +'in_workflow' => 'U toku rada', +'is_disabled' => 'Onemogući klijenta', +'is_hidden' => 'Sakrij iz popisa korisnika', +'it_IT' => 'Talijanski', +'january' => 'Siječanj', +'js_no_approval_group' => 'Molim odaberite grupu odobrenja', +'js_no_approval_status' => 'Molim odaberite status odobrenja', +'js_no_comment' => 'Nema komentara', +'js_no_email' => 'Upišite vašu e-mail adresu', +'js_no_file' => 'Molim odaberite datoteku', +'js_no_keywords' => 'Odredite neke ključne riječi', +'js_no_login' => 'Molim upišite korisničko ime', +'js_no_name' => 'MOlim upišite naziv', +'js_no_override_status' => 'Molim odaberite novi status', +'js_no_pwd' => 'Morate unijeti vašu lozinku', +'js_no_query' => 'Unesite upit', +'js_no_review_group' => 'Molim odaberite grupu pregleda', +'js_no_review_status' => 'Molim odaberite status pregleda', +'js_pwd_not_conf' => 'Lozinka i potvrda lozinke nisu jednake', +'js_select_user' => 'Molim odaberite korisnika', +'js_select_user_or_group' => 'Odaberite barem korisnika ili grupu', +'july' => 'Srpanj', +'june' => 'Lipanj', +'keep' => 'Ne mijenjaj', +'keep_doc_status' => 'Zadrži status dokumenta', +'keywords' => 'Ključne riječi', +'keyword_exists' => 'Ključna riječ već postoji', +'ko_KR' => '', +'language' => 'Jezik', +'lastaccess' => 'Zadnji pristup', +'last_update' => 'Zadnje ažuriranje', +'legend' => 'Kazalo', +'librarydoc' => '', +'linked_documents' => 'Vezani dokumenti', +'linked_files' => 'Prilozi', +'link_alt_updatedocument' => 'Ako želite prenijeti datoteke veće od trenutne maksimalne veličine prijenosa, molimo koristite alternativu upload page.', +'local_file' => 'Lokalna datoteka', +'locked_by' => 'Zaključao', +'lock_document' => 'Zaključaj', +'lock_message' => 'Ovaj dokument je zaključao [username]. Samo ovlašteni korisnici mogu otključati ovaj dokument.', +'lock_status' => 'Status', +'login' => 'Prijava', +'login_disabled_text' => 'Vaš korisnički račun je onemogućen, vjerojatno zbog previše neispravnih prijava.', +'login_disabled_title' => 'Korisnički račun je onemogućen', +'login_error_text' => 'Greška kod prijave. Neispravni ID korisnika ili lozinka.', +'login_error_title' => 'Greška kod prijave', +'login_not_given' => 'Nije isporučeno korisničko ime', +'login_ok' => 'Uspješna prijava', +'logout' => 'Odjava', +'log_management' => 'Upravljanje datotekama zapisa', +'manager' => 'Upravitelj', +'manager_of_group' => 'Vi ste upravitelj ove grupe', +'mandatory_approvergroups' => 'Obavezne grupe validatora', +'mandatory_approvergroup_no_access' => 'Obavezna grupa validatora \'[group]\' nema dovoljno prava pristupa.', +'mandatory_approvers' => 'Obavezni validatori', +'mandatory_approver_no_access' => 'Obavezni validator \'[user]\' nema dovoljno prava pristupa.', +'mandatory_reviewergroups' => 'Obavezna grupa recezenata', +'mandatory_reviewergroup_no_access' => 'Obavezna grupa recezenata \'[group]\' nema dovoljno prava pristupa.', +'mandatory_reviewers' => 'Obavezni recezenti', +'mandatory_reviewer_no_access' => 'Recezenti \'[user]\' nemaju dovoljno prava pristupa.', +'march' => 'Ožujak', +'max_upload_size' => 'Max. veličina za prijenos', +'may' => 'Svibanj', +'mimetype' => 'Mime type', +'minutes' => 'minute', +'misc' => 'Razno', +'missing_checksum' => 'Nedostaje kontrolna suma', +'missing_filesize' => 'Nedostaje veličina datoteke', +'missing_transition_user_group' => 'Nedostaje korisnik/grupa za promjenu', +'monday' => 'Ponedjeljak', +'monday_abbr' => 'Po', +'monthly' => 'Mjesečno', +'month_view' => 'Pregled po mjesecu', +'move' => 'Premjesti', +'move_clipboard' => 'Premjesti međuspremnik', +'move_document' => 'Premjesti dokument', +'move_folder' => 'Premjesti mapu', +'my_account' => 'Moj korisnički račun', +'my_documents' => 'Moji dokumenti', +'my_transmittals' => '', +'name' => 'Naziv', +'needs_workflow_action' => 'Ovaj dokument zahtjeva vašu pažnju. Molimo provjerite karticu toka rada.', +'never' => 'nikada', +'new' => 'Novo', +'new_attrdef' => 'Dodaj definiciju atributa', +'new_default_keywords' => 'Dodaj ključne riječi', +'new_default_keyword_category' => 'Dodaj kategoriju', +'new_document_category' => 'Dodaj kategoriju', +'new_document_email' => 'Novi dokument', +'new_document_email_body' => 'Novi dokument +Naziv: [name] +Glavna mapa: [folder_path] +Komentar: [comment] +Version comment: [version_comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_document_email_subject' => '[sitename]: [folder_name] - Novi dokument', +'new_file_email' => 'Novi privitak', +'new_file_email_body' => 'Novi privitak dokumenta: [name] +Dokument: [document] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_file_email_subject' => '[sitename]: [document] - Novi privitak', +'new_folder' => 'Nova mapa', +'new_password' => 'Nova lozinka', +'new_subfolder_email' => 'Nova mapa', +'new_subfolder_email_body' => 'Nova mapa +Naziv: [name] +Glavna mapa: [folder_path] +Komentar: [comment] +Korisnik: [username] +Internet poveznica: [url]', +'new_subfolder_email_subject' => '[sitename]: [name] - Nova mapa', +'new_user_image' => 'Nova slika', +'next_state' => 'Slijedeći status', +'nl_NL' => 'Nizozemski', +'no' => 'Ne', +'notify_added_email' => 'Dodani ste na popis obavijesti', +'notify_added_email_body' => 'Dodano na popis obavijesti +Naziv: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'notify_added_email_subject' => '[sitename]: [name] - Dodano na popis obavijesti', +'notify_deleted_email' => 'Uklonjeni ste iz popisa obavijesti', +'notify_deleted_email_body' => 'Ukonjeno iz popisa obavijesti +Naziv: [name] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'notify_deleted_email_subject' => '[sitename]: [name] - Ukonjeno iz popisa obavijesti', +'november' => 'Studeni', +'now' => 'sada', +'no_action' => 'Nema zahtjevane radnje', +'no_approval_needed' => 'Nema odobrenja na čekanju.', +'no_attached_files' => 'Nema priloženih datoteka', +'no_current_version' => 'Koristite na staru verziju ProsperaDMS-a. Najnovija dostupna verzija je[latestversion].', +'no_default_keywords' => 'Nema dostupnih ključnih riječi', +'no_docs_checked_out' => '', +'no_docs_locked' => 'Nema zaključanih dokumenata.', +'no_docs_to_approve' => 'Trenutno nema dokumenata koji zahtjevaju odobrenje.', +'no_docs_to_look_at' => 'Nema dokumenata na koje treba obratiti pozornost.', +'no_docs_to_receipt' => '', +'no_docs_to_review' => 'Trenutno nema dokumenata koji zahtjevaju pregled.', +'no_docs_to_revise' => '', +'no_email_or_login' => 'Moraju biti unešeni korisničko ime i e-mail', +'no_fulltextindex' => 'Nema dostupnog indeksa punog teksta', +'no_groups' => 'Nema grupa', +'no_group_members' => 'Ova grupa nema članova', +'no_linked_files' => 'Nema povezanih datoteka', +'no_previous_versions' => 'Nema pronađenih drugih verzija', +'no_receipt_needed' => '', +'no_review_needed' => 'Nema pregleda na čekanju.', +'no_revision_needed' => '', +'no_revision_planed' => '', +'no_update_cause_locked' => 'Dakle, ne možete ažurirati ovaj dokument. Molim kontaktirajte korisnika koji zaključava.', +'no_user_image' => 'Nema pronađene slike', +'no_version_check' => 'Neuspješna provjera nove verzije ProsperaDMS-a! Uzrok može biti ako je parametar allow_url_fopen u vašoj php konfiguraciji postavljen na 0.', +'no_workflow_available' => '', +'objectcheck' => 'Provjera mapa / dokumenata', +'obsolete' => 'Zastarjelo', +'october' => 'Listopad', +'old' => 'Staro', +'only_jpg_user_images' => 'Kao korisničke slike mogu se koristiti samo .jpg slike', +'order_by_sequence_off' => '', +'original_filename' => 'Izvorni naziv datoteke', +'owner' => 'Vlasnik', +'ownership_changed_email' => 'Promijenjen vlasnik', +'ownership_changed_email_body' => 'Promijenjen vlasnik +Dokument: [name] +Glavna mapa: [folder_path] +Old owner: [old_owner] +New owner: [new_owner] +Korisnik: [username] +Internet poveznica: [url]', +'ownership_changed_email_subject' => '[sitename]: [name] - Promijenjen vlasnik', +'password' => 'Lozinka', +'password_already_used' => 'Lozinka se već koristi', +'password_expiration' => 'Istek lozinke', +'password_expiration_text' => 'Vaša lozinka je istekla. Molimo odaberite novu prije nastavka korištenja ProsperaDMS-a.', +'password_expired' => 'Istekla lozinka', +'password_expires_in_days' => 'Lozinka isteće za %s dana.', +'password_forgotten' => 'Zaboravljena lozinka', +'password_forgotten_email_body' => 'Poštovani korisniče ProsperaDMS-a, + +zaprimili smo zahtjev za promjenu vaše lozinke. + +To se može izvršiti klikom na sljedeću poveznicu: + +###URL_PREFIX###out/out.ChangePassword.php?hash=###HASH### + +Ako i dalje imate problema s prijavom, molimo kontaktirajte Vašeg administratora.', +'password_forgotten_email_subject' => 'Zaboravljena lozinka', +'password_forgotten_send_hash' => 'Upute kako postupiti su poslane na e-mail adresu korisnika', +'password_forgotten_text' => 'Ispunite donji obrazac i slijedite upute iz e-maila koji će vam biti poslan.', +'password_forgotten_title' => 'Lozinka je poslana', +'password_repeat' => 'Ponovi lozinku', +'password_send' => 'Pošalji lozinku', +'password_send_text' => 'Vaša nova lozinka je poslana na navedenu e-mail adresu, ako login i e-mail odgovaraju postojećem korisniku. Ako ne primite e-mail u narednim minutama, tada provjerite da su login i e-mail ispravni te ponovite postupak.', +'password_strength' => 'Jačina lozinke', +'password_strength_insuffient' => 'Nedovoljna jačina lozinke', +'password_wrong' => 'Pogrešna lozinka', +'personal_default_keywords' => 'Osobni popis ključnih riječi', +'pl_PL' => 'Poljski', +'possible_substitutes' => '', +'preview_converters' => '', +'previous_state' => 'Prethodni status', +'previous_versions' => 'Prethodne verzije', +'pt_BR' => 'Portugalski (BR)', +'quota' => 'Kvota', +'quota_exceeded' => 'Vaša kvota na disku je premašena za [bytes].', +'quota_is_disabled' => 'Podrška kvoti je trenutno onemogućena u postavkama. Postavka korisničke kvote neće imati utjecaja dok se ponovno ne omogući.', +'quota_warning' => 'Vaš maksimalni prostor na disku je premašen za [bytes]. Molimo uklonite dokumente ili prethodne verzije.', +'receipt_log' => '', +'receipt_summary' => '', +'recipients' => '', +'refresh' => 'Osvježi', +'rejected' => 'Odbijeno', +'released' => 'Obrađeno', +'removed_approver' => 'je uklonjen iz popisa validatora.', +'removed_file_email' => 'Uklonjeni privitak', +'removed_file_email_body' => 'Uklonjeni privitak +Dokument: [document] +Korisnik: [username] +Internet poveznica: [url]', +'removed_file_email_subject' => '[sitename]: [document] - Uklonjeni privitak', +'removed_recipient' => '', +'removed_reviewer' => 'je uklonjen iz popisa recezenata.', +'removed_revispr' => '', +'removed_workflow_email_body' => 'Uklonjeni tok rada iz ove verzije dokumenta +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta', +'remove_marked_files' => 'Ukloni označene datoteke', +'repaired' => 'popravljeno', +'repairing_objects' => 'Popravljanje dokumenata ili mapa.', +'request_workflow_action_email_body' => 'Poslovni tok je došao u stanje koje zahtijeva Vašu pažnju i aktivnost. +Dokument: [name] +Verzija: [version] +Poslovni tok: [workflow] +Trenutni status: [current_state] +Glavna mapa: [folder_path] +Korisnik: [username] +URL poveznica: [url]', +'request_workflow_action_email_subject' => 'Zahtijeva se aktivnost po poslovnom toku', +'reset_checkout' => '', +'results_page' => 'Stranica rezultata', +'return_from_subworkflow' => 'Povratak iz pod-toka rada', +'return_from_subworkflow_email_body' => 'Povratak iz toka rada +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Pod-tok rada: [subworkflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'return_from_subworkflow_email_subject' => '[sitename]: [name] - Povratak iz pod-toka rada', +'reverse_links' => 'Dokumenti, koji imaju poveznicu na trenutni dokument', +'reviewers' => 'Recezenti', +'reviewer_already_assigned' => 'je već dodijeljen kao recezent', +'reviewer_already_removed' => 'je već uklonjen iz postupka pregleda ili je već podnijet pregled.', +'review_deletion_email' => 'Izbrisan zahtjev za pregled', +'review_deletion_email_body' => '', +'review_deletion_email_subject' => '', +'review_file' => '', +'review_group' => 'Grupa pregleda', +'review_log' => 'Log pregleda', +'review_request_email' => 'Zahtjev za pregled', +'review_request_email_body' => '', +'review_request_email_subject' => '', +'review_status' => 'Status pregleda:', +'review_submit_email' => 'Predani pregled', +'review_submit_email_body' => 'Postavljen pregled +Dokument: [name] +Verzija: [version] +Status: [status] +Komentar: [comment] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'review_submit_email_subject' => '[sitename]: [name] - Predan pregled', +'review_summary' => 'Sažetak pregleda', +'review_update_failed' => 'Greška kod izmjene statusa pregleda. Izmjena nije uspjela.', +'revise_document' => '', +'revise_document_on' => '', +'revision_date' => '', +'revision_log' => '', +'revisors' => '', +'revisor_already_assigned' => '', +'revisor_already_removed' => '', +'rewind_workflow' => 'Vrati tok rada na početak', +'rewind_workflow_email_body' => 'Tok rada je vraćen +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'rewind_workflow_email_subject' => '[sitename]: [name] - Tok rada je vraćen na početak', +'rewind_workflow_warning' => 'Ako vratite tok radan u njegovo početno, prijašnji zapisi o tijeku rada za ovaj dokument bit će izbrisani i ne mogu se vratiti.', +'rm_attrdef' => 'Uklonite definiciju atributa', +'rm_default_keyword_category' => 'Uklonite kategoriju', +'rm_document' => 'Ukloni dokument', +'rm_document_category' => 'Uklonite kategoriju', +'rm_file' => 'Uklonite datoteku', +'rm_folder' => 'Uklonite mapu', +'rm_from_clipboard' => 'Uklonite iz međuspremnika', +'rm_group' => 'Uklonite ovu grupu', +'rm_transmittal' => '', +'rm_transmittalitem' => '', +'rm_user' => 'Uklonite ovog korisnika', +'rm_version' => 'Uklonite verziju', +'rm_workflow' => 'Uklonite tok rada', +'rm_workflow_action' => 'Uklonite radnju toka rada', +'rm_workflow_state' => 'Uklonite status toka rada', +'rm_workflow_warning' => 'Želite ukloniti tok rada iz dokumenta. To ne možete vratiti.', +'role' => 'Uloga', +'role_admin' => 'Administrator', +'role_guest' => 'Gost', +'role_user' => 'Korisnik', +'ro_RO' => 'Rumunjski', +'run_subworkflow' => 'Pokreni poslovni pod-tok', +'run_subworkflow_email_body' => 'Pod-tok rada je pokrenut +Dokument: [name] +Verzija: [version] +Tok rada: [workflow] +Pod-tok rada: [subworkflow] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'run_subworkflow_email_subject' => '[sitename]: [name] - Pod-tok rada je pokrenut', +'ru_RU' => 'Ruski', +'saturday' => 'Subota', +'saturday_abbr' => 'Su', +'save' => 'Spremi', +'search' => 'Traži', +'search_fulltext' => 'Traži u cijelom tekstu', +'search_in' => 'Traži u', +'search_mode_and' => 'sve riječi', +'search_mode_documents' => 'Samo dokumenti', +'search_mode_folders' => 'Samo mape', +'search_mode_or' => 'najmanje jedna riječ', +'search_no_results' => 'Nema dokumenata koji odgovaraju vašoj pretrazi', +'search_query' => 'Traži', +'search_report' => 'Pronađeno [doccount] dokumenata i [foldercount] mapa za [searchtime] sek.', +'search_report_fulltext' => 'Pronađeno [doccount] dokumenata', +'search_resultmode' => 'Prikaz rezultata pretraživanja', +'search_resultmode_both' => 'Dokumenti i mape', +'search_results' => 'Rezultati pretrage', +'search_results_access_filtered' => 'Rezultati pretrage mogu sadržavati sadržaj kojem je odbijen pristup.', +'search_time' => 'Proteklo vrijeme: [time] sek.', +'seconds' => 'sekunde', +'selection' => 'Odabir', +'select_category' => 'Kliknite za odabir kategorije', +'select_groups' => 'Kliknite za odabir grupa', +'select_grp_approvers' => 'Kliknite za odabir validatora grupe', +'select_grp_notification' => '', +'select_grp_recipients' => '', +'select_grp_reviewers' => 'Kliknite za odabir recezenta grupe', +'select_grp_revisors' => '', +'select_ind_approvers' => 'Kliknite za odabir pojedinačnog validatora', +'select_ind_notification' => '', +'select_ind_recipients' => '', +'select_ind_reviewers' => 'Kliknite za odabir pojedinačnog recezenta', +'select_ind_revisors' => '', +'select_one' => 'Odaberite jednog', +'select_users' => 'Kliknite za odabir korisnika', +'select_workflow' => 'Odaberite tok rada', +'september' => 'Rujan', +'sequence' => 'Redoslijed', +'seq_after' => 'Nakon "[prevname]"', +'seq_end' => 'Na kraju', +'seq_keep' => 'Zadrži poziciju', +'seq_start' => 'Na početak', +'settings' => 'Postavke', +'settings_activate_module' => 'Aktiviraj modul', +'settings_activate_php_extension' => 'Aktiviraj PHP ekstenziju', +'settings_adminIP' => 'Admin IP', +'settings_adminIP_desc' => 'Ako se postavljeni administrator može prijaviti samo s određenom IP adresom, ostavite prazno da izbjegnete kontrolu. NAPOMENA: radi samo s lokalnom autentifikacijom (ne LDAP)', +'settings_Advanced' => 'Napredno', +'settings_apache_mod_rewrite' => 'Apache - Modul prepisa', +'settings_Authentication' => 'Postavke autentifikacije', +'settings_autoLoginUser' => '', +'settings_autoLoginUser_desc' => '', +'settings_backupDir' => '', +'settings_backupDir_desc' => '', +'settings_cacheDir' => 'Mapa predmemorije', +'settings_cacheDir_desc' => 'Gdje se spremaju slike pregleda (najbolje da odaberete mapu koja nije dostupna kroz vaš web-server)', +'settings_Calendar' => 'Postavke kalendara', +'settings_calendarDefaultView' => 'Zadani prikaz kalendara', +'settings_calendarDefaultView_desc' => 'Zadani prikaz kalendara', +'settings_cannot_disable' => 'Datoteka ENABLE_INSTALL_TOOL se ne može izbrisati', +'settings_checkOutDir' => '', +'settings_checkOutDir_desc' => '', +'settings_cmdTimeout' => '', +'settings_cmdTimeout_desc' => '', +'settings_contentDir' => 'Mapa sadržaja', +'settings_contentDir_desc' => 'Gdje se spremaju učitane datoteke (najbolje da odaberete mapu koja nije dostupna kroz vaš web-server)', +'settings_contentOffsetDir' => 'Offset mapa sadržaja', +'settings_contentOffsetDir_desc' => 'Za zaobilaželje ograničenja unutar datotečnog sustava, nova struktura mapa je a new directory structure je zasnovana i nalazi se unutar mape sadržaja. Ovo zahtjeva baznu mapu od koje se kreće. Uobičajeno da se ostavlja zadana postavka, 1048576, ali može biti bilo koji niz koji se već ne nalazi unutar mape sadržaja', +'settings_cookieLifetime' => 'Životni vijek kolačića', +'settings_cookieLifetime_desc' => 'Životni vijek kolačića u sekundama. Ako je postavljeno na 0, kolačić će biti uklonjen kada se zatvori pretraživač.', +'settings_coreDir' => 'Mapa jezgre Core ProsperaDMS-a', +'settings_coreDir_desc' => 'Putanja do ProsperaDMS_Core (opcija). Ovo ostavite prazno ako imate instaliran ProsperaDMS_Core na mjestu gdje se može pronaći s PHP-om, npr. Extra PHP Include-Path', +'settings_createCheckOutDir' => '', +'settings_createCheckOutDir_desc' => '', +'settings_createdatabase' => 'Izradi tablice baze podataka', +'settings_createdirectory' => 'Izradi mapu', +'settings_currentvalue' => 'Trenutna vrijednost', +'settings_Database' => 'Postavke baze podataka', +'settings_dbDatabase' => 'Baza podataka', +'settings_dbDatabase_desc' => 'Naziv vaše baze podataka unijet tijekom postupka instalacije. Ne uređujte ovo polje dok se ne pojavi potreba, ako npr. premjestite bazu podataka.', +'settings_dbDriver' => 'Vrsta baze podataka', +'settings_dbDriver_desc' => 'Vrsta korištene baze podataka unijeta tijekom postupka instalacije. Ne uređujte ovo polje osim ako morate premjestiti u drugu vrstu baze podataka npr. zbog promjene Hosta. Vrsta DB-Drivera koju koristi adodb (vidi adodb-readme)', +'settings_dbHostname' => 'Naziv servera', +'settings_dbHostname_desc' => 'Hostname za vašu bazu podataka unijeto tijekom postupka instalacije. Ne uređujte ovo polje bez prijeke potrebe, npr. prijenos baze podataka na novi Host.', +'settings_dbPass' => 'Lozinka', +'settings_dbPass_desc' => 'Lozinka za pristup vašoj bazi podataka unijeta tijekom postupka instalacije.', +'settings_dbUser' => 'Korisničko ime', +'settings_dbUser_desc' => 'Korisničko ime za pristup vašoj bazi podataka unijeto tijekom postupka instalacije. Ne uređujte ovo polje bez prijeke potrebe, npr. prijenos baze podataka na novi Host.', +'settings_dbVersion' => 'Shema baze podataka je prestara', +'settings_delete_install_folder' => 'Da bi koristili ProsperaDMS, morate izbrisati datoteku ENABLE_INSTALL_TOOL u mapi konfiguracije', +'settings_disableSelfEdit' => 'Onemogućite samostalno uređivanje', +'settings_disableSelfEdit_desc' => 'Ako je označeno, korisnik ne može uređivati svoj vlastiti profil', +'settings_disable_install' => 'Ako je moguće, izbrišite datoteku ENABLE_INSTALL_TOOL', +'settings_Display' => 'Postavke prikaza', +'settings_dropFolderDir' => 'Mapa za zonu ispuštanja', +'settings_dropFolderDir_desc' => 'Ova mapa može se koristiti za ispuštanje datoteka na datotečni sustav poslužitelja i uvoz istih od tamo umjesto učitavanja preko internet preglednika. Mapa mora sadržavati pod mapu za svakog korisnika koji ima dozvolu za uvoz datoteka na ovaj način.', +'settings_Edition' => 'Postavke izdanja', +'settings_enableAcknowledgeWorkflow' => '', +'settings_enableAcknowledgeWorkflow_desc' => '', +'settings_enableAdminRevApp' => 'Dopusti pregled/ovjeru za administratore', +'settings_enableAdminRevApp_desc' => 'Omogući ovo ako želiš da administratori budu navedeni kao recezenti/validatori i za promjenu toka rada.', +'settings_enableCalendar' => 'Omogući Kalendar', +'settings_enableCalendar_desc' => 'Omogući/onemogući kalendar', +'settings_enableClipboard' => 'Omogući međuspremnik', +'settings_enableClipboard_desc' => 'Omogući/onemogući međuspremnik na \'Vidi mapu\' stranici', +'settings_enableConverting' => 'Omogući pretvaranje', +'settings_enableConverting_desc' => 'Omogući/onemogući pretvaranje datoteka', +'settings_enableDropUpload' => 'Omogući brzo učitavanje', +'settings_enableDropUpload_desc' => 'Omogući/onemogući prostor za ubacivanje na \'Vidi mapu\' stranici za učitavanje datoteka "Povuci i ispusti" postupkom.', +'settings_enableDuplicateDocNames' => 'Omogući dvostruke nazive dokumenata', +'settings_enableDuplicateDocNames_desc' => 'Omogućuje da u mapi imate dvostruke nazive dokumenata.', +'settings_enableEmail' => 'Omogući E-mail', +'settings_enableEmail_desc' => 'Omogući/onemogući automatsku email obavijest', +'settings_enableFolderTree' => 'Omogući stablo mape', +'settings_enableFolderTree_desc' => 'Omogući/onemogući stablo mape na \'Vidi mapu\' stranici', +'settings_enableFullSearch' => 'Omogući pretraživanje cijelog teksta', +'settings_enableFullSearch_desc' => 'Omogući pretraživanje cijelog teksta', +'settings_enableGuestLogin' => 'Omogući Gost prijavu', +'settings_enableGuestLogin_desc' => 'Ako želite da se bilo tko koristi Gost prijavu, označite ovu opciju. Napomena: gost prijava smije se koristiti samo u pouzdanom okruženju.', +'settings_enableLanguageSelector' => 'Omogući Izbornik jezika', +'settings_enableLanguageSelector_desc' => 'Prikaži izbornik za jezik korisničkog sučelja nakon prijave.', +'settings_enableLargeFileUpload' => 'Omogući učitavanje velikih datoteka', +'settings_enableLargeFileUpload_desc' => 'Ako je postavljeno, učitavanje datoteke je također dostupno kroz Java aplet naziva "jumploader" bez postavljenog ograničenja veličine datoteke od strane pretraživača. To također omogućuje učitavanje nekoliko datoteka u jednom koraku. Uključivanjem ovoga isključit će se samo http kolačići.', +'settings_enableMenuTasks' => '', +'settings_enableMenuTasks_desc' => '', +'settings_enableNotificationAppRev' => 'Omogući bilježenje recezenta/validatora', +'settings_enableNotificationAppRev_desc' => 'Označi za slanje obavijesti recezentu/validatoru kada je dodana nova verzija dokumenta', +'settings_enableNotificationWorkflow' => 'Omogući obavijesti o zadanom toku rada', +'settings_enableNotificationWorkflow_desc' => 'Ukoliko je ova opcija uključena, korisnici i grupe koji trebaju odraditi neku aktivnost prema definiciji poslovnog toka u slijedećoj fazi toka, će biti obaviješteni. Čak i u slučaju kad nisu dodali opciju obavještavanja za dokument.', +'settings_enableOwnerNotification' => 'Omogući obavješćivanje vlasnika', +'settings_enableOwnerNotification_desc' => 'Označi za dodavanje obavješćivanja vlasnika kada je dodan dokument.', +'settings_enableOwnerRevApp' => 'Omogući vlasnika za recezenta/validatora', +'settings_enableOwnerRevApp_desc' => 'Omogućite ovo ako želite da vlasnik dokumenta bude naveden kao recezent/validator i za promjene tokova rada.', +'settings_enablePasswordForgotten' => 'Omogući zaboravljanje lozinke', +'settings_enablePasswordForgotten_desc' => 'Ako želite omogućiti korisniku da postavi novu lozinku i pošalje ju e-mailom, označite ovu opciju.', +'settings_enableRecursiveCount' => 'Omogući rekurzivno brojanje dokumenta/mape', +'settings_enableRecursiveCount_desc' => 'Ako je uključeno, broj dokumenata i mapa u pregledu mape će biti određen brojanjem svih objekata rekurzivnom obradom mapa i brojanjem tih dokumenata i mapa kojima je korisniku omogućen pristup.', +'settings_enableRevisionWorkflow' => '', +'settings_enableRevisionWorkflow_desc' => '', +'settings_enableSelfRevApp' => 'Omogući pregled/ovjeru za prijavljenog korisnika', +'settings_enableSelfRevApp_desc' => 'Omogući ovo ako želite da trenutno prijavljeni korisnik bude naveden kao recezent/validator i za promjenu toka rada.', +'settings_enableThemeSelector' => 'Odabir teme', +'settings_enableThemeSelector_desc' => 'Uključuje/isključuje izbornik tema na stranici prijave.', +'settings_enableUserImage' => 'Omogući sliku korisnika', +'settings_enableUserImage_desc' => 'Omogući slike korisnika', +'settings_enableUsersView' => 'Omogući pregled korisnika', +'settings_enableUsersView_desc' => 'Omogući/onemogući pregled grupe i korisnika za sve korisnike.', +'settings_enableVersionDeletion' => 'Omogući brisanje prethodnih verzija', +'settings_enableVersionDeletion_desc' => 'Omogući/onemogući brisanje prethodnih verzija dokumenta redovnim korisnicima. Administrator uvijek može izbrisati stare verzije.', +'settings_enableVersionModification' => 'Omogući mijenjanje verzija', +'settings_enableVersionModification_desc' => 'Omogući/onemogući mijenjanje verzija dokumenta redovnim korisnicima nakon učitavanja verzije. Administrator uvijek može promijeniti verziju nakon učitavanja.', +'settings_encryptionKey' => 'Ključ za šifriranje', +'settings_encryptionKey_desc' => 'Ovaj string se koristi za izradu jedinstvenog identifikatora koji će biti dodan kao skriveno polje u formularu kako bi se spriječili CSRF napadi.', +'settings_error' => 'Greška', +'settings_expandFolderTree' => 'Proširi stablo mape', +'settings_expandFolderTree_desc' => 'Proširi stablo mape', +'settings_expandFolderTree_val0' => 'započni sa skrivenim stablom', +'settings_expandFolderTree_val1' => 'započni sa prikazanim stablom i prvom proširenom razinom', +'settings_expandFolderTree_val2' => 'započni sa potpuno proširenim vidljivom stablom', +'settings_Extensions' => 'Ekstenzije', +'settings_extraPath' => 'Extra PHP sadrži putanju', +'settings_extraPath_desc' => 'Putanja do dodatnog softvera. To je mapa koja sadrži npr. adodb mapu ili dodatne Pear pakete', +'settings_firstDayOfWeek' => 'Prvi dan u tjednu', +'settings_firstDayOfWeek_desc' => 'Prvi dan u tjednu', +'settings_footNote' => 'Fusnota', +'settings_footNote_desc' => 'Poruka koja se prikazuje na dnu svake stranice', +'settings_guestID' => 'ID gosta', +'settings_guestID_desc' => 'ID gost korisnika koja se koristi kada je prijavljen kao gost (uglavnom se ne treba mijenjati)', +'settings_httpRoot' => 'Http korijen', +'settings_httpRoot_desc' => 'U URL-u, putanja na što se odnosi, nakon domene. Ne sadrži http:// prefiks ili naziv web hosta. Npr. ako je puni URL http://www.example.com/seeddms/, postavi \'/seeddms/\'. Ako je URL http://www.example.com/, postavi \'/\'', +'settings_initialDocumentStatus' => '', +'settings_initialDocumentStatus_desc' => '', +'settings_initialDocumentStatus_draft' => '', +'settings_initialDocumentStatus_released' => '', +'settings_installADOdb' => 'Instaliraj ADOdb', +'settings_install_disabled' => 'Datoteka ENABLE_INSTALL_TOOL je izbrisana. Sada se možete prijaviti u ProsperaDMS i nastaviti konfiguraciju.', +'settings_install_pear_package_log' => 'Instaliraj Pear paket \'Log\'', +'settings_install_pear_package_webdav' => 'Instaliraj Pear paket \'HTTP_WebDAV_Server\', ako imate namjeru koristiti webdav sučelje', +'settings_install_success' => 'Instalacija je uspješno završena.', +'settings_install_welcome_text' => '

Prije nego počnete instalirati ProsperaDMS uvjerite se da ste izradili datoteku \'ENABLE_INSTALL_TOOL\' u vašoj mapi konfiguracije, jer u suprotnom instalacija neće raditi. Na Unix sustavu to se može lako učiniti s \'touch conf/ENABLE_INSTALL_TOOL\'. Nakon završteka instalacije izbrišite datoteku.

ProsperaDMS ima jako male zahtjeve. Trebat ćete mysql bazu podataka ili sqlite podršku i web server s omogućenim php-om. Pear paket Log također treba biti instaliran. Za lucene potpuno pretraživanje teksta, također će vam trebati Zend framework instaliran na disku gdje ga se može pronaći php-om. Za WebDAV server tađer ćete trebati HTTP_WebDAV_Server. Putanja do njega se može kasnije postaviti tijekom instalacije.

Ako želite izraditi bazu podataka prije nego započnete instalaciju, tada je ručno napravite s vama omiljenim alatom, po želji izradite korisnika baze podataka s pristupom bazi podataka i uvezite jedno od odlagališta baza podataka u mapu konfiguracije. Naravno to za vas može napraviti instalacijska skripta, ali će trebati pristup bazi podataka s pravima za izradu baza podataka.

', +'settings_install_welcome_title' => 'Dobrodošli u instalaciju ProsperaDMS-a', +'settings_install_zendframework' => 'Instalirajte Zend Framework, ako namjeravate koristiti pogon za pretraživanje cijelog teksta', +'settings_language' => 'Zadani jezik', +'settings_language_desc' => 'Zadani jezik (jezik podmapa u mapi "jezici")', +'settings_libraryFolder' => '', +'settings_libraryFolder_desc' => '', +'settings_logFileEnable' => 'Omogući log datoteku', +'settings_logFileEnable_desc' => 'Omogući/onemogući log datoteku', +'settings_logFileRotation' => 'Log File Rotation', +'settings_logFileRotation_desc' => 'The log file rotation', +'settings_loginFailure' => 'Neuspješna prijava', +'settings_loginFailure_desc' => 'Onemogući korisnički račun nakon n neuspješnih prijava.', +'settings_luceneClassDir' => 'Lucene ProsperaDMS mapa', +'settings_luceneClassDir_desc' => 'Putanja do ProsperaDMS_Lucene (opcija). Ostavite ovo prazno ako ste instalirali ProsperaDMS_Lucene na mjestu gdje se može pronaći PHP-om, npr. Extra PHP Include-Path', +'settings_luceneDir' => 'Mapa za indeksiranje cijelog teksta', +'settings_luceneDir_desc' => 'Putanja to Lucene indeksa', +'settings_maxDirID' => 'Max Directory ID', +'settings_maxDirID_desc' => 'Maksimalni broj podmapa po nadređenoj mapi. Zadano: 32700.', +'settings_maxExecutionTime' => 'Max. vrijeme izvršenja (s)', +'settings_maxExecutionTime_desc' => 'Ovo postavlja maksimalno vrijeme u sekundama u kojem je skripti dopušteno da se pokrene prije nego se prekine rasčlanjivanjem', +'settings_maxRecursiveCount' => 'Max. broj rekurzivnog dokumenta/mape', +'settings_maxRecursiveCount_desc' => 'To je maksimalni broj dokumenata ili mapa koji će biti označen pristupnim pravima, pri rekurzivnom brojanju objekata. Ako se taj broj premaši, broj dokumenata i mapa u pregledu mape će biti procjenjen.', +'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin', +'settings_notfound' => 'Nije pronađeno', +'settings_Notification' => 'Postavke bilježenja', +'settings_notwritable' => 'Konfiguracija se ne može pohraniti jer datoteka konfiguracije nema mogućnost upisivanja.', +'settings_no_content_dir' => 'Mapa sadržaja', +'settings_overrideMimeType' => '', +'settings_overrideMimeType_desc' => '', +'settings_partitionSize' => 'Veličina djelomične datoteke', +'settings_partitionSize_desc' => 'Veličine djelomičnih datoteka u bajtovima, učitane s jumploader-om. Ne postavljajte vrijednot veću od max. veličine učitavanja koju je postavio server.', +'settings_passwordExpiration' => 'Istek lozinke', +'settings_passwordExpiration_desc' => 'Broj dana nakon kojeg ističe lozinka i mora biti ponovo postavljena. 0 isključuje istek lozinke.', +'settings_passwordHistory' => 'Povijest lozinke', +'settings_passwordHistory_desc' => 'Broj lozinki koji korisnik mora iskoristiti prije nego se lozinka može ponovo koristiti. 0 isključuje povijest lozinke.', +'settings_passwordStrength' => 'Min. kompleksnost lozinke', +'settings_passwordStrengthAlgorithm' => 'Algoritam za kompleksnost lozinke', +'settings_passwordStrengthAlgorithm_desc' => 'Algoritam koji se koristi za izračun kompleksnosti lozinke. Algoritam \'jednostavno\' samo provjerava da li ukupno sadrži najmanje 8 znakova, mala slova, velika slova, brojeve i specijalne znakove. Ako su ti uvjeti zadovoljeni, povratni rezultat je 100, inače 0', +'settings_passwordStrengthAlgorithm_valadvanced' => 'napredno', +'settings_passwordStrengthAlgorithm_valsimple' => 'jednostavno', +'settings_passwordStrength_desc' => 'Minimalna jačina lozinke je cjelobrojna vrijednost od 1 do 100. Postavljanje na 0 će isključiti provjeru minimalne jačine lozinke.', +'settings_pear_log' => 'Pear paket : Log', +'settings_pear_webdav' => 'Pear paket : HTTP_WebDAV_Server', +'settings_perms' => 'Dozvole', +'settings_php_dbDriver' => 'PHP ekstenzija : php_\'see current value\'', +'settings_php_gd2' => 'PHP ekstenzija : php_gd2', +'settings_php_mbstring' => 'PHP ekstenzija : php_mbstring', +'settings_php_version' => 'PHP verzija', +'settings_presetExpirationDate' => 'Postavljeni datum isteka', +'settings_presetExpirationDate_desc' => 'Svi novo učitani dokumenti će datum isteka imati postavljen na ovu vrijednost. Unešeni datum se može odrediti razumljivom PHP strtotime() funkcijom, npr. +5 tjedana.', +'settings_previewWidthDetail' => 'Širina pretpregleda slika (detalj)', +'settings_previewWidthDetail_desc' => 'Širina pretpregleda slike prikazanog na stranici detalja', +'settings_previewWidthList' => 'Širina pretpregleda slika (popis)', +'settings_previewWidthList_desc' => 'Širina pretpregleda slika prikazanih u popisima', +'settings_printDisclaimer' => 'Ispiši odricanje od odgovornosti', +'settings_printDisclaimer_desc' => 'Ako je omogućeno, poruka odricanja od odgovornosti će se ispisati na dnu svake stranice', +'settings_quota' => 'Korisnička kvota', +'settings_quota_desc' => 'Maksimalni broj bajtova na disku koji korisnik može koristiti. Postavite na 0 za neograničeni prostor na disku. Ova vrijednost može biti postavljena svakom korisniku u njegovom profilu.', +'settings_restricted' => 'Ograničeni pristup', +'settings_restricted_desc' => 'Omogući prijavu korisnicima samo ako imaju pristup u lokalnu bazu podataka (bez obzira na uspješnu autentifikaciju s LDAP-om)', +'settings_rootDir' => 'Root mapa', +'settings_rootDir_desc' => 'Putanja do lokacije ProsperaDMS-a', +'settings_rootFolderID' => 'ID Root mape', +'settings_rootFolderID_desc' => 'ID root mape (većinom ne treba mijenjati)', +'settings_SaveError' => 'Greška pri spremanju datoteke konfiguracije', +'settings_Server' => 'Postavke servera', +'settings_showMissingTranslations' => 'Prikaži prijevode koji nedostaju', +'settings_showMissingTranslations_desc' => 'Navedi sve prijevode koji nedostaju na stranici na dnu stranice. Prijavljeni korisnik će moći podnijeti prijedlog za prijevode koji nedostaju koji će biti pohranjen u csv datoteku. Ne uključujte ovu funkciju ako ste u proizvodnoj okolini!', +'settings_Site' => 'Stranica', +'settings_siteDefaultPage' => 'Zadana stranica', +'settings_siteDefaultPage_desc' => 'Zadana stranica kod prijave. Ako je prazno, zadano je out/out.ViewFolder.php', +'settings_siteName' => 'Naziv stranice', +'settings_siteName_desc' => 'Naziv stranice koji se koristi u naslovima stranice. Zadano: ProsperaDMS', +'settings_SMTP' => 'Postavke SMTP servera', +'settings_smtpPassword' => 'Lozinka za pristup SMTP serveru', +'settings_smtpPassword_desc' => 'Lozinka za pristup SMTP serveru', +'settings_smtpPort' => 'Port SMTP servera', +'settings_smtpPort_desc' => 'Port SMTP servera, zadano 25', +'settings_smtpSendFrom' => 'Pošalji od', +'settings_smtpSendFrom_desc' => 'Pošaji od', +'settings_smtpServer' => 'Hostname SMTP servera', +'settings_smtpServer_desc' => 'Hostname SMTP servera', +'settings_smtpUser' => 'Korisnik SMTP servera', +'settings_smtpUser_desc' => 'Korisnik SMTP servera', +'settings_sortFoldersDefault' => 'Zadani način sortiranja', +'settings_sortFoldersDefault_desc' => 'Ovo postavlja načine sortiranja za mape i dokumente u pregledu mape.', +'settings_sortFoldersDefault_val_name' => 'po imenu', +'settings_sortFoldersDefault_val_sequence' => 'po sekvenci', +'settings_sortFoldersDefault_val_unsorted' => 'nesortirano', +'settings_sortUsersInList' => 'Sortiraj korisnike u popisu', +'settings_sortUsersInList_desc' => 'Postavi ako su korisnici u izbornicima odabira poredani po prijavi ili po njihovom punom imenu', +'settings_sortUsersInList_val_fullname' => 'Sortiraj po punom imenu', +'settings_sortUsersInList_val_login' => 'Sortiraj po prijavi', +'settings_stagingDir' => 'Mapa za djelomična učitavanja', +'settings_stagingDir_desc' => 'Mapa gdje jumploader postavlja dijelove učitane datoteke prije nego je ponovno sastavljena.', +'settings_start_install' => 'Započni instalaciju', +'settings_stopWordsFile' => 'Putanja za datoteku riječi koje označavaju kraj (stop)', +'settings_stopWordsFile_desc' => 'Ako je omogućeno pretraživanje cijelog teksta, ova datoteka će sadržavati riječi koje označavaju kraj a koje nisu indeksirane', +'settings_strictFormCheck' => 'Provjera striktnog obrasca', +'settings_strictFormCheck_desc' => 'Provjeravanje striktnog obrasca. Ako je postavljeno na "true", tada će svim poljima u obrascu biti provjerena vrijednost. Ako je postavljeno na "false", tada (uglavnom) će polja komentara i ključnih riječi postati izborna. Komentari se uvijek zahtjevaju kada se podnose pregledi ili obilaženje statusa dokumenta', +'settings_suggestionvalue' => 'Predložena vrijednost', +'settings_System' => 'Sustav', +'settings_theme' => 'Zadana tema', +'settings_theme_desc' => 'Zadani stil (naziv podmape u mapi "stilovi")', +'settings_titleDisplayHack' => 'Prikaz razdvojenog naslova', +'settings_titleDisplayHack_desc' => 'Zaobilazno rješenje za naslove stranica definirane u više od 2 linije.', +'settings_undelUserIds' => 'ID-i korisnika koji se ne mogu brisati', +'settings_undelUserIds_desc' => 'Popis ID-a korisnika odvojenih zarezom, koji se ne mogu brisati.', +'settings_updateDatabase' => 'Pokreni shemu ažuriranja skripti na bazi podataka', +'settings_updateNotifyTime' => 'Ažuriraj vrijeme obavijesti', +'settings_updateNotifyTime_desc' => 'Korisnici se obavještavaju o promjenama dokumenta koje su se dogodile unutar zadnjih \'Update Notify Time\' sekundi', +'settings_upgrade_php' => 'Ažuriraj PHP najmanje na verziju 5.2.0', +'settings_versioningFileName' => 'Naziv datoteke verzije dokumenta', +'settings_versioningFileName_desc' => 'Naziv datoteke s informacijom o verziji kreirane alatom za stvaranje sigurnosne kopije', +'settings_versiontolow' => 'Na nižu verziju', +'settings_viewOnlineFileTypes' => 'Vidi online vrste datoteka', +'settings_viewOnlineFileTypes_desc' => 'Datoteke s jednim od sljedećih završetaka mogu se pregledati online (KORISTITE SAMO MALA SLOVA)', +'settings_workflowMode' => 'Način rada toka rada', +'settings_workflowMode_desc' => 'Napredni tok rada vam omogućuje da odredite vaše vlastito izdanje toka rada za verzije dokumenta.', +'settings_workflowMode_valadvanced' => 'napredno', +'settings_workflowMode_valtraditional' => 'tradicionalno', +'settings_workflowMode_valtraditional_only_approval' => 'uobičajeno (bez revizije)', +'settings_zendframework' => 'Zend okruženje', +'set_expiry' => 'Postavi istek', +'set_owner' => 'Postavi vlasnika', +'set_owner_error' => 'Greška pri postavljanju vlasnika', +'set_password' => 'Postavi lozinku', +'set_workflow' => 'Postavi tok rada', +'signed_in_as' => 'Prijavljen kao', +'sign_in' => 'Prijava u sustav', +'sign_out' => 'Odjava', +'sign_out_user' => 'Odjavi korisnika', +'sk_SK' => 'Slovački', +'space_used_on_data_folder' => 'Prostor iskorišten na podatkovnoj mapi', +'splash_added_to_clipboard' => 'Dodano u međuspremnik', +'splash_add_attribute' => 'Dodan novi atribut', +'splash_add_group' => 'Dodana nova grupa', +'splash_add_group_member' => 'Dodan novi član grupe', +'splash_add_user' => 'Dodan novi korisnik', +'splash_cleared_clipboard' => 'Očišćen međuspremnik', +'splash_document_added' => 'Dokument dodan', +'splash_document_checkedout' => '', +'splash_document_edited' => 'Dokument pohranjen', +'splash_document_locked' => 'Dokument zaključan', +'splash_document_unlocked' => 'Dokument otključan', +'splash_edit_attribute' => 'Atribut pohranjen', +'splash_edit_group' => 'Groupa pohranjena', +'splash_edit_user' => 'Korisnik pohranjen', +'splash_folder_edited' => 'Pohrani izmjene mape', +'splash_invalid_folder_id' => 'Nevažeći ID mape', +'splash_invalid_searchterm' => 'Nevažeći traženi pojam', +'splash_moved_clipboard' => 'Međuspremnik je premješten u trenutnu mapu', +'splash_removed_from_clipboard' => 'Uklonjeno iz međuspremnika', +'splash_rm_attribute' => 'Atribut uklonjen', +'splash_rm_document' => 'Dokument uklonjen', +'splash_rm_folder' => 'Mapa izbrisana', +'splash_rm_group' => 'Grupa uklonjena', +'splash_rm_group_member' => 'Član grupe uklonjen', +'splash_rm_user' => 'Korisnik uklonjen', +'splash_settings_saved' => 'Postavke pohranjene', +'splash_substituted_user' => 'Zamjenski korisnik', +'splash_switched_back_user' => 'Prebačeno nazad na izvornog korisnika', +'splash_toogle_group_manager' => 'Zamjenjen upravitelj grupe', +'state_and_next_state' => 'Status/Slijedeći status', +'statistic' => 'Statistika', +'status' => 'Status', +'status_approval_rejected' => 'Skica odbijena', +'status_approved' => 'Odobreno', +'status_approver_removed' => 'Validator uklonjen iz postupka', +'status_not_approved' => 'Nije odobreno', +'status_not_receipted' => '', +'status_not_reviewed' => 'Nije pregledano', +'status_not_revised' => '', +'status_receipted' => '', +'status_receipt_rejected' => '', +'status_recipient_removed' => '', +'status_reviewed' => 'Pregledano', +'status_reviewer_rejected' => 'Skica odbijena', +'status_reviewer_removed' => 'Recezent uklonjen iz postupka', +'status_revised' => '', +'status_revision_rejected' => '', +'status_revision_sleeping' => '', +'status_revisor_removed' => '', +'status_unknown' => 'Nepoznato', +'storage_size' => 'Veličina pohrane', +'submit_approval' => 'Pošaljite odobrenje', +'submit_login' => 'PRIJAVI SE', +'submit_password' => 'Postavite novu lozinku', +'submit_password_forgotten' => 'Započnite postupak', +'submit_receipt' => '', +'submit_review' => 'Pošaljite ovjeru', +'submit_userinfo' => 'Pošaljite info', +'substitute_to_user' => '', +'substitute_user' => 'Zamjenski korisnik', +'sunday' => 'Nedjelja', +'sunday_abbr' => 'Ne', +'sv_SE' => 'Švedski', +'switched_to' => 'Promjenjeno u', +'takeOverGrpApprover' => '', +'takeOverGrpReviewer' => '', +'takeOverIndApprover' => '', +'takeOverIndReviewer' => '', +'tasks' => '', +'testmail_body' => 'Ova poruka služi samo za testiranje konfiguracije ProsperaDMS-a', +'testmail_subject' => 'Testna poruka', +'theme' => 'Tema', +'thursday' => 'Četvrtak', +'thursday_abbr' => 'Če', +'to' => 'Do', +'toggle_manager' => 'Zamjeni upravitelja', +'to_before_from' => 'Datum završetka ne može biti prije datuma početka', +'transition_triggered_email' => 'Zatražena promjena toka rada', +'transition_triggered_email_body' => 'Zatražena promjena toka rada +Dokument: [name] +Verzija: [version] +Komentar: [comment] +Tok rada: [workflow] +Prethodni status toka: [previous_state] +Trenutni status toka: [current_state] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'transition_triggered_email_subject' => '[sitename]: [name] - Zatražena promjena toka rada', +'transmittal' => '', +'transmittalitem_removed' => '', +'transmittalitem_updated' => '', +'transmittal_comment' => '', +'transmittal_name' => '', +'transmittal_size' => '', +'trigger_workflow' => 'Tok rada', +'tr_TR' => 'Turski', +'tuesday' => 'Utorak', +'tuesday_abbr' => 'Ut', +'type_to_search' => 'Unesi za pretragu', +'uk_UA' => '', +'under_folder' => 'U mapi', +'unknown_attrdef' => 'Nepoznata definicija atributa', +'unknown_command' => 'Naredba nije prepoznata.', +'unknown_document_category' => 'Nepoznata kategorija', +'unknown_group' => 'Nepoznati ID grupe', +'unknown_id' => 'nepoznati ID', +'unknown_keyword_category' => 'Nepoznata kategorija', +'unknown_owner' => 'Nepoznati ID vlasnika', +'unknown_user' => 'Nepoznati ID korisnika', +'unlinked_content' => 'Nepovezani sadržaj', +'unlinked_documents' => 'Nepovezani dokumenti', +'unlinked_folders' => 'Nepovezane mape', +'unlinking_objects' => 'Oslobađanje sadržaja', +'unlock_cause_access_mode_all' => 'I dalje ga možete ažurirati jer imate način pristupa "sve". Zaključavanje će automatski biti ukinuto.', +'unlock_cause_locking_user' => 'I dalje ga možete ažurirati jer ste ga vi zaključali. Zaključavanje će automatski biti ukinuto.', +'unlock_document' => 'Otključaj', +'update' => 'Ažuriraj', +'update_approvers' => 'Ažuriraj popis validatora', +'update_document' => 'Ažuriraj dokument', +'update_fulltext_index' => 'Ažuriraj indeksiranje cijelog teksta', +'update_info' => 'Info ažuriranje', +'update_locked_msg' => 'Ovaj dokument je zaključan.', +'update_recipients' => '', +'update_reviewers' => 'Ažuriraj popis recezenata', +'update_revisors' => '', +'update_transmittalitem' => '', +'uploaded_by' => 'Učitao', +'uploading_failed' => 'Neuspješno učitavanje jedne od vaših datoteka. Molimo provjerite maksimalnu veličinu datoteke za učitavanje.', +'uploading_maxsize' => 'Učitana datoteke premašuje maksimalnu veličinu datoteke za učitavanje.', +'uploading_zerosize' => 'Datoteka koja se učitava je prazna. Učitavanje je otkazano.', +'used_discspace' => 'Iskorišteni prostor na disku', +'user' => 'Korisnik', +'users' => 'Korisnici', +'users_and_groups' => 'Korisnici/Grupe', +'users_done_work' => 'Izvršeni poslovi korisnika', +'user_exists' => 'Korisnik već postoji.', +'user_group_management' => 'Upravljanje korisnicima/grupama', +'user_image' => 'Slika', +'user_info' => 'Korisničke informacije', +'user_list' => 'Popis korisnika', +'user_login' => 'Korisničko ime', +'user_management' => 'Upravljanje korisnicima', +'user_name' => 'Puni naziv', +'use_comment_of_document' => 'Koristi komentar dokumenta', +'use_default_categories' => 'Koristi predefinirane kategorije', +'use_default_keywords' => 'Koristi predefinirane ključne riječi', +'version' => 'Verzija', +'versioning_file_creation' => 'Stvaranje nove verzije datoteke', +'versioning_file_creation_warning' => 'Ovo radnjom možete izraditi datoteku koja sadrži informacije o verzijama cijele DMS mape. Nakon izrade, svaka datoteka će biti pohranjena unutar podatkovne mape.', +'versioning_info' => 'Info o verzijama', +'versiontolow' => 'Na nižu verziju', +'version_deleted_email' => 'Izbrisana verzija', +'version_deleted_email_body' => 'Izbrisana verzija +Dokument: [name] +Verzija: [version] +Glavna mapa: [folder_path] +Korisnik: [username] +Internet poveznica: [url]', +'version_deleted_email_subject' => '[sitename]: [name] - Izbrisana verzija', +'version_info' => 'Informacije o verziji', +'view' => 'Pregled', +'view_online' => 'Online pregled', +'warning' => 'Upozorenje', +'wednesday' => 'Srijeda', +'wednesday_abbr' => 'Sr', +'weeks' => 'tjedni', +'week_view' => 'Pregled po tjednima', +'workflow' => 'Tok rada', +'workflow_actions_management' => 'Upravljanje radnjama toka rada', +'workflow_action_in_use' => 'Ova radnju trenutno koriste tokovi rada.', +'workflow_action_name' => 'Naziv', +'workflow_editor' => 'Urednik toka rada', +'workflow_group_summary' => 'Pregled grupe', +'workflow_initstate' => 'Početni status', +'workflow_in_use' => 'Dokumenti trenutno koriste ovaj tok rada.', +'workflow_management' => 'Upravljanje toka rada', +'workflow_name' => 'Naziv', +'workflow_no_states' => 'Prije dodavanja toka rada najprije morate odrediti statuse toka rada.', +'workflow_states_management' => 'Upravljanje statusima toka rada', +'workflow_state_docstatus' => 'Statusi dokumenta', +'workflow_state_in_use' => 'Tok rada trenutno koristi ovaj status.', +'workflow_state_name' => 'Naziv statusa', +'workflow_summary' => 'Pregled toka rada', +'workflow_user_summary' => 'Pregled korisnika', +'year_view' => 'Pregled po godini', +'yes' => 'Da', +'zh_CN' => 'Kineski (CN)', +'zh_TW' => 'Kineski (TW)', +); +?> diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 2e46a530f..d23a567b3 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -473,6 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Óra', 'hours' => 'óra', +'hr_HR' => '', 'human_readable' => 'Felhasználó által olvasható archívum', 'hu_HU' => 'Magyar', 'id' => 'ID', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index a43386ea3..fbdf5d7c5 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -479,6 +479,7 @@ URL: [url]', 'home_folder' => 'Cartella Utente', 'hourly' => 'Ogni ora', 'hours' => 'ore', +'hr_HR' => '', 'human_readable' => 'Archivio per uso esterno', 'hu_HU' => 'Ungherese', 'id' => 'ID', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index 427ee8958..c1321142f 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (933), daivoc (353) +// Translators: Admin (933), daivoc (356) $text = array( 'accept' => '동의', @@ -478,6 +478,7 @@ URL: [url]', 'home_folder' => '홈 폴더', 'hourly' => '시간별', 'hours' => '시간', +'hr_HR' => '', 'human_readable' => '가독력', 'hu_HU' => '헝가리어', 'id' => 'ID', @@ -915,8 +916,8 @@ URL : [url]', 'settings_cannot_disable' => '파일 ENABLE_INSTALL_TOOL 삭제할 수 없습니다', 'settings_checkOutDir' => '체크아웃 문서 디렉토리', 'settings_checkOutDir_desc' => '이것은 문서가 체크아웃된 문서의 최신 내용이 복사되는 디렉토리입니다. 사용자를 위해 이 디렉토리에 액세스 할 수 있도록 하면 파일을 편집하고 종료시 그것을 다시 확인할 수 있습니다.', -'settings_cmdTimeout' => '', -'settings_cmdTimeout_desc' => '', +'settings_cmdTimeout' => '작업 시간 초과', +'settings_cmdTimeout_desc' => '외부로부터 요청된 명령의 종료시점 까지의 소요시간(예: 전체 텍스트 인덱스 생성시간)', 'settings_contentDir' => '내용 디렉토리', 'settings_contentDir_desc' => '업로드 된 파일의 저장 위치(웹 서버를 통해 액세스 할 수없는 디렉토리를 선택하는 것이 가장 좋습니다)', 'settings_contentOffsetDir' => '내용 오프셋 디렉토리', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 3a3f28351..e51e021e8 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -466,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Elk uur', 'hours' => 'uren', +'hr_HR' => '', 'human_readable' => 'Leesbaar Archief', 'hu_HU' => 'Hongaars', 'id' => 'ID', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 32622981f..66ad1f4ad 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -466,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Co godzinę', 'hours' => 'godzin', +'hr_HR' => '', 'human_readable' => 'Archiwum czytelne dla człowieka', 'hu_HU' => 'Węgierski', 'id' => 'ID', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 9f7b1f42b..0c429e82f 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (880), flaviove (627), lfcristofoli (352) +// Translators: Admin (885), flaviove (627), lfcristofoli (352) $text = array( 'accept' => 'Aceitar', @@ -345,7 +345,7 @@ URL: [url]', 'do_object_setfilesize' => 'Defina o tamanho do arquivo', 'do_object_unlink' => 'Excluir versão do documento', 'draft' => '', -'draft_pending_approval' => '', +'draft_pending_approval' => 'Rascunho - Aprovação pendente', 'draft_pending_review' => 'Draft - pending review', 'drag_icon_here' => 'Arraste ícone de pasta ou documento para aqui!', 'dropfolder_file' => 'Arquivo de pasta suspensa', @@ -472,6 +472,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'De hora em hora', 'hours' => 'horas', +'hr_HR' => '', 'human_readable' => 'Human readable archive', 'hu_HU' => 'Húngaro', 'id' => 'ID', @@ -843,15 +844,15 @@ URL: [url]', 'search_fulltext' => 'Pesquisa em texto completo', 'search_in' => 'Busca em', 'search_mode_and' => 'todas as palavras', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Só Documentos', +'search_mode_folders' => 'Só Pastas', 'search_mode_or' => 'at least one word', 'search_no_results' => 'não há documento que satisfaçam sua busca', 'search_query' => 'Busca por', 'search_report' => 'Encontrados [count] documentos', 'search_report_fulltext' => 'Encontrados [doccount] documentos', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Resultados da Busca', +'search_resultmode_both' => 'Documentos e Pastas', 'search_results' => 'Resultados da busca', 'search_results_access_filtered' => 'Search results may contain content to which access has been denied.', 'search_time' => 'Tempo decorrido: [time] sec.', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 0656513fb..099ead925 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -478,6 +478,7 @@ URL: [url]', 'home_folder' => 'Folder Home', 'hourly' => 'Orare', 'hours' => 'ore', +'hr_HR' => '', 'human_readable' => 'Arhivă lizibilă omului', 'hu_HU' => 'Ungureste', 'id' => 'ID', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 31b4f60ab..53f7a45c7 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -466,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Ежечасно', 'hours' => 'часы', +'hr_HR' => '', 'human_readable' => 'Понятный человеку архив', 'hu_HU' => 'Hungarian', 'id' => 'Идентификатор', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index d8c73afda..16ecf9254 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -397,6 +397,7 @@ $text = array( 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '', 'human_readable' => 'Použivateľský archív', 'hu_HU' => 'Maďarčina', 'id' => 'ID', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 6a09baa18..b216bec74 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -466,6 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'timvis', 'hours' => 'timmar', +'hr_HR' => '', 'human_readable' => 'Arkiv som är läsbart av användare', 'hu_HU' => 'ungerska', 'id' => 'ID', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index a9b8b65d5..4f1a7d63b 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -472,6 +472,7 @@ URL: [url]', 'home_folder' => 'Temel klasör', 'hourly' => 'Saatlik', 'hours' => 'saat', +'hr_HR' => '', 'human_readable' => 'Okunabilir arşiv', 'hu_HU' => 'Macarca', 'id' => 'ID', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 1988d3644..07f922e5e 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -478,6 +478,7 @@ URL: [url]', 'home_folder' => 'Домашній каталог', 'hourly' => 'Щогодини', 'hours' => 'години', +'hr_HR' => '', 'human_readable' => 'Зрозумілий людині архів', 'hu_HU' => 'Hungarian', 'id' => 'Ідентифікатор', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index e2859c6f7..7332cfa9c 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -403,6 +403,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '', 'human_readable' => '可读存档', 'hu_HU' => '匈牙利语', 'id' => '序号', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 909accb13..ca136c888 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -401,6 +401,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => '', 'hours' => '', +'hr_HR' => '', 'human_readable' => '可讀存檔', 'hu_HU' => '匈牙利語', 'id' => '序號', From 65f36e13ccd6929083ff93d8fb78dad77a652a10 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 13:42:51 +0200 Subject: [PATCH 053/107] note about new languages --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 04199ade1..b2e96f739 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,7 +5,7 @@ - MyDocumets: list only documents to approve which have passed review - show preview image in Review/Approval summary - timeout for external commands for creating fulltext index can be set -- add translations for korean +- add translations for korean, croation, ukrainian -------------------------------------------------------------------------------- Changes in version 4.3.19 From d7223bc521c109a23b183de7951cf2d48e98ce6a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 7 Aug 2015 14:29:32 +0200 Subject: [PATCH 054/107] fix link to downloadable file in printProtocol() --- views/bootstrap/class.Bootstrap.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 5dab0962e..7aee2fb8f 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1904,6 +1904,7 @@ mayscript> */ protected function printProtocol($latestContent, $type="") { /* {{{ */ $dms = $this->params['dms']; + $document = $latestContent->getDocument(); ?> @@ -1957,13 +1958,13 @@ mayscript> case "review": if($rec['file']) { echo "
"; - echo " ".getMLText('download').""; + echo "getID()."&reviewlogid=".$rec['reviewLogID']."\" class=\"btn btn-mini\"> ".getMLText('download').""; } break; case "approval": if($rec['file']) { echo "
"; - echo " ".getMLText('download').""; + echo "getID()."&approvelogid=".$rec['approveLogID']."\" class=\"btn btn-mini\"> ".getMLText('download').""; } break; } From 1ad145ffadf89d544702fd39a5a18ecbce656c32 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 8 Aug 2015 09:35:44 +0200 Subject: [PATCH 055/107] run command with timeout --- SeedDMS_Preview/Preview/Previewer.php | 39 ++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index e275d8f1e..fba3359c9 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -50,6 +50,39 @@ class SeedDMS_Preview_Previewer { $this->width = intval($width); } + static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + + $output = ''; + do { + $timeleft = $timeout - time(); + $read = array($pipes[1]); + stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, NULL); + + if (!empty($read)) { + $output .= fread($pipes[1], 8192); + } + } while (!feof($pipes[1]) && $timeleft > 0); + + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + return $output; + } + } /* }}} */ + /** * Retrieve the physical filename of the preview image on disk * @@ -113,7 +146,11 @@ class SeedDMS_Preview_Previewer { break; } if($cmd) { - exec($cmd); + //exec($cmd); + try { + self::execWithTimeout($cmd); + } catch(Exception $e) { + } } return true; } From ce756a59390c38b92da6a99b615f707dbd15feb2 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 8 Aug 2015 09:38:34 +0200 Subject: [PATCH 056/107] new version 1.1.4 --- SeedDMS_Preview/package.xml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/SeedDMS_Preview/package.xml b/SeedDMS_Preview/package.xml index 844178d9c..e4a75a82f 100644 --- a/SeedDMS_Preview/package.xml +++ b/SeedDMS_Preview/package.xml @@ -11,10 +11,10 @@ uwe@steinmann.cx yes - 2015-02-13 - + 2015-08-08 + - 1.1.3 + 1.1.4 1.1.0 @@ -23,7 +23,7 @@ GPL License -preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case. +command for creating the preview will be called with a given timeout @@ -115,5 +115,21 @@ add converters for .tar.gz, .ps, .txt create fixed width image with proportional height + + 2015-02-13 + + + 1.1.3 + 1.1.0 + + + stable + stable + + GPL License + +preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case. + + From 63f075f9693955ec7d45fc9011a38df4a4e07b81 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 06:47:00 +0200 Subject: [PATCH 057/107] export files saved added with approval/review --- utils/xmldump.php | 114 +++++++++++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 46 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index aec6fa01f..0da836569 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -107,6 +107,56 @@ $statistic = array( 'documentcategories'=>0, ); +function dumplog($type, $logs, $indent) { /* {{{ */ + switch($type) { + case 'approval': + $type2 = 'approve'; + break; + default: + $type2 = 'review'; + } + echo $indent." <".$type."s>\n"; + $curid = 0; + foreach($logs as $a) { + if($a[$type2.'ID'] != $curid) { + if($curid != 0) { + echo $indent." \n"; + } + echo $indent." <".$type." id=\"".$a[$type2.'ID']."\">\n"; + echo $indent." ".$a['type']."\n"; + echo $indent." ".$a['required']."\n"; + } + echo $indent." <".$type."log id=\"".$a[$type2.'LogID']."\">\n"; + echo $indent." ".$a['userID']."\n"; + echo $indent." ".$a['status']."\n"; + echo $indent." ".wrapWithCData($a['comment'])."\n"; + echo $indent." ".$a['date']."\n"; + if($a['file']) { + $filename = $dms->contentDir . $document->getDir().'r'.(int) $a[$type2.'LogID']; + if(file_exists($filename)) { + echo $indent." \n"; + echo chunk_split(base64_encode(file_get_contents($filename)), 76, "\n"); + echo $indent." \n"; + } else { + echo " fileref=\"".$filename."\" />\n"; + if($contentdir) { + copy($filename, $contentdir.$document->getID()."-R-".$a[$type2.'LogID']); + } else { + echo "Warning: ".$type." log file (size=".filesize($filename).") will be missing from output\n"; + } + } + } + } + echo $indent." \n"; + $curid = $a[$type2.'ID']; + } + if($curid != 0) + echo $indent." \n"; + echo $indent." \n"; +} /* }}} */ + function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ global $sections, $statistic, $index, $dms, $maxsize, $contentdir; @@ -258,54 +308,10 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." \n"; } if($approvalStatus) { - echo $indent." \n"; - $curapprovalid = 0; - foreach($approvalStatus as $a) { - if($a['approveID'] != $curapprovalid) { - if($curapprovalid != 0) { - echo $indent." \n"; - } - echo $indent." \n"; - echo $indent." ".$a['type']."\n"; - echo $indent." ".$a['required']."\n"; - } - echo $indent." \n"; - echo $indent." ".$a['userID']."\n"; - echo $indent." ".$a['status']."\n"; - echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['date']."\n"; - echo $indent." \n"; -// echo $indent." \n"; - $curapprovalid = $a['approveID']; - } - if($curapprovalid != 0) - echo $indent." \n"; - echo $indent." \n"; + dumplog('approval', $approvalStatus, $indent); } if($reviewStatus) { - echo $indent." \n"; - $curreviewid = 0; - foreach($reviewStatus as $a) { - if($a['reviewID'] != $curreviewid) { - if($curreviewid != 0) { - echo $indent." \n"; - } - echo $indent." \n"; - echo $indent." ".$a['type']."\n"; - echo $indent." ".$a['required']."\n"; - } - echo $indent." \n"; - echo $indent." ".$a['userID']."\n"; - echo $indent." ".$a['status']."\n"; - echo $indent." ".wrapWithCData($a['comment'])."\n"; - echo $indent." ".$a['date']."\n"; - echo $indent." \n"; -// echo $indent." \n"; - $curreviewid = $a['reviewID']; - } - if($curreviewid != 0) - echo $indent." \n"; - echo $indent." \n"; + dumplog('review', $reviewStatus, $indent); } if(file_exists($dms->contentDir . $version->getPath())) { echo $indent." contentDir . $version->getPath())."\""; @@ -415,6 +421,8 @@ $dms->setRootFolderID($settings->_rootFolderID); echo "\n"; echo "getDBVersion(), 1, 3))."\" date=\"".date('Y-m-d H:i:s')."\">\n"; + +/* Dump users {{{ */ if(!$sections || in_array('users', $sections)) { $users = $dms->getAllUsers(); if($users) { @@ -464,7 +472,9 @@ if($users) { echo "\n"; } } +/* }}} */ +/* Dump groups {{{ */ if(!$sections || in_array('groups', $sections)) { $groups = $dms->getAllGroups(); if($groups) { @@ -487,7 +497,9 @@ if($groups) { echo "\n"; } } +/* }}} */ +/* Dump keywordcategories {{{ */ if(!$sections || in_array('keywordcategories', $sections)) { $categories = $dms->getAllKeywordCategories(); if($categories) { @@ -512,7 +524,9 @@ if($categories) { echo "\n"; } } +/* }}} */ +/* Dump documentcategories {{{ */ if(!$sections || in_array('documentcategories', $sections)) { $categories = $dms->getDocumentCategories(); if($categories) { @@ -526,7 +540,9 @@ if($categories) { echo "\n"; } } +/* }}} */ +/* Dump attributedefinition {{{ */ if(!$sections || in_array('attributedefinition', $sections)) { $attrdefs = $dms->getAllAttributeDefinitions(); if($attrdefs) { @@ -561,16 +577,22 @@ if($attrdefs) { echo "\n"; } } +/* }}} */ +/* Dump folders and documents {{{ */ $folder = $dms->getFolder($folderid); if($folder) { tree($folder, null, '', $skiproot); } +/* }}} */ +/* Dump statistics {{{ */ echo "\n"; echo " \n"; foreach($statistic as $type=>$count) echo " <".$type.">".$count."\n"; echo "\n"; +/* }}} */ + echo "\n"; ?> From baa0d11d1c4c3e29fd1a2253f0326c1b46389af1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 07:16:04 +0200 Subject: [PATCH 058/107] allow to add file if group has to approve --- views/bootstrap/class.ApproveDocument.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/views/bootstrap/class.ApproveDocument.php b/views/bootstrap/class.ApproveDocument.php index 04f104430..41ea20a06 100644 --- a/views/bootstrap/class.ApproveDocument.php +++ b/views/bootstrap/class.ApproveDocument.php @@ -170,12 +170,20 @@ function checkGrpForm() } ?> -
+
+ + + +
:
: +printFileChooser('approvalfile', false); +?> +
: + + + + + "> + + + "> From 8ffcfab6e41a6457d56d45064166fef1fac6d7d7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 10 Aug 2015 21:43:15 +0200 Subject: [PATCH 068/107] use new fulltext index interface with support for sqlitefts --- op/op.AddDocument.php | 11 ++---- op/op.Ajax.php | 11 ++++++ op/op.RemoveDocument.php | 17 ++++----- op/op.RemoveFolder.php | 18 ++++----- op/op.Search.php | 22 +++-------- out/out.IndexInfo.php | 7 +--- out/out.Indexer.php | 15 +++----- utils/indexer.php | 63 ++++++++++++++++++++++--------- views/bootstrap/class.Indexer.php | 17 +++++---- 9 files changed, 95 insertions(+), 86 deletions(-) diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index 9a4f845df..b0b4d7c47 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -293,15 +293,10 @@ for ($file_num=0;$file_num_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); + $index = $indexconf['Indexer']::open($settings->_luceneDir); if($index) { - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, true)); + $indexconf['Indexer']::init($settings->_stopWordsFile); + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, true)); } } diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 59851a7ba..3871d9c43 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -319,6 +319,17 @@ switch($command) { if($document) { if ($document->getAccessMode($user) >= M_READWRITE) { if($document->remove()) { + /* Remove the document from the fulltext index */ + if($settings->_enableFullSearch) { + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) { + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($_REQUEST['id'])) { + $index->delete($hit->id); + $index->commit(); + } + } + } header('Content-Type', 'application/json'); echo json_encode(array('success'=>true, 'message'=>'', 'data'=>'')); } else { diff --git a/op/op.RemoveDocument.php b/op/op.RemoveDocument.php index 5d5bbaf04..afaf8ac00 100644 --- a/op/op.RemoveDocument.php +++ b/op/op.RemoveDocument.php @@ -62,16 +62,13 @@ if (!$document->remove()) { /* Remove the document from the fulltext index */ if($settings->_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); - if($index && $hits = $index->find('document_id:'.$documentid)) { - $hit = $hits[0]; - $index->delete($hit->id); - $index->commit(); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) { + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($documentid)) { + $index->delete($hit->id); + $index->commit(); + } } } diff --git a/op/op.RemoveFolder.php b/op/op.RemoveFolder.php index 9857483d9..73e9080ef 100644 --- a/op/op.RemoveFolder.php +++ b/op/op.RemoveFolder.php @@ -54,21 +54,19 @@ $parent=$folder->getParent(); * The callback must return true other the removal will be canceled. */ if($settings->_enableFullSearch) { - if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); - else - require_once('SeedDMS/Lucene.php'); - - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); - function removeFromIndex($index, $document) { - if($hits = $index->find('document_id:'.$document->getId())) { - $hit = $hits[0]; + function removeFromIndex($arr, $document) { + $index = $arr[0]; + $indexconf = $arr[1]; + $lucenesearch = new $indexconf['Search']($index); + if($hit = $lucenesearch->getDocument($document->getID())) { $index->delete($hit->id); $index->commit(); } return true; } - $dms->setCallback('onPreRemoveDocument', 'removeFromIndex', $index); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + if($index) + $dms->setCallback('onPreRemoveDocument', 'removeFromIndex', array($index, $indexconf)); } $nl = $folder->getNotifyList(); diff --git a/op/op.Search.php b/op/op.Search.php index 82428ff77..324d66e80 100644 --- a/op/op.Search.php +++ b/op/op.Search.php @@ -112,25 +112,13 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { } } - $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('SeedDMS/Lucene.php'); + if($settings->_fullSearchEngine == 'lucene') { + Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); + } } - Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); if(strlen($query) < 4 && strpos($query, '*')) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); $resArr = array(); @@ -140,8 +128,8 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { $entries = array(); $searchTime = 0; } else { - $index = Zend_Search_Lucene::open($settings->_luceneDir); - $lucenesearch = new SeedDMS_Lucene_Search($index); + $index = $indexconf['Indexer']::open($settings->_luceneDir); + $lucenesearch = new $indexconf['Search']($index); $hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categorynames); if($hits === false) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); diff --git a/out/out.IndexInfo.php b/out/out.IndexInfo.php index 78aec3925..5c5cb3cc1 100644 --- a/out/out.IndexInfo.php +++ b/out/out.IndexInfo.php @@ -34,12 +34,7 @@ if(!$settings->_enableFullSearch) { UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled")); } -if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); -else - require_once('SeedDMS/Lucene.php'); - -$index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); +$index = $indexconf['Indexer']::open($settings->_luceneDir); if(!$index) { UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); } diff --git a/out/out.Indexer.php b/out/out.Indexer.php index 206d1e4e1..366598dfe 100644 --- a/out/out.Indexer.php +++ b/out/out.Indexer.php @@ -35,25 +35,20 @@ if(!$settings->_enableFullSearch) { UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled")); } -if(!empty($settings->_luceneClassDir)) - require_once($settings->_luceneClassDir.'/Lucene.php'); -else - require_once('SeedDMS/Lucene.php'); - if(isset($_GET['create']) && $_GET['create'] == 1) { if(isset($_GET['confirm']) && $_GET['confirm'] == 1) { - $index = SeedDMS_Lucene_Indexer::create($settings->_luceneDir); - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $index = $indexconf['Indexer']::create($settings->_luceneDir); + $indexconf['Indexer']::init($settings->_stopWordsFile); } else { header('Location: out.CreateIndex.php'); exit; } } else { - $index = SeedDMS_Lucene_Indexer::open($settings->_luceneDir); + $index = $indexconf['Indexer']::open($settings->_luceneDir); if(!$index) { UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); } - SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $indexconf['Indexer']::init($settings->_stopWordsFile); } if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { @@ -65,7 +60,7 @@ else { $folder = $dms->getFolder($folderid); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'index'=>$index, 'recreate'=>(isset($_GET['create']) && $_GET['create']==1), 'folder'=>$folder, 'converters'=>$settings->_converters['fulltext'], 'timeout'=>$settings->_cmdTimeout)); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'index'=>$index, 'indexconf'=>$indexconf, 'recreate'=>(isset($_GET['create']) && $_GET['create']==1), 'folder'=>$folder, 'converters'=>$settings->_converters['fulltext'], 'timeout'=>$settings->_cmdTimeout)); if($view) { $view->show(); exit; diff --git a/utils/indexer.php b/utils/indexer.php index e7b6de1f4..d8170469a 100644 --- a/utils/indexer.php +++ b/utils/indexer.php @@ -52,26 +52,46 @@ if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); require_once("SeedDMS/Core.php"); -require_once("SeedDMS/Lucene.php"); +if($settings->_fullSearchEngine == 'sqlitefts') { + $indexconf = array( + 'Indexer' => 'SeedDMS_SQLiteFTS_Indexer', + 'Search' => 'SeedDMS_SQLiteFTS_Search', + 'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument' + ); -function tree($dms, $index, $folder, $indent='') { + require_once('SeedDMS/SQLiteFTS.php'); +} else { + $indexconf = array( + 'Indexer' => 'SeedDMS_Lucene_Indexer', + 'Search' => 'SeedDMS_Lucene_Search', + 'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument' + ); + + require_once('SeedDMS/Lucene.php'); +} + +function tree($dms, $index, $indexconf, $folder, $indent='') { /* {{{ */ global $settings; echo $indent."D ".$folder->getName()."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { - tree($dms, $index, $subfolder, $indent.' '); + tree($dms, $index, $indexconf, $subfolder, $indent.' '); } $documents = $folder->getDocuments(); foreach($documents as $document) { echo $indent." ".$document->getId().":".$document->getName()." "; - if(!($hits = $index->find('document_id:'.$document->getId()))) { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null)); - echo " (Document added)\n"; + $lucenesearch = new $indexconf['Search']($index); + if(!($hit = $lucenesearch->getDocument($document->getId()))) { + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false)); + echo " (Document added)\n"; + } catch(Exception $e) { + echo " (Timeout)\n"; + } } else { - $hit = $hits[0]; try { $created = (int) $hit->getDocument()->getFieldValue('created'); - } catch (Zend_Search_Lucene_Exception $e) { + } catch (Exception $e) { $created = 0; } $content = $document->getLatestContent(); @@ -79,33 +99,42 @@ function tree($dms, $index, $folder, $indent='') { echo " (Document unchanged)\n"; } else { if($index->delete($hit->id)) { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $settings->_converters['fulltext'] ? $settings->_converters['fulltext'] : null)); - echo " (Document updated)\n"; + try { + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false)); + echo " (Document updated)\n"; + } catch(Exception $e) { + echo " (Timeout)\n"; + } } } } } -} +} /* }}} */ $db = new SeedDMS_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 SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); if(!$dms->checkVersion()) { - echo "Database update needed."; - exit; + echo "Database update needed.\n"; + exit(1); } $dms->setRootFolderID($settings->_rootFolderID); if($recreate) - $index = Zend_Search_Lucene::create($settings->_luceneDir); + $index = $indexconf['Indexer']::create($settings->_luceneDir); else - $index = Zend_Search_Lucene::open($settings->_luceneDir); -SeedDMS_Lucene_Indexer::init($settings->_stopWordsFile); + $index = $indexconf['Indexer']::open($settings->_luceneDir); +if(!$index) { + echo "Could not create index.\n"; + exit(1); +} + +$indexconf['Indexer']::init($settings->_stopWordsFile); $folder = $dms->getFolder($settings->_rootFolderID); -tree($dms, $index, $folder); +tree($dms, $index, $indexconf, $folder); $index->commit(); $index->optimize(); diff --git a/views/bootstrap/class.Indexer.php b/views/bootstrap/class.Indexer.php index 6219a14aa..f9c117f34 100644 --- a/views/bootstrap/class.Indexer.php +++ b/views/bootstrap/class.Indexer.php @@ -31,26 +31,26 @@ require_once("class.Bootstrap.php"); */ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { - function tree($dms, $index, $folder, $indent='') { /* {{{ */ + function tree($dms, $index, $indexconf, $folder, $indent='') { /* {{{ */ set_time_limit(30); echo $indent."D ".htmlspecialchars($folder->getName())."\n"; $subfolders = $folder->getSubFolders(); foreach($subfolders as $subfolder) { - $this->tree($dms, $index, $subfolder, $indent.' '); + $this->tree($dms, $index, $indexconf, $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()))) { + $lucenesearch = new $indexconf['Search']($index); + if(!($hit = $lucenesearch->getDocument($document->getId()))) { try { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); echo "(document added)"; } catch(Exception $e) { echo $indent."(adding document failed '".$e->getMessage()."')"; } } else { - $hit = $hits[0]; /* Check if the attribute created is set or has a value older * than the lasted content. Documents without such an attribute * where added when a new document was added to the dms. In such @@ -58,7 +58,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { */ try { $created = (int) $hit->getDocument()->getFieldValue('created'); - } catch (Zend_Search_Lucene_Exception $e) { + } catch (/* Zend_Search_Lucene_ */Exception $e) { $created = 0; } $content = $document->getLatestContent(); @@ -67,7 +67,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { } else { $index->delete($hit->id); try { - $index->addDocument(new SeedDMS_Lucene_IndexedDocument($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); + $index->addDocument(new $indexconf['IndexedDocument']($dms, $document, $this->converters ? $this->converters : null, false, $this->timeout)); echo $indent."(document updated)"; } catch(Exception $e) { print_r($e); @@ -83,6 +83,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { $dms = $this->params['dms']; $user = $this->params['user']; $index = $this->params['index']; + $indexconf = $this->params['indexconf']; $recreate = $this->params['recreate']; $folder = $this->params['folder']; $this->converters = $this->params['converters']; @@ -95,7 +96,7 @@ class SeedDMS_View_Indexer extends SeedDMS_Bootstrap_Style { $this->contentHeading(getMLText("update_fulltext_index")); echo "
";
-		$this->tree($dms, $index, $folder);
+		$this->tree($dms, $index, $indexconf, $folder);
 		echo "
"; $index->commit(); From c905e3a5ebed5a2d83b4d581388ebbb3bacc5201 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 10 Aug 2015 22:06:00 +0200 Subject: [PATCH 069/107] do not check if unlink() was successful --- SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php index 337298035..a1abab017 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -55,8 +55,7 @@ class SeedDMS_SQLiteFTS_Indexer { * @param string $indexerDir directory on disk containing the index */ static function create($indexerDir) { /* {{{ */ - if(!@unlink($indexerDir.'/index.db')) - return null; + unlink($indexerDir.'/index.db'); $index = new SeedDMS_SQLiteFTS_Indexer($indexerDir); $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, owner, content, created, notindexed=created, matchinfo=fts3)'; $res = $index->_conn->exec($sql); From ef902ee12007529b1c2462d04233dc16564b269f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 11 Aug 2015 14:10:28 +0200 Subject: [PATCH 070/107] return file size of version where appropriate --- restapi/index.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/restapi/index.php b/restapi/index.php index 34036dae4..708544206 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -140,6 +140,7 @@ function getLockedDocuments() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -249,6 +250,7 @@ function getFolderChildren($id) { /* {{{ */ 'name'=>htmlspecialchars($document->getName()), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -436,6 +438,7 @@ function getDocument($id) { /* {{{ */ 'date'=>$document->getDate(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'keywords'=>htmlspecialchars($document->getKeywords()), ); $app->response()->header('Content-Type', 'application/json'); @@ -540,6 +543,7 @@ function getDocumentVersions($id) { /* {{{ */ 'version'=>$lc->getVersion(), 'date'=>$lc->getDate(), 'mimetype'=>$lc->getMimeType(), + 'size'=>$lc->getFileSize(), 'comment'=>htmlspecialchars($lc->getComment()), ); } @@ -752,6 +756,7 @@ function doSearch() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); @@ -814,6 +819,7 @@ function doSearchByAttr() { /* {{{ */ 'name'=>$document->getName(), 'mimetype'=>$lc->getMimeType(), 'version'=>$lc->getVersion(), + 'size'=>$lc->getFileSize(), 'comment'=>$document->getComment(), 'keywords'=>$document->getKeywords(), ); From de7d7c2dbc3430140fac70bab0c907018fb682e3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 11 Aug 2015 22:30:46 +0200 Subject: [PATCH 071/107] add translations for hr_HR and ko_KR --- languages/es_ES/lang.inc | 6 +++--- languages/nl_NL/lang.inc | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index f4b65e580..7ded19a0e 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (948), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (950), angel (123), francisco (2), jaimem (14) $text = array( 'accept' => 'Aceptar', @@ -473,7 +473,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Horaria', 'hours' => 'horas', -'hr_HR' => '', +'hr_HR' => 'Croata', 'human_readable' => 'Archivo legible por humanos', 'hu_HU' => 'Hungaro', 'id' => 'ID', @@ -536,7 +536,7 @@ URL: [url]', 'keep_doc_status' => 'Mantener estado del documento', 'keywords' => 'Palabras clave', 'keyword_exists' => 'La palabra clave ya existe', -'ko_KR' => '', +'ko_KR' => 'Coreano', 'language' => 'Idioma', 'lastaccess' => 'Último acceso', 'last_update' => 'Última modificación', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index e51e021e8..97971ce4d 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (699), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (701), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( 'accept' => 'Accept', @@ -466,7 +466,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Elk uur', 'hours' => 'uren', -'hr_HR' => '', +'hr_HR' => 'Kroatisch', 'human_readable' => 'Leesbaar Archief', 'hu_HU' => 'Hongaars', 'id' => 'ID', @@ -529,7 +529,7 @@ URL: [url]', 'keep_doc_status' => 'Behoud document status', 'keywords' => 'Sleutelwoorden', 'keyword_exists' => 'Sleutelwoord bestaat al', -'ko_KR' => '', +'ko_KR' => 'Koreaans', 'language' => 'Talen', 'lastaccess' => '', 'last_update' => 'Laatste Update', From 36fff2cfcb81f70739d2580bd9cba9ec4c9a534b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 12 Aug 2015 17:12:41 +0200 Subject: [PATCH 072/107] index mimetype and orgfilename --- SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php index a1abab017..a0fbac574 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -57,7 +57,7 @@ class SeedDMS_SQLiteFTS_Indexer { static function create($indexerDir) { /* {{{ */ unlink($indexerDir.'/index.db'); $index = new SeedDMS_SQLiteFTS_Indexer($indexerDir); - $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, owner, content, created, notindexed=created, matchinfo=fts3)'; + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, orgfilename, owner, content, created, notindexed=created, matchinfo=fts3)'; $res = $index->_conn->exec($sql); if($res === false) { return null; @@ -88,7 +88,7 @@ class SeedDMS_SQLiteFTS_Indexer { if(!$this->_conn) return false; - $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".time().")"; + $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, orgfilename, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('orgfilename')).", ".time().")"; $res = $this->_conn->exec($sql); if($res === false) { var_dump($this->_conn->errorInfo()); @@ -180,7 +180,7 @@ class SeedDMS_SQLiteFTS_Indexer { if(!$this->_conn) return false; - $sql = "SELECT title, comment, owner, keywords, category, created FROM docs WHERE docid=".(int) $id; + $sql = "SELECT title, comment, owner, keywords, category, mimetype, orgfilename, created FROM docs WHERE docid=".(int) $id; $res = $this->_conn->query($sql); $doc = false; if($res) { @@ -190,6 +190,8 @@ class SeedDMS_SQLiteFTS_Indexer { $doc->addField('comment', $rec['comment']); $doc->addField('keywords', $rec['keywords']); $doc->addField('category', $rec['category']); + $doc->addField('mimetype', $rec['mimetype']); + $doc->addField('orgfilename', $rec['orgfilename']); $doc->addField('owner', $rec['owner']); $doc->addField('created', $rec['created']); } From 6eb37664e9bbbb13dc4f694ac327c12417da0fb5 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 08:16:19 +0200 Subject: [PATCH 073/107] do not use AND in query string, precede query term with : --- SeedDMS_SQLiteFTS/SQLiteFTS/Search.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php index 1226eaded..18b20fdaf 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php @@ -68,17 +68,19 @@ class SeedDMS_SQliteFTS_Search { } if($owner) { if($querystr) - $querystr .= ' AND '; + $querystr .= ' '; + //$querystr .= ' AND '; $querystr .= 'owner:'.$owner; + //$querystr .= $owner; } if($categories) { if($querystr) - $querystr .= ' AND '; + $querystr .= ' '; + //$querystr .= ' AND '; $querystr .= 'category:'; $querystr .= implode(' OR category:', $categories); $querystr .= ''; } -// echo $querystr; try { $hits = $this->index->find($querystr); $recs = array(); From b692439165e605974274bd5219020c902493c008 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 08:17:03 +0200 Subject: [PATCH 074/107] replace orgfilename by origfilename --- SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php | 11 +++++++---- SeedDMS_SQLiteFTS/SQLiteFTS/Term.php | 8 +++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php index a0fbac574..8a311cd50 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -57,7 +57,10 @@ class SeedDMS_SQLiteFTS_Indexer { static function create($indexerDir) { /* {{{ */ unlink($indexerDir.'/index.db'); $index = new SeedDMS_SQLiteFTS_Indexer($indexerDir); - $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, orgfilename, owner, content, created, notindexed=created, matchinfo=fts3)'; + /* Make sure the sequence of fields is identical to the field list + * in SeedDMS_SQLiteFTS_Term + */ + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, notindexed=created, matchinfo=fts3)'; $res = $index->_conn->exec($sql); if($res === false) { return null; @@ -88,7 +91,7 @@ class SeedDMS_SQLiteFTS_Indexer { if(!$this->_conn) return false; - $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, orgfilename, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('orgfilename')).", ".time().")"; + $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, origfilename, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('origfilename')).", ".time().")"; $res = $this->_conn->exec($sql); if($res === false) { var_dump($this->_conn->errorInfo()); @@ -180,7 +183,7 @@ class SeedDMS_SQLiteFTS_Indexer { if(!$this->_conn) return false; - $sql = "SELECT title, comment, owner, keywords, category, mimetype, orgfilename, created FROM docs WHERE docid=".(int) $id; + $sql = "SELECT title, comment, owner, keywords, category, mimetype, origfilename, created FROM docs WHERE docid=".(int) $id; $res = $this->_conn->query($sql); $doc = false; if($res) { @@ -191,7 +194,7 @@ class SeedDMS_SQLiteFTS_Indexer { $doc->addField('keywords', $rec['keywords']); $doc->addField('category', $rec['category']); $doc->addField('mimetype', $rec['mimetype']); - $doc->addField('orgfilename', $rec['orgfilename']); + $doc->addField('origfilename', $rec['origfilename']); $doc->addField('owner', $rec['owner']); $doc->addField('created', $rec['created']); } diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php index eb87f1a6b..ae768b245 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php @@ -52,9 +52,11 @@ class SeedDMS_SQLiteFTS_Term { 1 => 'comment', 2 => 'keywords', 3 => 'category', - 4 => 'owner', - 5 => 'content', - 6 => 'created' + 4 => 'mimetype', + 5 => 'origfilename', + 6 => 'owner', + 7 => 'content', + 8 => 'created' ); $this->field = $fields[$col]; $this->_occurrence = $occurrence; From 3687cceb3fe00594f7a26884ce248a5f39ce3708 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 08:17:39 +0200 Subject: [PATCH 075/107] make fulltext search form at least 330px needed because the user selection will be cut off otherwise --- views/bootstrap/class.Search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 7de29335e..7abe14499 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -355,7 +355,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { echo "
\n"; $this->contentContainerStart(); ?> - +
:
: +printFileChooser('reviewfile', false); +?> +
: From 063acfcef50e79b7c03ee53e757a6398846884e5 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 07:17:08 +0200 Subject: [PATCH 060/107] add entry for 4.3.20 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index b2e96f739..95ebac91f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,6 +6,7 @@ - show preview image in Review/Approval summary - timeout for external commands for creating fulltext index can be set - add translations for korean, croation, ukrainian +- file can be submitted with approval/review -------------------------------------------------------------------------------- Changes in version 4.3.19 From 51778b92f801b19ad11779fabee458f88ab3cd47 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 07:17:52 +0200 Subject: [PATCH 061/107] list all review logs, fix some php errors --- utils/xmldump.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index 0da836569..5bbfbf933 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -107,7 +107,10 @@ $statistic = array( 'documentcategories'=>0, ); -function dumplog($type, $logs, $indent) { /* {{{ */ +function dumplog($version, $type, $logs, $indent) { /* {{{ */ + global $dms, $contentdir, $maxsize; + + $document = $version->getDocument(); switch($type) { case 'approval': $type2 = 'approve'; @@ -135,7 +138,7 @@ function dumplog($type, $logs, $indent) { /* {{{ */ $filename = $dms->contentDir . $document->getDir().'r'.(int) $a[$type2.'LogID']; if(file_exists($filename)) { echo $indent." \n"; echo chunk_split(base64_encode(file_get_contents($filename)), 76, "\n"); echo $indent." \n"; @@ -280,7 +283,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." \n"; foreach($versions as $version) { $approvalStatus = $version->getApprovalStatus(30); - $reviewStatus = $version->getReviewStatus(); + $reviewStatus = $version->getReviewStatus(30); $owner = $version->getUser(); echo $indent." getVersion()."\">\n"; echo $indent." ".$version->getMimeType()."\n"; @@ -308,10 +311,10 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." \n"; } if($approvalStatus) { - dumplog('approval', $approvalStatus, $indent); + dumplog($version, 'approval', $approvalStatus, $indent); } if($reviewStatus) { - dumplog('review', $reviewStatus, $indent); + dumplog($version, 'review', $reviewStatus, $indent); } if(file_exists($dms->contentDir . $version->getPath())) { echo $indent." contentDir . $version->getPath())."\""; From 1cf79c6cbea5e97b56aaa1c324781847e9aec235 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 07:25:26 +0200 Subject: [PATCH 062/107] set $type2 to $type in dumplog() --- utils/xmldump.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index 5bbfbf933..d8bf9dee0 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -116,7 +116,7 @@ function dumplog($version, $type, $logs, $indent) { /* {{{ */ $type2 = 'approve'; break; default: - $type2 = 'review'; + $type2 = $type; } echo $indent." <".$type."s>\n"; $curid = 0; From 8ca8e17047c8b4bacfe021a86e43b9c920371d2c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 9 Aug 2015 07:27:47 +0200 Subject: [PATCH 063/107] check if file in dumplog() is not empty --- utils/xmldump.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/xmldump.php b/utils/xmldump.php index d8bf9dee0..af51ca072 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -134,7 +134,7 @@ function dumplog($version, $type, $logs, $indent) { /* {{{ */ echo $indent." ".$a['status']."\n"; echo $indent." ".wrapWithCData($a['comment'])."\n"; echo $indent." ".$a['date']."\n"; - if($a['file']) { + if(!empty($a['file'])) { $filename = $dms->contentDir . $document->getDir().'r'.(int) $a[$type2.'LogID']; if(file_exists($filename)) { echo $indent." Date: Mon, 10 Aug 2015 21:39:05 +0200 Subject: [PATCH 064/107] add classes for creating fulltext index using sqlitefts --- SeedDMS_SQLiteFTS/SQLiteFTS.php | 44 +++ SeedDMS_SQLiteFTS/SQLiteFTS/Document.php | 58 ++++ .../SQLiteFTS/IndexedDocument.php | 140 ++++++++++ SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php | 251 ++++++++++++++++++ SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php | 65 +++++ SeedDMS_SQLiteFTS/SQLiteFTS/Search.php | 94 +++++++ SeedDMS_SQLiteFTS/SQLiteFTS/Term.php | 64 +++++ SeedDMS_SQLiteFTS/package.xml | 67 +++++ SeedDMS_SQLiteFTS/tests/Index.php | 0 9 files changed, 783 insertions(+) create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/Document.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/Search.php create mode 100644 SeedDMS_SQLiteFTS/SQLiteFTS/Term.php create mode 100644 SeedDMS_SQLiteFTS/package.xml create mode 100644 SeedDMS_SQLiteFTS/tests/Index.php diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS.php b/SeedDMS_SQLiteFTS/SQLiteFTS.php new file mode 100644 index 000000000..0a3b710e8 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS.php @@ -0,0 +1,44 @@ + diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php new file mode 100644 index 000000000..48c4e789c --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Document.php @@ -0,0 +1,58 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a document. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Document { + + /** + * @var integer $id id of document + * @access protected + */ + public $id; + + /** + * @var array $fields fields + * @access protected + */ + protected $fields; + + public function addField($key, $value) { /* {{{ */ + if($key == 'document_id') { + $this->id = $this->fields[$key] = (int) $value; + } else { + if(isset($this->fields[$key])) + $this->fields[$key] .= ' '.$value; + else + $this->fields[$key] = $value; + } + } /* }}} */ + + public function getFieldValue($key) { /* {{{ */ + if(isset($this->fields[$key])) + return $this->fields[$key]; + else + return false; + } /* }}} */ + +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php new file mode 100644 index 000000000..455b3dd77 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php @@ -0,0 +1,140 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * @uses SeedDMS_SQLiteFTS_Document + */ +require_once('Document.php'); + + +/** + * Class for managing an indexed document. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document { + + static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + + $output = ''; + do { + $timeleft = $timeout - time(); + $read = array($pipes[1]); + stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, NULL); + + if (!empty($read)) { + $output .= fread($pipes[1], 8192); + } + } while (!feof($pipes[1]) && $timeleft > 0); + + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + return $output; + } + } /* }}} */ + + /** + * Constructor. Creates our indexable document and adds all + * necessary fields to it using the passed in document + */ + public function __construct($dms, $document, $convcmd=null, $nocontent=false, $timeout=5) { + $_convcmd = array( + 'application/pdf' => 'pdftotext -enc UTF-8 -nopgbrk %s - |sed -e \'s/ [a-zA-Z0-9.]\{1\} / /g\' -e \'s/[0-9.]//g\'', + 'application/msword' => 'catdoc %s', + 'application/vnd.ms-excel' => 'ssconvert -T Gnumeric_stf:stf_csv -S %s fd://1', + 'audio/mp3' => "id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'", + 'audio/mpeg' => "id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'", + 'text/plain' => 'cat %s', + ); + if($convcmd) { + $_convcmd = $convcmd; + } + + $version = $document->getLatestContent(); + $this->addField('document_id', $document->getID()); + if($version) { + $this->addField('mimetype', $version->getMimeType()); + $this->addField('origfilename', $version->getOriginalFileName()); + if(!$nocontent) + $this->addField('created', $version->getDate(), 'unindexed'); + if($attributes = $version->getAttributes()) { + foreach($attributes as $attribute) { + $attrdef = $attribute->getAttributeDefinition(); + if($attrdef->getValueSet() != '') + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + else + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + } + } + } + $this->addField('title', $document->getName()); + if($categories = $document->getCategories()) { + $names = array(); + foreach($categories as $cat) { + $names[] = $cat->getName(); + } + $this->addField('category', implode(' ', $names)); + } + if($attributes = $document->getAttributes()) { + foreach($attributes as $attribute) { + $attrdef = $attribute->getAttributeDefinition(); + if($attrdef->getValueSet() != '') + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + else + $this->addField('attr_'.str_replace(' ', '_', $attrdef->getName()), $attribute->getValue()); + } + } + + $owner = $document->getOwner(); + $this->addField('owner', $owner->getLogin()); + if($keywords = $document->getKeywords()) { + $this->addField('keywords', $keywords); + } + if($comment = $document->getComment()) { + $this->addField('comment', $comment); + } + if($version && !$nocontent) { + $path = $dms->contentDir . $version->getPath(); + $content = ''; + $fp = null; + $mimetype = $version->getMimeType(); + if(isset($_convcmd[$mimetype])) { + $cmd = sprintf($_convcmd[$mimetype], $path); + $content = self::execWithTimeout($cmd); + if($content) { + $this->addField('content', $content, 'unstored'); + } + } + } + } +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php new file mode 100644 index 000000000..337298035 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -0,0 +1,251 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a SQLiteFTS index. + * + * @category DMS + * @package SeedDMS_Lucene + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Indexer { + /** + * @var object $index sqlite index + * @access protected + */ + protected $_conn; + + /** + * Constructor + * + */ + function __construct($indexerDir) { /* {{{ */ + $this->_conn = new PDO('sqlite:'.$indexerDir.'/index.db'); + } /* }}} */ + + /** + * Open an existing index + * + * @param string $indexerDir directory on disk containing the index + */ + static function open($indexerDir) { /* {{{ */ + if(file_exists($indexerDir.'/index.db')) { + return new SeedDMS_SQLiteFTS_Indexer($indexerDir); + } else + return self::create($indexerDir); + } /* }}} */ + + /** + * Create a new index + * + * @param string $indexerDir directory on disk containing the index + */ + static function create($indexerDir) { /* {{{ */ + if(!@unlink($indexerDir.'/index.db')) + return null; + $index = new SeedDMS_SQLiteFTS_Indexer($indexerDir); + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, owner, content, created, notindexed=created, matchinfo=fts3)'; + $res = $index->_conn->exec($sql); + if($res === false) { + return null; + } + $sql = 'CREATE VIRTUAL TABLE docs_terms USING fts4aux(docs);'; + $res = $index->_conn->exec($sql); + if($res === false) { + return null; + } + return($index); + } /* }}} */ + + /** + * Do some initialization + * + */ + static function init($stopWordsFile='') { /* {{{ */ + } /* }}} */ + + /** + * Add document to index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + function addDocument($doc) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".time().")"; + $res = $this->_conn->exec($sql); + if($res === false) { + var_dump($this->_conn->errorInfo()); + } + return $res; + } /* }}} */ + + /** + * Remove document from index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + public function delete($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "DELETE FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->exec($sql); + return $res; + } /* }}} */ + + /** + * Check if document was deleted + * + * Just for compatibility with lucene. + * + * @return boolean always false + */ + public function isDeleted($id) { /* {{{ */ + return false; + } /* }}} */ + + /** + * Find documents in index + * + * @param object $doc indexed document of class + * SeedDMS_SQLiteFTS_IndexedDocument + * @return boolean false in case of an error, otherwise true + */ + public function find($query) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT docid FROM docs WHERE docs MATCH ".$this->_conn->quote($query); + $res = $this->_conn->query($sql); + $hits = array(); + if($res) { + foreach($res as $rec) { + $hit = new SeedDMS_SQLiteFTS_QueryHit($this); + $hit->id = $rec['docid']; + $hits[] = $hit; + } + } + return $hits; + } /* }}} */ + + /** + * Get a single document from index + * + * @param integer $id id of document + * @return boolean false in case of an error, otherwise true + */ + public function findById($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT docid FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->query($sql); + $hits = array(); + if($res) { + while($rec = $res->fetch(PDO::FETCH_ASSOC)) { + $hit = new SeedDMS_SQLiteFTS_QueryHit($this); + $hit->id = $rec['docid']; + $hits[] = $hit; + } + } + return $hits; + } /* }}} */ + + /** + * Get a single document from index + * + * @param integer $id id of document + * @return boolean false in case of an error, otherwise true + */ + public function getDocument($id) { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT title, comment, owner, keywords, category, created FROM docs WHERE docid=".(int) $id; + $res = $this->_conn->query($sql); + $doc = false; + if($res) { + $rec = $res->fetch(PDO::FETCH_ASSOC); + $doc = new SeedDMS_SQLiteFTS_Document(); + $doc->addField('title', $rec['title']); + $doc->addField('comment', $rec['comment']); + $doc->addField('keywords', $rec['keywords']); + $doc->addField('category', $rec['category']); + $doc->addField('owner', $rec['owner']); + $doc->addField('created', $rec['created']); + } + return $doc; + } /* }}} */ + + /** + * Return list of terms in index + * + * This function does nothing! + */ + public function terms() { /* {{{ */ + if(!$this->_conn) + return false; + + $sql = "SELECT term, col, occurrences FROM docs_terms WHERE col!='*' ORDER BY col"; + $res = $this->_conn->query($sql); + $terms = array(); + if($res) { + while($rec = $res->fetch(PDO::FETCH_ASSOC)) { + $term = new SeedDMS_SQLiteFTS_Term($rec['term'], $rec['col'], $rec['occurrences']); + $terms[] = $term; + } + } + return $terms; + } /* }}} */ + + /** + * Return list of documents in index + * + */ + public function count() { /* {{{ */ + $sql = "SELECT count(*) c FROM docs"; + $res = $this->_conn->query($sql); + if($res) { + $rec = $res->fetch(PDO::FETCH_ASSOC); + return $rec['c']; + } + return 0; + } /* }}} */ + + /** + * Commit changes + * + * This function does nothing! + */ + function commit() { /* {{{ */ + } /* }}} */ + + /** + * Optimize index + * + * This function does nothing! + */ + function optimize() { /* {{{ */ + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php b/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php new file mode 100644 index 000000000..d87486118 --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/QueryHit.php @@ -0,0 +1,65 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a query hit. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_QueryHit { + + /** + * @var SeedDMS_SQliteFTS_Indexer $index + * @access protected + */ + protected $_index; + + /** + * @var SeedDMS_SQliteFTS_Document $document + * @access protected + */ + protected $_document; + + /** + * @var integer $id id of document + * @access public + */ + public $id; + + /** + * + */ + public function __construct(SeedDMS_SQLiteFTS_Indexer $index) { /* {{{ */ + $this->_index = $index; + } /* }}} */ + + /** + * Return the document associated with this hit + * + * @return SeedDMS_SQLiteFTS_Document + */ + public function getDocument() { /* {{{ */ + if (!$this->_document instanceof SeedDMS_SQLiteFTS_Document) { + $this->_document = $this->_index->getDocument($this->id); + } + + return $this->_document; + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php new file mode 100644 index 000000000..1226eaded --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php @@ -0,0 +1,94 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for searching in a SQlite FTS index. + * + * @category DMS + * @package SeedDMS_Lucene + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQliteFTS_Search { + /** + * @var object $index SQlite FTS index + * @access protected + */ + protected $index; + + /** + * Create a new instance of the search + * + * @param object $index SQlite FTS index + * @return object instance of SeedDMS_SQliteFTS_Search + */ + function __construct($index) { /* {{{ */ + $this->index = $index; + $this->version = '@package_version@'; + if($this->version[0] == '@') + $this->version = '3.0.0'; + } /* }}} */ + + /** + * Get hit from index + * + * @param object $index lucene index + * @return object instance of SeedDMS_Lucene_Document of false + */ + function getDocument($id) { /* {{{ */ + $hits = $this->index->findById((int) $id); + return $hits ? $hits[0] : false; + } /* }}} */ + + /** + * Search in index + * + * @param object $index SQlite FTS index + * @return object instance of SeedDMS_Lucene_Search + */ + function search($term, $owner, $status='', $categories=array(), $fields=array()) { /* {{{ */ + $querystr = ''; + if($fields) { + } else { + if($term) + $querystr .= trim($term); + } + if($owner) { + if($querystr) + $querystr .= ' AND '; + $querystr .= 'owner:'.$owner; + } + if($categories) { + if($querystr) + $querystr .= ' AND '; + $querystr .= 'category:'; + $querystr .= implode(' OR category:', $categories); + $querystr .= ''; + } +// echo $querystr; + try { + $hits = $this->index->find($querystr); + $recs = array(); + foreach($hits as $hit) { + $recs[] = array('id'=>$hit->id, 'document_id'=>$hit->id); + } + return $recs; + } catch (Exception $e) { + return false; + } + } /* }}} */ +} +?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php new file mode 100644 index 000000000..eb87f1a6b --- /dev/null +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Term.php @@ -0,0 +1,64 @@ + + * @copyright Copyright (C) 2010, Uwe Steinmann + * @version Release: @package_version@ + */ + + +/** + * Class for managing a term. + * + * @category DMS + * @package SeedDMS_SQLiteFTS + * @version @version@ + * @author Uwe Steinmann + * @copyright Copyright (C) 2011, Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_SQLiteFTS_Term { + + /** + * @var string $text + * @access public + */ + public $text; + + /** + * @var string $field + * @access public + */ + public $field; + + /** + * @var integer $occurrence + * @access public + */ + public $_occurrence; + + /** + * + */ + public function __construct($term, $col, $occurrence) { /* {{{ */ + $this->text = $term; + $fields = array( + 0 => 'title', + 1 => 'comment', + 2 => 'keywords', + 3 => 'category', + 4 => 'owner', + 5 => 'content', + 6 => 'created' + ); + $this->field = $fields[$col]; + $this->_occurrence = $occurrence; + } /* }}} */ + +} +?> diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml new file mode 100644 index 000000000..614df9222 --- /dev/null +++ b/SeedDMS_SQLiteFTS/package.xml @@ -0,0 +1,67 @@ + + + SeedDMS_SQLiteFTS + pear.php.net + Fulltext search based on sqlite for SeedDMS + SeedDMS is a web based document management system (DMS). This is + the fulltext search engine for it, based on SQLite FTS. + + Uwe Steinmann + steinm + uwe@steinmann.cx + yes + + 2015-08-10 + + + 1.0.0 + 1.0.0 + + + stable + stable + + GPL License + +initial release + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4.3.0 + + + 1.5.4 + + + + + + + diff --git a/SeedDMS_SQLiteFTS/tests/Index.php b/SeedDMS_SQLiteFTS/tests/Index.php new file mode 100644 index 000000000..e69de29bb From 0363395b9f4fd20d89c752c0c0129b4ac2a89468 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 10 Aug 2015 21:39:40 +0200 Subject: [PATCH 065/107] create SeedDMS_SQLiteFTS package --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index fc1db798e..1d4616a43 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ pear: (cd SeedDMS_Core/; pear package) (cd SeedDMS_Lucene/; pear package) (cd SeedDMS_Preview/; pear package) + (cd SeedDMS_SQLiteFTS/; pear package) webdav: mkdir -p tmp/seeddms-webdav-$(VERSION) From ae6044bc7785367b43186727959b994b3d3ab785 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 10 Aug 2015 21:40:26 +0200 Subject: [PATCH 066/107] add method getDocument() this way the access on the index can be identical to SQliteFTS --- SeedDMS_Lucene/Lucene/Search.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/SeedDMS_Lucene/Lucene/Search.php b/SeedDMS_Lucene/Lucene/Search.php index d51c800ca..857d23ceb 100644 --- a/SeedDMS_Lucene/Lucene/Search.php +++ b/SeedDMS_Lucene/Lucene/Search.php @@ -42,6 +42,17 @@ class SeedDMS_Lucene_Search { $this->version = '3.0.0'; } /* }}} */ + /** + * Get document from index + * + * @param object $index lucene index + * @return object instance of SeedDMS_Lucene_Document of false + */ + function getDocument($id) { /* {{{ */ + $hits = $this->index->find('document_id:'.$id); + return $hits ? $hits[0] : false; + } /* }}} */ + /** * Search in index * From b0413a0d4612159faac4e83961773f3fe50d5f48 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 10 Aug 2015 21:41:51 +0200 Subject: [PATCH 067/107] engine for fulltext search can be configured --- inc/inc.ClassSettings.php | 4 ++++ inc/inc.Settings.php | 24 ++++++++++++++++++++++++ op/op.Settings.php | 1 + views/bootstrap/class.Settings.php | 9 +++++++++ 4 files changed, 38 insertions(+) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 36e44f757..984f1dce5 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -87,6 +87,8 @@ class Settings { /* {{{ */ var $_stopWordsFile = null; // enable/disable lucene fulltext search var $_enableFullSearch = true; + // fulltext search engine + var $_fullSearchEngine = 'lucene'; // contentOffsetDirTo var $_contentOffsetDir = "1048576"; // Maximum number of sub-directories per parent directory @@ -347,6 +349,7 @@ class Settings { /* {{{ */ $this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]); $this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]); $this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]); + $this->_fullSearchEngine = strval($tab["fullSearchEngine"]); $this->_stopWordsFile = strval($tab["stopWordsFile"]); $this->_sortUsersInList = strval($tab["sortUsersInList"]); $this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]); @@ -619,6 +622,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector); $this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector); $this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch); + $this->setXMLAttributValue($node, "fullSearchEngine", $this->_fullSearchEngine); $this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree); $this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile); $this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList); diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index e8bdc86e9..a766e0811 100644 --- a/inc/inc.Settings.php +++ b/inc/inc.Settings.php @@ -88,4 +88,28 @@ if (get_magic_quotes_gpc()) { } unset($process); } + +if($settings->_enableFullSearch) { + if($settings->_fullSearchEngine == 'sqlitefts') { + $indexconf = array( + 'Indexer' => 'SeedDMS_SQLiteFTS_Indexer', + 'Search' => 'SeedDMS_SQLiteFTS_Search', + 'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument' + ); + + require_once('SeedDMS/SQLiteFTS.php'); + } else { + $indexconf = array( + 'Indexer' => 'SeedDMS_Lucene_Indexer', + 'Search' => 'SeedDMS_Lucene_Search', + 'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument' + ); + + if(!empty($settings->_luceneClassDir)) + require_once($settings->_luceneClassDir.'/Lucene.php'); + else + require_once('SeedDMS/Lucene.php'); + } +} + ?> diff --git a/op/op.Settings.php b/op/op.Settings.php index 611a8eb4a..920bd6740 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -67,6 +67,7 @@ if ($action == "saveSettings") $settings->_enableEmail =getBoolValue("enableEmail"); $settings->_enableUsersView = getBoolValue("enableUsersView"); $settings->_enableFullSearch = getBoolValue("enableFullSearch"); + $settings->_fullSearchEngine = $_POST["fullSearchEngine"]; $settings->_enableClipboard = getBoolValue("enableClipboard"); $settings->_enableDropUpload = getBoolValue("enableDropUpload"); $settings->_enableFolderTree = getBoolValue("enableFolderTree"); diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 048e88839..41869356b 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -161,6 +161,15 @@ if(!is_writeable($settings->_configFilePath)) { : _enableFullSearch) echo "checked" ?> />
: + +
:
From 592f455be9caf457c22415ebd6add42214cb9428 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 09:52:39 +0200 Subject: [PATCH 076/107] add phrases for fulltext search engine --- languages/ar_EG/lang.inc | 6 +++++- languages/bg_BG/lang.inc | 6 +++++- languages/ca_ES/lang.inc | 6 +++++- languages/cs_CZ/lang.inc | 6 +++++- languages/de_DE/lang.inc | 6 +++++- languages/en_GB/lang.inc | 6 +++++- languages/es_ES/lang.inc | 6 +++++- languages/fr_FR/lang.inc | 6 +++++- languages/hr_HR/lang.inc | 6 +++++- languages/hu_HU/lang.inc | 6 +++++- languages/it_IT/lang.inc | 6 +++++- languages/ko_KR/lang.inc | 6 +++++- languages/nl_NL/lang.inc | 6 +++++- languages/pl_PL/lang.inc | 6 +++++- languages/pt_BR/lang.inc | 6 +++++- languages/ro_RO/lang.inc | 6 +++++- languages/ru_RU/lang.inc | 6 +++++- languages/sk_SK/lang.inc | 6 +++++- languages/sv_SE/lang.inc | 6 +++++- languages/tr_TR/lang.inc | 6 +++++- languages/uk_UA/lang.inc | 6 +++++- languages/zh_CN/lang.inc | 6 +++++- languages/zh_TW/lang.inc | 6 +++++- 23 files changed, 115 insertions(+), 23 deletions(-) diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 194936883..d2f8b0163 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1251) +// Translators: Admin (1253) $text = array( 'accept' => 'وافق', @@ -991,6 +991,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index c4a8756a6..193436f31 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (778) +// Translators: Admin (780) $text = array( 'accept' => 'Приеми', @@ -856,6 +856,10 @@ $text = array( 'settings_firstDayOfWeek_desc' => 'Първи ден на седмицата', 'settings_footNote' => 'Футер', 'settings_footNote_desc' => 'Съобщение, показвано отдолу на всяка страница', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Идентификатор за гостенин', 'settings_guestID_desc' => 'Идентификатор за гост (може да не се променя)', 'settings_httpRoot' => 'Корен Http', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 39277d154..231a44810 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (655) +// Translators: Admin (657) $text = array( 'accept' => 'Acceptar', @@ -861,6 +861,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Guest ID', 'settings_guestID_desc' => '', 'settings_httpRoot' => 'Http Root', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 25e2f300f..fe88aefb2 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (683), kreml (455) +// Translators: Admin (685), kreml (455) $text = array( 'accept' => 'Přijmout', @@ -1000,6 +1000,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'First day of the week', 'settings_footNote' => 'Poznámka pod čarou', 'settings_footNote_desc' => 'Message to display at the bottom of every page', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => 'Http Root', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 23c5cc16e..5452853a7 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2102), dgrutsch (18) +// Translators: Admin (2106), dgrutsch (18) $text = array( 'accept' => 'Übernehmen', @@ -1020,6 +1020,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Erster Tag der Woche', 'settings_footNote' => 'Text im Fuß der Seite', 'settings_footNote_desc' => 'Meldung, die im Fuß jeder Seite angezeigt wird.', +'settings_fullSearchEngine' => 'Verfahren für Volltext', +'settings_fullSearchEngine_desc' => 'Setzt das Verfahren, welches für die Volltextsuche verwendet wird.', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gast-ID', 'settings_guestID_desc' => 'Id des Gast-Benutzers, wenn man sich als \'guest\' anmeldet.', 'settings_httpRoot' => 'HTTP Wurzelverzeichnis', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 0f79f30c9..0d6f915fe 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1234), dgrutsch (3), netixw (14) +// Translators: Admin (1238), dgrutsch (3), netixw (14) $text = array( 'accept' => 'Accept', @@ -1027,6 +1027,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'First day of the week', 'settings_footNote' => 'Foot Note', 'settings_footNote_desc' => 'Message to display at the bottom of every page', +'settings_fullSearchEngine' => 'Fulltext engine', +'settings_fullSearchEngine_desc' => 'Set the method used for the fulltext search.', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Guest ID', 'settings_guestID_desc' => 'ID of guest-user used when logged in as guest (mostly no need to change)', 'settings_httpRoot' => 'Http Root', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 7ded19a0e..45e80b975 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (950), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (952), angel (123), francisco (2), jaimem (14) $text = array( 'accept' => 'Aceptar', @@ -1006,6 +1006,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primer día de la semana', 'settings_footNote' => 'Nota del pie', 'settings_footNote_desc' => 'Mensaje para mostrar en la parte inferior de cada página', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID de invitado', 'settings_guestID_desc' => 'ID del usuario invitado cuando se conecta como invitado (mayormente no necesita cambiarlo)', 'settings_httpRoot' => 'Raíz Http', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index a516e2a6c..02d961417 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (972), jeromerobert (50), lonnnew (9) +// Translators: Admin (974), jeromerobert (50), lonnnew (9) $text = array( 'accept' => 'Accepter', @@ -982,6 +982,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Premier jour de la semaine', 'settings_footNote' => 'Note de bas de page', 'settings_footNote_desc' => 'Message à afficher au bas de chaque page', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID invité', 'settings_guestID_desc' => 'ID de l\'invité utilisé lorsque vous êtes connecté en tant qu\'invité (la plupart du temps pas besoin de changer)', 'settings_httpRoot' => 'Http Root', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index c6153e8c4..35626c8e0 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1020) +// Translators: Admin (1022) $text = array( 'accept' => 'Prihvati', @@ -1012,6 +1012,10 @@ Internet poveznica: [url]', 'settings_firstDayOfWeek_desc' => 'Prvi dan u tjednu', 'settings_footNote' => 'Fusnota', 'settings_footNote_desc' => 'Poruka koja se prikazuje na dnu svake stranice', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID gosta', 'settings_guestID_desc' => 'ID gost korisnika koja se koristi kada je prijavljen kao gost (uglavnom se ne treba mijenjati)', 'settings_httpRoot' => 'Http korijen', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index d23a567b3..d90f9e559 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (558), ribaz (1019) +// Translators: Admin (560), ribaz (1019) $text = array( 'accept' => 'Elfogad', @@ -1005,6 +1005,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'A hét első napja', 'settings_footNote' => 'Lábjegyzet', 'settings_footNote_desc' => 'Minden oldal alján megjelenő üzenet', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Vendég azonosító', 'settings_guestID_desc' => 'A vendég felhasználó azonosítója ami a vendégként történő bejelentkezéskor lesz használva (általában nem szükséges módosítani)', 'settings_httpRoot' => 'Http gyökér', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index fbdf5d7c5..3b270e345 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1490), s.pnt (26) +// Translators: Admin (1492), s.pnt (26) $text = array( 'accept' => 'Accetta', @@ -1029,6 +1029,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primo giorno della settimana', 'settings_footNote' => 'Pié di pagina', 'settings_footNote_desc' => 'Messaggio da visualizzare alla fine di ogni pagina', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID Ospite', 'settings_guestID_desc' => 'ID o utenza ospite utilizzata quando collegati al sito come ospite (da cambiare solo in casi eccezionali).', 'settings_httpRoot' => 'Cartella web principale', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index c1321142f..59d15a243 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (933), daivoc (356) +// Translators: Admin (935), daivoc (356) $text = array( 'accept' => '동의', @@ -1020,6 +1020,10 @@ URL : [url]', 'settings_firstDayOfWeek_desc' => '요일의 첫날', 'settings_footNote' => 'Foot Note', 'settings_footNote_desc' => '메시지는 모든 페이지 하단에 표시', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Guest ID', 'settings_guestID_desc' => 'Guest로 로그인 할 때 사용하는 ID (변경이 필요치 않음)', 'settings_httpRoot' => 'HTTP Root', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 97971ce4d..92f301b92 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (701), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (703), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( 'accept' => 'Accept', @@ -997,6 +997,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Eerste dag van de week', 'settings_footNote' => 'Onderschrift', 'settings_footNote_desc' => 'Bericht om onderop elke pagina te tonen', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gast ID', 'settings_guestID_desc' => 'ID van gastgebruiker gebruikt indien ingelogd als gast (meestal geen wijziging nodig)', 'settings_httpRoot' => 'Http Basis', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 66ad1f4ad..03e66f9e2 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (708), netixw (84), romi (93), uGn (112) +// Translators: Admin (710), netixw (84), romi (93), uGn (112) $text = array( 'accept' => 'Akceptuj', @@ -985,6 +985,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Pierwszy dzień tygodnia', 'settings_footNote' => 'Treść stopki', 'settings_footNote_desc' => 'Wiadomość wyświetlana na dole każdej strony', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID gościa', 'settings_guestID_desc' => 'ID gościa używane kiedy gość jest zalogowany (zazwyczaj nie wymaga zmiany)', 'settings_httpRoot' => 'Http Root', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 0c429e82f..e4f203707 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (885), flaviove (627), lfcristofoli (352) +// Translators: Admin (887), flaviove (627), lfcristofoli (352) $text = array( 'accept' => 'Aceitar', @@ -1003,6 +1003,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primeiro dia da semana', 'settings_footNote' => 'Nota de Pé', 'settings_footNote_desc' => 'Mensagem a ser exibida na parte inferior de cada página', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID convidado', 'settings_guestID_desc' => 'ID do usuário-convidado usada quando conectado como convidado (na maioria das vezes não há necessidade de mudar)', 'settings_httpRoot' => 'Raiz Http', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 099ead925..ad896138b 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1005), balan (87) +// Translators: Admin (1007), balan (87) $text = array( 'accept' => 'Accept', @@ -1028,6 +1028,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Prima zi a săptămânii', 'settings_footNote' => 'Notă de subsol', 'settings_footNote_desc' => 'Mesaj pentru afișat în partea de jos a fiecarei pagini', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID oaspete', 'settings_guestID_desc' => 'ID-ul utilizatorului oaspete folosit când la Logarea ca oaspete (de cele mai multe ori nu este nevoie să se schimbe)', 'settings_httpRoot' => 'Http Root', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 53f7a45c7..07e724039 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1258) +// Translators: Admin (1260) $text = array( 'accept' => 'Принять', @@ -996,6 +996,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Первый день недели.', 'settings_footNote' => 'Нижний колонтитул', 'settings_footNote_desc' => 'Сообщение, показываемое внизу каждой страницы.', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Идентификатор гостя', 'settings_guestID_desc' => 'Идентификатор гостя (можно не изменять).', 'settings_httpRoot' => 'Корень http', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 16ecf9254..f6a41192c 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (476) +// Translators: Admin (478) $text = array( 'accept' => 'Prijať', @@ -856,6 +856,10 @@ $text = array( 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index b216bec74..7234aa0c8 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1091), tmichelfelder (106) +// Translators: Admin (1093), tmichelfelder (106) $text = array( 'accept' => 'Godkänn', @@ -991,6 +991,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Första dagen i veckan', 'settings_footNote' => 'Fotnot', 'settings_footNote_desc' => 'Meddelande som visas på slutet av varje sida', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Gäst-ID', 'settings_guestID_desc' => 'ID som används för inloggad gästanvändare (behöver oftast inte ändras)', 'settings_httpRoot' => 'Http-Root', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 4f1a7d63b..cca775cb1 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1004), aydin (83) +// Translators: Admin (1006), aydin (83) $text = array( 'accept' => 'Kabul', @@ -1007,6 +1007,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Haftanın ilk günü', 'settings_footNote' => 'Dipnot', 'settings_footNote_desc' => 'Her sayfanın en altında görünecek mesaj', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Misafir ID', 'settings_guestID_desc' => 'Misafir kullanıcı için ID (genelde değiştirmek gerekmez)', 'settings_httpRoot' => 'Http Kök dizini', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 07f922e5e..e3c508c6c 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1128) +// Translators: Admin (1130) $text = array( 'accept' => 'Прийняти', @@ -1018,6 +1018,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Перший день тижня.', 'settings_footNote' => 'Нижній колонтитул', 'settings_footNote_desc' => 'Повідомлення, яке відображається внизу кожної сторінки.', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'Ідентифікатор гостя', 'settings_guestID_desc' => 'Ідентифікатор гостя (можна не змінювати).', 'settings_httpRoot' => 'Корінь http', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 7332cfa9c..3234d7fe1 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (585), fengjohn (5) +// Translators: Admin (587), fengjohn (5) $text = array( 'accept' => '接受', @@ -862,6 +862,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '附注', 'settings_footNote_desc' => '显示在每个页面底部的信息', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index ca136c888..8e7109383 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2336) +// Translators: Admin (2338) $text = array( 'accept' => '接受', @@ -860,6 +860,10 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => '', 'settings_footNote' => '', 'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => 'Zend Lucene', +'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', From 0f82c5462634c46085f560ded7cb4addc8fd3451 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 10:32:55 +0200 Subject: [PATCH 077/107] add missing SQLiteFTS.php to package --- SeedDMS_SQLiteFTS/package.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml index 614df9222..41e5c793b 100644 --- a/SeedDMS_SQLiteFTS/package.xml +++ b/SeedDMS_SQLiteFTS/package.xml @@ -49,6 +49,9 @@ initial release + + + From 4a69c1258e03eddc1f1a40654397ddb786effb07 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 13 Aug 2015 11:50:49 +0200 Subject: [PATCH 078/107] use variable length input fields --- views/bootstrap/class.Settings.php | 111 ++++++++++++++++------------- 1 file changed, 63 insertions(+), 48 deletions(-) diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 41869356b..9b9f6b46c 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -31,6 +31,21 @@ require_once("class.Bootstrap.php"); */ class SeedDMS_View_Settings extends SeedDMS_Bootstrap_Style { + protected function showTextField($name, $value, $type='') { /* {{{ */ + if($type != 'password' && strlen($value) > 80) + echo ''; + elseif(strlen($value) > 40) + echo ''; + elseif(strlen($value) > 30) + echo ''; + elseif(strlen($value) > 18) + echo ''; + elseif(strlen($value) > 12) + echo ''; + else + echo ''; + } /* }}} */ + function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; @@ -80,11 +95,11 @@ if(!is_writeable($settings->_configFilePath)) { "> - + "> - + "> @@ -126,11 +141,11 @@ if(!is_writeable($settings->_configFilePath)) { "> - + "> - + @@ -393,23 +408,23 @@ if(!is_writeable($settings->_configFilePath)) { "> - + "> - + "> - + "> - + "> - +
:showTextField('siteName', $settings->_siteName); ?>
:showTextField("footNote", $settings->_footNote); ?>
:
:showTextField("previewWidthList", $settings->_previewWidthList); ?>
:showTextField("previewWidthDetail", $settings->_previewWidthDetail); ?>
:showTextField("dbDriver", $settings->_dbDriver); ?>
:showTextField("dbHostname", $settings->_dbHostname); ?>
:showTextField("dbDatabase", $settings->_dbDatabase); ?>
:showTextField("dbUser", $settings->_dbUser); ?>
:showTextField("dbPass", $settings->_dbPass, 'password'); ?>