diff --git a/bin/scheduler.php b/bin/scheduler.php index 177a032..0de3b07 100644 --- a/bin/scheduler.php +++ b/bin/scheduler.php @@ -1,6 +1,6 @@ get('externalBinary/php'); + $phpPath = KTUtil::checkForStackCommand('externalBinary/php'); + //$config->get('externalBinary/php'); // being protective as some scripts work on relative paths $dirname = dirname($file); diff --git a/config/config.ini b/config/config.ini index afd9d78..6a6b2e7 100644 --- a/config/config.ini +++ b/config/config.ini @@ -73,6 +73,9 @@ useNewDashboard = default ; Defaults to /usr/share/file/magic magicDatabase = default +; The interval in seconds between each iteration of the scheduler +schedulerInterval = 30 + [dashboard] ; Display the "Your Checked-out Documents" dashlet even when empty. ; Defaults to false @@ -302,7 +305,7 @@ javaLuceneURL = default [openoffice] ; The host on which open office is installed -; defaults to 127.0.0.1 +; defaults to 127.0.0.1 host = default ; The port on which open office is listening diff --git a/ktapi/KTAPIDocument.inc.php b/ktapi/KTAPIDocument.inc.php index 55e9492..56e26a7 100644 --- a/ktapi/KTAPIDocument.inc.php +++ b/ktapi/KTAPIDocument.inc.php @@ -1605,7 +1605,7 @@ class KTAPI_Document extends KTAPI_FolderItem $detail['is_immutable'] = (bool) $document->getImmutable(); // check permissions - $detail['permissions'] = KTWSAPI_Document::get_permission_string($document); + $detail['permissions'] = KTAPI_Document::get_permission_string($document); // get workflow name $workflowid = $document->getWorkflowId(); diff --git a/ktapi/KTAPIFolder.inc.php b/ktapi/KTAPIFolder.inc.php index 99b02bb..c32acae 100644 --- a/ktapi/KTAPIFolder.inc.php +++ b/ktapi/KTAPIFolder.inc.php @@ -399,7 +399,7 @@ class KTAPI_Folder extends KTAPI_FolderItem 'version' => 'n/a', 'is_immutable'=> 'n/a', - 'permissions' => KTWSAPI_Folder::get_permission_string($folder), + 'permissions' => KTAPI_Folder::get_permission_string($folder), 'workflow'=>'n/a', 'workflow_state'=>'n/a', @@ -533,7 +533,7 @@ class KTAPI_Folder extends KTAPI_FolderItem 'version' => $document->getMajorVersionNumber() . '.' . $document->getMinorVersionNumber(), 'is_immutable'=> $document->getImmutable()?'true':'false', - 'permissions' => KTWSAPI_Document::get_permission_string($document), + 'permissions' => KTAPI_Document::get_permission_string($document), 'workflow'=> $workflow, 'workflow_state'=> $state, diff --git a/lib/browse/BrowseColumns.inc.php b/lib/browse/BrowseColumns.inc.php index 7589245..8610226 100644 --- a/lib/browse/BrowseColumns.inc.php +++ b/lib/browse/BrowseColumns.inc.php @@ -115,7 +115,7 @@ class TitleColumn extends BrowseColumn { } function renderFolderLink($aDataRow) { - $outStr = ''; + $outStr = ''; $outStr .= htmlentities($aDataRow['folder']->getName(), ENT_NOQUOTES, 'UTF-8'); $outStr .= ' '; return $outStr; diff --git a/plugins/browseabledashlet/templates/browseabledashlet/dashlet.smarty b/plugins/browseabledashlet/templates/browseabledashlet/dashlet.smarty index adef814..d247585 100644 --- a/plugins/browseabledashlet/templates/browseabledashlet/dashlet.smarty +++ b/plugins/browseabledashlet/templates/browseabledashlet/dashlet.smarty @@ -10,7 +10,7 @@ {foreach from=$folders item=oFolder} getId()}{/capture} + class="contenttype folder">getId()}{/capture} href="{ktLink base="browse.php" query="fFolderId=`$fid`"}">{$oFolder->getName()|sanitize} {/foreach} diff --git a/plugins/ktcore/KTBulkActions.php b/plugins/ktcore/KTBulkActions.php index e0e3800..58da917 100644 --- a/plugins/ktcore/KTBulkActions.php +++ b/plugins/ktcore/KTBulkActions.php @@ -916,6 +916,23 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction { $oDocumentTransaction = new DocumentTransaction($oEntity, "Document part of bulk checkout", 'ktstandard.transactions.check_out', array()); $oDocumentTransaction->create(); } + + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate'); + foreach ($aTriggers as $aTrigger) { + $sTrigger = $aTrigger[0]; + $oTrigger = new $sTrigger; + $aInfo = array( + 'document' => $oEntity, + ); + $oTrigger->setInfo($aInfo); + $ret = $oTrigger->postValidate(); + if (PEAR::isError($ret)) { + return $ret; + } + } + $oEntity->setFileName('outterfile.pdf'); + $this->oZip->addDocumentToZip($oEntity); } @@ -1005,6 +1022,24 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction { $oDocumentTransaction = new DocumentTransaction($oDocument, 'Document part of bulk checkout', 'ktstandard.transactions.check_out', array()); $oDocumentTransaction->create(); } + + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate'); + foreach ($aTriggers as $aTrigger) { + $sTrigger = $aTrigger[0]; + $oTrigger = new $sTrigger; + $aInfo = array( + 'document' => $oDocument, + ); + $oTrigger->setInfo($aInfo); + $ret = $oTrigger->postValidate(); + if (PEAR::isError($ret)) { + return $ret; + } + } + + $oDocument->setFileName('innerfile.pdf'); + $sDocFolderId = $oDocument->getFolderID(); $oFolder = isset($aFolderObjects[$sDocFolderId]) ? $aFolderObjects[$sDocFolderId] : Folder::get($sDocFolderId); $this->oZip->addDocumentToZip($oDocument, $oFolder); diff --git a/plugins/ktcore/KTColumns.inc.php b/plugins/ktcore/KTColumns.inc.php index 2372e42..d9b7235 100644 --- a/plugins/ktcore/KTColumns.inc.php +++ b/plugins/ktcore/KTColumns.inc.php @@ -88,7 +88,7 @@ class AdvancedTitleColumn extends AdvancedColumn { } if($this->link_folders) { - $outStr = '' . $outStr . ''; + $outStr = '' . $outStr . ''; } return $outStr; } diff --git a/plugins/ktcore/KTDocumentActions.php b/plugins/ktcore/KTDocumentActions.php index 1f19c5c..6c0eb53 100644 --- a/plugins/ktcore/KTDocumentActions.php +++ b/plugins/ktcore/KTDocumentActions.php @@ -172,7 +172,7 @@ class KTDocumentVersionHistoryAction extends KTDocumentAction { if($isActive){ $oRegistry =& KTPluginRegistry::getSingleton(); $oPlugin =& $oRegistry->getPlugin('document.comparison.plugin'); - + if($oPlugin->load()){ $sUrl = $oPlugin->getPagePath('DocumentComparison'); $file = $oPlugin->_aPages['document.comparison.plugin/DocumentComparison'][2]; @@ -497,6 +497,20 @@ class KTDocumentCheckOutAction extends KTDocumentAction { $sReason = KTUtil::arrayGet($_REQUEST, 'reason'); $this->oValidator->notEmpty($sReason); + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate'); + foreach ($aTriggers as $aTrigger) { + $sTrigger = $aTrigger[0]; + $oTrigger = new $sTrigger; + $aInfo = array( + 'document' => $oDocument, + ); + $oTrigger->setInfo($aInfo); + $ret = $oTrigger->postValidate(); + if (PEAR::isError($ret)) { + return $ret; + } + } $oStorage =& KTStorageManagerUtil::getSingleton(); $oStorage->download($this->oDocument, true); diff --git a/plugins/tagcloud/TagCloudTriggers.php b/plugins/tagcloud/TagCloudTriggers.php index 0d63da3..7451a3c 100644 --- a/plugins/tagcloud/TagCloudTriggers.php +++ b/plugins/tagcloud/TagCloudTriggers.php @@ -5,32 +5,32 @@ * KnowledgeTree Open Source Edition * Document Management Made Simple * Copyright (C) 2004 - 2008 The Jam Warehouse Software (Pty) Limited - * + * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * + * * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. - * + * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. - * + * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by - * KnowledgeTree" logo and retain the original copyright notice. If the display of the + * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices - * must display the words "Powered by KnowledgeTree" and retain the original - * copyright notice. + * must display the words "Powered by KnowledgeTree" and retain the original + * copyright notice. * Contributor( s): ______________________________________ * */ @@ -56,11 +56,11 @@ class KTAddDocumentTrigger { */ function postValidate() { global $default; - $oDocument =& $this->aInfo['document']; + $oDocument =& $this->aInfo['document']; $aMeta = & $this->aInfo['aOptions']; - - $iDocId = $oDocument->getID(); - + + $iDocId = $oDocument->getID(); + // get tag id from document_fields table where name = Tag $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' . 'WHERE df.name = \'Tag\''; @@ -77,7 +77,7 @@ class KTAddDocumentTrigger { { foreach($aMeta['metadata'] as $aMetaData) { - + $oProxy = $aMetaData[0]; if($oProxy->iId == $sTags) { @@ -89,35 +89,39 @@ class KTAddDocumentTrigger { $words_table = KTUtil::getTableName('tag_words'); $tagString = str_replace(' ', '', $tagString); $tags = explode(',',$tagString); - + $aTagIds = array(); - + foreach($tags as $sTag) { - $sTag = mb_strtolower(trim($sTag), mb_detect_encoding($sTag)); + $sTag = trim($sTag); + $sTag = utf8_decode($sTag); + $sTag = mb_strtolower($sTag); + $sTag = utf8_encode($sTag); + $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag))); - + if (PEAR::isError($res)) { return $res; } - - if (is_null($res)) + + if (is_null($res)) { $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag)); $aTagIds[$sTag] = $id; } - else + else { $aTagIds[$sTag] = $res['id']; } } - + $doc_tags = KTUtil::getTableName('document_tags'); - + foreach($aTagIds as $sTag=>$tagid) { DBUtil::autoInsert($doc_tags, array( - + 'document_id'=>$iDocId, 'tag_id'=>$tagid), array('noid'=>true)); @@ -150,11 +154,11 @@ class KTEditDocumentTrigger { */ function postValidate() { global $default; - $oDocument =& $this->aInfo['document']; + $oDocument =& $this->aInfo['document']; $aMeta = & $this->aInfo['aOptions']; // get document id - $iDocId = $oDocument->getID(); - + $iDocId = $oDocument->getID(); + // get all tags that are linked to the document $sQuery = 'SELECT tw.id FROM tag_words AS tw, document_tags AS dt, documents AS d ' . 'WHERE dt.tag_id = tw.id ' . @@ -178,7 +182,7 @@ class KTEditDocumentTrigger { return false; } } - // proceed to add the tags as per normaly + // proceed to add the tags as per normal $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' . 'WHERE df.name = \'Tag\''; @@ -206,32 +210,35 @@ class KTEditDocumentTrigger { $words_table = KTUtil::getTableName('tag_words'); $tagString = str_replace(' ', ' ', $tagString); $tags = explode(',',$tagString); - + $aTagIds = array(); - + foreach($tags as $sTag) { - $sTag=strtolower(trim($sTag)); - + $sTag = trim($sTag); + $sTag = utf8_decode($sTag); + $sTag = mb_strtolower($sTag); + $sTag = utf8_encode($sTag); + $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag))); - + if (PEAR::isError($res)) { return $res; } - - if (is_null($res)) + + if (is_null($res)) { $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag)); $aTagIds[$sTag] = $id; } - else + else { $aTagIds[$sTag] = $res['id']; } } - + $doc_tags = KTUtil::getTableName('document_tags'); - + foreach($aTagIds as $sTag=>$tagid) { DBUtil::autoInsert($doc_tags, array( diff --git a/resources/css/kt-contenttypes.css b/resources/css/kt-contenttypes.css index 405be72..b08e3d6 100644 --- a/resources/css/kt-contenttypes.css +++ b/resources/css/kt-contenttypes.css @@ -11,7 +11,9 @@ padding-top: 5px; padding-bottom: 5px; padding-right: 0; - margin-right: 25px; + /*This margin-right has been moved to kt-framing + under contenttype_href to fix a display bug in IE 6 */ + /*margin-right: 25px;*/ } .contenttype.office { background-image: url(../../resources/mimetypes/office.png); } diff --git a/resources/css/kt-framing.css b/resources/css/kt-framing.css index cb8f8d3..0f3da0c 100644 --- a/resources/css/kt-framing.css +++ b/resources/css/kt-framing.css @@ -2117,4 +2117,10 @@ body #content #add_dashlet top: 400px; left: 500px; display: block; +} + +/*contenttype_href class style is used to stop underline error on a hyperlink in IE*/ +.contenttype_href +{ + margin-right: 25px; } \ No newline at end of file diff --git a/templates/ktcore/principals/about.smarty b/templates/ktcore/principals/about.smarty index e11e0b0..3e64254 100644 --- a/templates/ktcore/principals/about.smarty +++ b/templates/ktcore/principals/about.smarty @@ -67,6 +67,9 @@ Call Sales: +1 415 670-9759 Artur Kiwa
  • + Michael Knight +
  • +
  • Rogerio Kohler
  • @@ -124,9 +127,15 @@ Call Sales: +1 415 670-9759 Phillip Steinbachs
  • + Tahir Tahang +
  • +
  • Paul Trgina
  • + Harry Tsio +
  • +
  • Bjarte Kalstveit Vebjørnsen
  • diff --git a/templates/ktcore/principals/unitadmin.smarty b/templates/ktcore/principals/unitadmin.smarty index 48d6a46..ca362a4 100644 --- a/templates/ktcore/principals/unitadmin.smarty +++ b/templates/ktcore/principals/unitadmin.smarty @@ -27,7 +27,7 @@ membership of groups that belong to the unit.{/i18n}

    {$oUnit->getName()} {i18n}Edit{/i18n} {i18n}Delete{/i18n} - {assign var=oFolder value=$oUnit->getFolder()}{$oFolder->getName()}