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()} |