Commit 4d6f17842f32d665b26d345228da31f88699f124

Authored by kevin_fourie
1 parent fd047c5d

Merged in from DEV trunk...

KTS-2841
"Document linked to a tag (with non-alphaneumeric characters) not returned when the tag is navigated."
Fixed. Replaced the strtolower.

Committed by: Megan Watson
Reviewed by: Jonathan Byrne

KTS-3051
"Scheduler running time to be configurable in the config file"
Fixed. Added the config setting.

Committed by: Megan Watson
Reviewed by: Jonathan Byrne

KTS-3049
"Plugin is unable to change filename during checkout"
Fixed. Triggers on now checked on the download. They check for the action 'checkoutDownload'.

Committed by: Megan Watson
Reviewed by: Jonathan Byrne

WSA-113
"Implement returning of basic permissions returned by get_listing() and document detail."
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

WSA-113
"Implement returning of basic permissions returned by get_listing() and document detail."
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

KTS-3147
"Scheduler calls the default php and doesn't check for the stack php"
Fixed. It now checks for the stack php first.

Committed by: Megan Watson
Reviewed by: Conrad Vermeulen

Added new contributors to about page.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@8247 c91229c3-7414-0410-bfa2-8a42b809f60b
bin/scheduler.php
1 <?php 1 <?php
2 /** 2 /**
3 - * $Id: scheduler.php 8085 2008-02-18 15:22:27Z kevin_fourie $ 3 + * $Id: scheduler.php 8245 2008-03-11 13:06:57Z megan_w $
4 * 4 *
5 * KnowledgeTree Open Source Edition 5 * KnowledgeTree Open Source Edition
6 * Document Management Made Simple 6 * Document Management Made Simple
@@ -193,7 +193,8 @@ if (empty($aList)) @@ -193,7 +193,8 @@ if (empty($aList))
193 if ($ext == 'php') 193 if ($ext == 'php')
194 { 194 {
195 $config = KTConfig::getSingleton(); 195 $config = KTConfig::getSingleton();
196 - $phpPath = $config->get('externalBinary/php'); 196 + $phpPath = KTUtil::checkForStackCommand('externalBinary/php');
  197 + //$config->get('externalBinary/php');
197 198
198 // being protective as some scripts work on relative paths 199 // being protective as some scripts work on relative paths
199 $dirname = dirname($file); 200 $dirname = dirname($file);
config/config.ini
@@ -73,6 +73,9 @@ useNewDashboard = default @@ -73,6 +73,9 @@ useNewDashboard = default
73 ; Defaults to /usr/share/file/magic 73 ; Defaults to /usr/share/file/magic
74 magicDatabase = default 74 magicDatabase = default
75 75
  76 +; The interval in seconds between each iteration of the scheduler
  77 +schedulerInterval = 30
  78 +
76 [dashboard] 79 [dashboard]
77 ; Display the "Your Checked-out Documents" dashlet even when empty. 80 ; Display the "Your Checked-out Documents" dashlet even when empty.
78 ; Defaults to false 81 ; Defaults to false
@@ -302,7 +305,7 @@ javaLuceneURL = default @@ -302,7 +305,7 @@ javaLuceneURL = default
302 305
303 [openoffice] 306 [openoffice]
304 ; The host on which open office is installed 307 ; The host on which open office is installed
305 -; defaults to 127.0.0.1 308 +; defaults to 127.0.0.1
306 host = default 309 host = default
307 310
308 ; The port on which open office is listening 311 ; The port on which open office is listening
ktapi/KTAPIDocument.inc.php
@@ -1605,7 +1605,7 @@ class KTAPI_Document extends KTAPI_FolderItem @@ -1605,7 +1605,7 @@ class KTAPI_Document extends KTAPI_FolderItem
1605 $detail['is_immutable'] = (bool) $document->getImmutable(); 1605 $detail['is_immutable'] = (bool) $document->getImmutable();
1606 1606
1607 // check permissions 1607 // check permissions
1608 - $detail['permissions'] = KTWSAPI_Document::get_permission_string($document); 1608 + $detail['permissions'] = KTAPI_Document::get_permission_string($document);
1609 1609
1610 // get workflow name 1610 // get workflow name
1611 $workflowid = $document->getWorkflowId(); 1611 $workflowid = $document->getWorkflowId();
ktapi/KTAPIFolder.inc.php
@@ -399,7 +399,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -399,7 +399,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
399 'version' => 'n/a', 399 'version' => 'n/a',
400 400
401 'is_immutable'=> 'n/a', 401 'is_immutable'=> 'n/a',
402 - 'permissions' => KTWSAPI_Folder::get_permission_string($folder), 402 + 'permissions' => KTAPI_Folder::get_permission_string($folder),
403 403
404 'workflow'=>'n/a', 404 'workflow'=>'n/a',
405 'workflow_state'=>'n/a', 405 'workflow_state'=>'n/a',
@@ -533,7 +533,7 @@ class KTAPI_Folder extends KTAPI_FolderItem @@ -533,7 +533,7 @@ class KTAPI_Folder extends KTAPI_FolderItem
533 'version' => $document->getMajorVersionNumber() . '.' . $document->getMinorVersionNumber(), 533 'version' => $document->getMajorVersionNumber() . '.' . $document->getMinorVersionNumber(),
534 534
535 'is_immutable'=> $document->getImmutable()?'true':'false', 535 'is_immutable'=> $document->getImmutable()?'true':'false',
536 - 'permissions' => KTWSAPI_Document::get_permission_string($document), 536 + 'permissions' => KTAPI_Document::get_permission_string($document),
537 537
538 'workflow'=> $workflow, 538 'workflow'=> $workflow,
539 'workflow_state'=> $state, 539 'workflow_state'=> $state,
lib/browse/BrowseColumns.inc.php
@@ -115,7 +115,7 @@ class TitleColumn extends BrowseColumn { @@ -115,7 +115,7 @@ class TitleColumn extends BrowseColumn {
115 } 115 }
116 116
117 function renderFolderLink($aDataRow) { 117 function renderFolderLink($aDataRow) {
118 - $outStr = '<a href="' . $this->buildFolderLink($aDataRow) . '">'; 118 + $outStr = '<a class="contenttype_href" href="' . $this->buildFolderLink($aDataRow) . '">';
119 $outStr .= htmlentities($aDataRow['folder']->getName(), ENT_NOQUOTES, 'UTF-8'); 119 $outStr .= htmlentities($aDataRow['folder']->getName(), ENT_NOQUOTES, 'UTF-8');
120 $outStr .= '</a> '; 120 $outStr .= '</a> ';
121 return $outStr; 121 return $outStr;
plugins/browseabledashlet/templates/browseabledashlet/dashlet.smarty
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 <tbody> 10 <tbody>
11 {foreach from=$folders item=oFolder} 11 {foreach from=$folders item=oFolder}
12 <tr class="browse_column {cycle values=odd,even}"><td><span 12 <tr class="browse_column {cycle values=odd,even}"><td><span
13 - class="contenttype folder"><a {capture assign=fid}{$oFolder->getId()}{/capture} 13 + class="contenttype folder"><a class="contenttype_href" {capture assign=fid}{$oFolder->getId()}{/capture}
14 href="{ktLink base="browse.php" query="fFolderId=`$fid`"}">{$oFolder->getName()|sanitize}</a> </span> 14 href="{ktLink base="browse.php" query="fFolderId=`$fid`"}">{$oFolder->getName()|sanitize}</a> </span>
15 </td></tr> 15 </td></tr>
16 {/foreach} 16 {/foreach}
plugins/ktcore/KTBulkActions.php
@@ -916,6 +916,23 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction { @@ -916,6 +916,23 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction {
916 $oDocumentTransaction = new DocumentTransaction($oEntity, "Document part of bulk checkout", 'ktstandard.transactions.check_out', array()); 916 $oDocumentTransaction = new DocumentTransaction($oEntity, "Document part of bulk checkout", 'ktstandard.transactions.check_out', array());
917 $oDocumentTransaction->create(); 917 $oDocumentTransaction->create();
918 } 918 }
  919 +
  920 + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
  921 + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate');
  922 + foreach ($aTriggers as $aTrigger) {
  923 + $sTrigger = $aTrigger[0];
  924 + $oTrigger = new $sTrigger;
  925 + $aInfo = array(
  926 + 'document' => $oEntity,
  927 + );
  928 + $oTrigger->setInfo($aInfo);
  929 + $ret = $oTrigger->postValidate();
  930 + if (PEAR::isError($ret)) {
  931 + return $ret;
  932 + }
  933 + }
  934 + $oEntity->setFileName('outterfile.pdf');
  935 +
919 $this->oZip->addDocumentToZip($oEntity); 936 $this->oZip->addDocumentToZip($oEntity);
920 } 937 }
921 938
@@ -1005,6 +1022,24 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction { @@ -1005,6 +1022,24 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction {
1005 $oDocumentTransaction = new DocumentTransaction($oDocument, 'Document part of bulk checkout', 'ktstandard.transactions.check_out', array()); 1022 $oDocumentTransaction = new DocumentTransaction($oDocument, 'Document part of bulk checkout', 'ktstandard.transactions.check_out', array());
1006 $oDocumentTransaction->create(); 1023 $oDocumentTransaction->create();
1007 } 1024 }
  1025 +
  1026 + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
  1027 + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate');
  1028 + foreach ($aTriggers as $aTrigger) {
  1029 + $sTrigger = $aTrigger[0];
  1030 + $oTrigger = new $sTrigger;
  1031 + $aInfo = array(
  1032 + 'document' => $oDocument,
  1033 + );
  1034 + $oTrigger->setInfo($aInfo);
  1035 + $ret = $oTrigger->postValidate();
  1036 + if (PEAR::isError($ret)) {
  1037 + return $ret;
  1038 + }
  1039 + }
  1040 +
  1041 + $oDocument->setFileName('innerfile.pdf');
  1042 +
1008 $sDocFolderId = $oDocument->getFolderID(); 1043 $sDocFolderId = $oDocument->getFolderID();
1009 $oFolder = isset($aFolderObjects[$sDocFolderId]) ? $aFolderObjects[$sDocFolderId] : Folder::get($sDocFolderId); 1044 $oFolder = isset($aFolderObjects[$sDocFolderId]) ? $aFolderObjects[$sDocFolderId] : Folder::get($sDocFolderId);
1010 $this->oZip->addDocumentToZip($oDocument, $oFolder); 1045 $this->oZip->addDocumentToZip($oDocument, $oFolder);
plugins/ktcore/KTColumns.inc.php
@@ -88,7 +88,7 @@ class AdvancedTitleColumn extends AdvancedColumn { @@ -88,7 +88,7 @@ class AdvancedTitleColumn extends AdvancedColumn {
88 } 88 }
89 89
90 if($this->link_folders) { 90 if($this->link_folders) {
91 - $outStr = '<a href="' . $this->buildFolderLink($aDataRow) . '">' . $outStr . '</a>'; 91 + $outStr = '<a class="contenttype_href" href="' . $this->buildFolderLink($aDataRow) . '">' . $outStr . '</a>';
92 } 92 }
93 return $outStr; 93 return $outStr;
94 } 94 }
plugins/ktcore/KTDocumentActions.php
@@ -172,7 +172,7 @@ class KTDocumentVersionHistoryAction extends KTDocumentAction { @@ -172,7 +172,7 @@ class KTDocumentVersionHistoryAction extends KTDocumentAction {
172 if($isActive){ 172 if($isActive){
173 $oRegistry =& KTPluginRegistry::getSingleton(); 173 $oRegistry =& KTPluginRegistry::getSingleton();
174 $oPlugin =& $oRegistry->getPlugin('document.comparison.plugin'); 174 $oPlugin =& $oRegistry->getPlugin('document.comparison.plugin');
175 - 175 +
176 if($oPlugin->load()){ 176 if($oPlugin->load()){
177 $sUrl = $oPlugin->getPagePath('DocumentComparison'); 177 $sUrl = $oPlugin->getPagePath('DocumentComparison');
178 $file = $oPlugin->_aPages['document.comparison.plugin/DocumentComparison'][2]; 178 $file = $oPlugin->_aPages['document.comparison.plugin/DocumentComparison'][2];
@@ -497,6 +497,20 @@ class KTDocumentCheckOutAction extends KTDocumentAction { @@ -497,6 +497,20 @@ class KTDocumentCheckOutAction extends KTDocumentAction {
497 $sReason = KTUtil::arrayGet($_REQUEST, 'reason'); 497 $sReason = KTUtil::arrayGet($_REQUEST, 'reason');
498 $this->oValidator->notEmpty($sReason); 498 $this->oValidator->notEmpty($sReason);
499 499
  500 + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
  501 + $aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate');
  502 + foreach ($aTriggers as $aTrigger) {
  503 + $sTrigger = $aTrigger[0];
  504 + $oTrigger = new $sTrigger;
  505 + $aInfo = array(
  506 + 'document' => $oDocument,
  507 + );
  508 + $oTrigger->setInfo($aInfo);
  509 + $ret = $oTrigger->postValidate();
  510 + if (PEAR::isError($ret)) {
  511 + return $ret;
  512 + }
  513 + }
500 514
501 $oStorage =& KTStorageManagerUtil::getSingleton(); 515 $oStorage =& KTStorageManagerUtil::getSingleton();
502 $oStorage->download($this->oDocument, true); 516 $oStorage->download($this->oDocument, true);
plugins/tagcloud/TagCloudTriggers.php
@@ -5,32 +5,32 @@ @@ -5,32 +5,32 @@
5 * KnowledgeTree Open Source Edition 5 * KnowledgeTree Open Source Edition
6 * Document Management Made Simple 6 * Document Management Made Simple
7 * Copyright (C) 2004 - 2008 The Jam Warehouse Software (Pty) Limited 7 * Copyright (C) 2004 - 2008 The Jam Warehouse Software (Pty) Limited
8 - * 8 + *
9 * This program is free software; you can redistribute it and/or modify it under 9 * This program is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License version 3 as published by the 10 * the terms of the GNU General Public License version 3 as published by the
11 * Free Software Foundation. 11 * Free Software Foundation.
12 - * 12 + *
13 * This program is distributed in the hope that it will be useful, but WITHOUT 13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 15 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
16 * details. 16 * details.
17 - * 17 + *
18 * You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 - * 20 + *
21 * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, 21 * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place,
22 * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. 22 * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com.
23 - * 23 + *
24 * The interactive user interfaces in modified source and object code versions 24 * The interactive user interfaces in modified source and object code versions
25 * of this program must display Appropriate Legal Notices, as required under 25 * of this program must display Appropriate Legal Notices, as required under
26 * Section 5 of the GNU General Public License version 3. 26 * Section 5 of the GNU General Public License version 3.
27 - * 27 + *
28 * In accordance with Section 7(b) of the GNU General Public License version 3, 28 * In accordance with Section 7(b) of the GNU General Public License version 3,
29 * these Appropriate Legal Notices must retain the display of the "Powered by 29 * these Appropriate Legal Notices must retain the display of the "Powered by
30 - * KnowledgeTree" logo and retain the original copyright notice. If the display of the 30 + * KnowledgeTree" logo and retain the original copyright notice. If the display of the
31 * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices 31 * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices
32 - * must display the words "Powered by KnowledgeTree" and retain the original  
33 - * copyright notice. 32 + * must display the words "Powered by KnowledgeTree" and retain the original
  33 + * copyright notice.
34 * Contributor( s): ______________________________________ 34 * Contributor( s): ______________________________________
35 * 35 *
36 */ 36 */
@@ -56,11 +56,11 @@ class KTAddDocumentTrigger { @@ -56,11 +56,11 @@ class KTAddDocumentTrigger {
56 */ 56 */
57 function postValidate() { 57 function postValidate() {
58 global $default; 58 global $default;
59 - $oDocument =& $this->aInfo['document']; 59 + $oDocument =& $this->aInfo['document'];
60 $aMeta = & $this->aInfo['aOptions']; 60 $aMeta = & $this->aInfo['aOptions'];
61 -  
62 - $iDocId = $oDocument->getID();  
63 - 61 +
  62 + $iDocId = $oDocument->getID();
  63 +
64 // get tag id from document_fields table where name = Tag 64 // get tag id from document_fields table where name = Tag
65 $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' . 65 $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
66 'WHERE df.name = \'Tag\''; 66 'WHERE df.name = \'Tag\'';
@@ -77,7 +77,7 @@ class KTAddDocumentTrigger { @@ -77,7 +77,7 @@ class KTAddDocumentTrigger {
77 { 77 {
78 foreach($aMeta['metadata'] as $aMetaData) 78 foreach($aMeta['metadata'] as $aMetaData)
79 { 79 {
80 - 80 +
81 $oProxy = $aMetaData[0]; 81 $oProxy = $aMetaData[0];
82 if($oProxy->iId == $sTags) 82 if($oProxy->iId == $sTags)
83 { 83 {
@@ -89,35 +89,39 @@ class KTAddDocumentTrigger { @@ -89,35 +89,39 @@ class KTAddDocumentTrigger {
89 $words_table = KTUtil::getTableName('tag_words'); 89 $words_table = KTUtil::getTableName('tag_words');
90 $tagString = str_replace(' ', '', $tagString); 90 $tagString = str_replace(' ', '', $tagString);
91 $tags = explode(',',$tagString); 91 $tags = explode(',',$tagString);
92 - 92 +
93 $aTagIds = array(); 93 $aTagIds = array();
94 - 94 +
95 foreach($tags as $sTag) 95 foreach($tags as $sTag)
96 { 96 {
97 - $sTag = mb_strtolower(trim($sTag), mb_detect_encoding($sTag)); 97 + $sTag = trim($sTag);
  98 + $sTag = utf8_decode($sTag);
  99 + $sTag = mb_strtolower($sTag);
  100 + $sTag = utf8_encode($sTag);
  101 +
98 $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag))); 102 $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
99 - 103 +
100 if (PEAR::isError($res)) { 104 if (PEAR::isError($res)) {
101 return $res; 105 return $res;
102 } 106 }
103 -  
104 - if (is_null($res)) 107 +
  108 + if (is_null($res))
105 { 109 {
106 $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag)); 110 $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
107 $aTagIds[$sTag] = $id; 111 $aTagIds[$sTag] = $id;
108 } 112 }
109 - else 113 + else
110 { 114 {
111 $aTagIds[$sTag] = $res['id']; 115 $aTagIds[$sTag] = $res['id'];
112 } 116 }
113 } 117 }
114 - 118 +
115 $doc_tags = KTUtil::getTableName('document_tags'); 119 $doc_tags = KTUtil::getTableName('document_tags');
116 - 120 +
117 foreach($aTagIds as $sTag=>$tagid) 121 foreach($aTagIds as $sTag=>$tagid)
118 { 122 {
119 DBUtil::autoInsert($doc_tags, array( 123 DBUtil::autoInsert($doc_tags, array(
120 - 124 +
121 'document_id'=>$iDocId, 125 'document_id'=>$iDocId,
122 'tag_id'=>$tagid), 126 'tag_id'=>$tagid),
123 array('noid'=>true)); 127 array('noid'=>true));
@@ -150,11 +154,11 @@ class KTEditDocumentTrigger { @@ -150,11 +154,11 @@ class KTEditDocumentTrigger {
150 */ 154 */
151 function postValidate() { 155 function postValidate() {
152 global $default; 156 global $default;
153 - $oDocument =& $this->aInfo['document']; 157 + $oDocument =& $this->aInfo['document'];
154 $aMeta = & $this->aInfo['aOptions']; 158 $aMeta = & $this->aInfo['aOptions'];
155 // get document id 159 // get document id
156 - $iDocId = $oDocument->getID();  
157 - 160 + $iDocId = $oDocument->getID();
  161 +
158 // get all tags that are linked to the document 162 // get all tags that are linked to the document
159 $sQuery = 'SELECT tw.id FROM tag_words AS tw, document_tags AS dt, documents AS d ' . 163 $sQuery = 'SELECT tw.id FROM tag_words AS tw, document_tags AS dt, documents AS d ' .
160 'WHERE dt.tag_id = tw.id ' . 164 'WHERE dt.tag_id = tw.id ' .
@@ -178,7 +182,7 @@ class KTEditDocumentTrigger { @@ -178,7 +182,7 @@ class KTEditDocumentTrigger {
178 return false; 182 return false;
179 } 183 }
180 } 184 }
181 - // proceed to add the tags as per normaly 185 + // proceed to add the tags as per normal
182 $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' . 186 $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
183 'WHERE df.name = \'Tag\''; 187 'WHERE df.name = \'Tag\'';
184 188
@@ -206,32 +210,35 @@ class KTEditDocumentTrigger { @@ -206,32 +210,35 @@ class KTEditDocumentTrigger {
206 $words_table = KTUtil::getTableName('tag_words'); 210 $words_table = KTUtil::getTableName('tag_words');
207 $tagString = str_replace(' ', ' ', $tagString); 211 $tagString = str_replace(' ', ' ', $tagString);
208 $tags = explode(',',$tagString); 212 $tags = explode(',',$tagString);
209 - 213 +
210 $aTagIds = array(); 214 $aTagIds = array();
211 - 215 +
212 foreach($tags as $sTag) 216 foreach($tags as $sTag)
213 { 217 {
214 - $sTag=strtolower(trim($sTag));  
215 - 218 + $sTag = trim($sTag);
  219 + $sTag = utf8_decode($sTag);
  220 + $sTag = mb_strtolower($sTag);
  221 + $sTag = utf8_encode($sTag);
  222 +
216 $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag))); 223 $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
217 - 224 +
218 if (PEAR::isError($res)) { 225 if (PEAR::isError($res)) {
219 return $res; 226 return $res;
220 } 227 }
221 -  
222 - if (is_null($res)) 228 +
  229 + if (is_null($res))
223 { 230 {
224 $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag)); 231 $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
225 $aTagIds[$sTag] = $id; 232 $aTagIds[$sTag] = $id;
226 } 233 }
227 - else 234 + else
228 { 235 {
229 $aTagIds[$sTag] = $res['id']; 236 $aTagIds[$sTag] = $res['id'];
230 } 237 }
231 } 238 }
232 - 239 +
233 $doc_tags = KTUtil::getTableName('document_tags'); 240 $doc_tags = KTUtil::getTableName('document_tags');
234 - 241 +
235 foreach($aTagIds as $sTag=>$tagid) 242 foreach($aTagIds as $sTag=>$tagid)
236 { 243 {
237 DBUtil::autoInsert($doc_tags, array( 244 DBUtil::autoInsert($doc_tags, array(
resources/css/kt-contenttypes.css
@@ -11,7 +11,9 @@ @@ -11,7 +11,9 @@
11 padding-top: 5px; 11 padding-top: 5px;
12 padding-bottom: 5px; 12 padding-bottom: 5px;
13 padding-right: 0; 13 padding-right: 0;
14 - margin-right: 25px; 14 + /*This margin-right has been moved to kt-framing
  15 + under contenttype_href to fix a display bug in IE 6 */
  16 + /*margin-right: 25px;*/
15 } 17 }
16 18
17 .contenttype.office { background-image: url(../../resources/mimetypes/office.png); } 19 .contenttype.office { background-image: url(../../resources/mimetypes/office.png); }
resources/css/kt-framing.css
@@ -2117,4 +2117,10 @@ body #content #add_dashlet @@ -2117,4 +2117,10 @@ body #content #add_dashlet
2117 top: 400px; 2117 top: 400px;
2118 left: 500px; 2118 left: 500px;
2119 display: block; 2119 display: block;
  2120 +}
  2121 +
  2122 +/*contenttype_href class style is used to stop underline error on a hyperlink in IE*/
  2123 +.contenttype_href
  2124 +{
  2125 + margin-right: 25px;
2120 } 2126 }
2121 \ No newline at end of file 2127 \ No newline at end of file
templates/ktcore/principals/about.smarty
@@ -67,6 +67,9 @@ Call Sales: +1 415 670-9759 @@ -67,6 +67,9 @@ Call Sales: +1 415 670-9759
67 Artur Kiwa 67 Artur Kiwa
68 </li> 68 </li>
69 <li> 69 <li>
  70 + Michael Knight
  71 + </li>
  72 + <li>
70 Rogerio Kohler 73 Rogerio Kohler
71 </li> 74 </li>
72 <li> 75 <li>
@@ -124,9 +127,15 @@ Call Sales: +1 415 670-9759 @@ -124,9 +127,15 @@ Call Sales: +1 415 670-9759
124 Phillip Steinbachs 127 Phillip Steinbachs
125 </li> 128 </li>
126 <li> 129 <li>
  130 + Tahir Tahang
  131 + </li>
  132 + <li>
127 Paul Trgina 133 Paul Trgina
128 </li> 134 </li>
129 <li> 135 <li>
  136 + Harry Tsio
  137 + </li>
  138 + <li>
130 Bjarte Kalstveit Vebj&oslash;rnsen 139 Bjarte Kalstveit Vebj&oslash;rnsen
131 </li> 140 </li>
132 <li> 141 <li>
templates/ktcore/principals/unitadmin.smarty
@@ -27,7 +27,7 @@ membership of groups that belong to the unit.{/i18n}&lt;/p&gt; @@ -27,7 +27,7 @@ membership of groups that belong to the unit.{/i18n}&lt;/p&gt;
27 <td>{$oUnit->getName()}</td> 27 <td>{$oUnit->getName()}</td>
28 <td><a href="{addQS}action=editUnit&unit_id={$oUnit->getId()}{/addQS}" class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td> 28 <td><a href="{addQS}action=editUnit&unit_id={$oUnit->getId()}{/addQS}" class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td>
29 <td><a href="{addQS}action=deleteUnit&unit_id={$oUnit->getId()}{/addQS}" class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> 29 <td><a href="{addQS}action=deleteUnit&unit_id={$oUnit->getId()}{/addQS}" class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td>
30 - <td><span class="contenttype folder"><a href="{getUrlForFolder 30 + <td><span class="contenttype folder"><a class="contenttype_href" href="{getUrlForFolder
31 folder=$oUnit->getFolderId()}">{assign var=oFolder 31 folder=$oUnit->getFolderId()}">{assign var=oFolder
32 value=$oUnit->getFolder()}{$oFolder->getName()}</a></span></td> 32 value=$oUnit->getFolder()}{$oFolder->getName()}</a></span></td>
33 </tr> 33 </tr>