Commit b66d693f30fe0849f03ec2898275e3236b51d123

Authored by Kevin Fourie
1 parent 3ac8f2d4

KTS-1834

"Replace ktdms.com with knowledgetree.com"
Done. Some files where converted to utf8 in the process which should be ok.

Reviewed By: Conrad



git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6420 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/generalmetadata/GeneralMetadataPlugin.php
... ... @@ -23,7 +23,7 @@
23 23 * You can contact the copyright owner regarding licensing via the contact
24 24 * details that can be found on the KnowledgeTree web site:
25 25 *
26   - * http://www.ktdms.com/
  26 + * http://www.knowledgetree.com/
27 27 */
28 28  
29 29 require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
... ...
plugins/tagcloud/TagCloudPlugin.php
1   -<?php
2   -
3   -/**
4   - * $Id: TagCloudPlugin.php,v 1.1 2006/02/28 16:53:49 nbm Exp $
5   - *
6   - * Copyright (c) 2006 Jam Warehouse http://www.jamwarehouse.com
7   - *
8   - * This program is free software; you can redistribute it and/or modify
9   - * it under the terms of the GNU General Public License as published by
10   - * the Free Software Foundation; using version 2 of the License.
11   - *
12   - * This program is distributed in the hope that it will be useful,
13   - * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15   - * GNU General Public License for more details.
16   - *
17   - * You should have received a copy of the GNU General Public License
18   - * along with this program; if not, write to the Free Software
19   - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20   - *
21   - * -------------------------------------------------------------------------
22   - *
23   - * You can contact the copyright owner regarding licensing via the contact
24   - * details that can be found on the KnowledgeTree web site:
25   - *
26   - * http://www.ktdms.com/
27   - */
28   -
29   -require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
30   -require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php');
31   -require_once('TagCloudRedirectPage.php');
32   -require_once(KT_LIB_DIR . '/templating/templating.inc.php');
33   -
34   - /**
35   - * Tag Cloud Plugin class
36   - *
37   - */
38   - class TagCloudPlugin extends KTPlugin{
39   -
40   - var $sNamespace = 'ktcore.tagcloud.plugin';
41   -
42   - /**
43   - * Constructor method for plugin
44   - *
45   - * @param string $sFilename
46   - * @return TagCloudPlugin
47   - */
48   - function TagCloudPlugin($sFilename = null) {
49   - $res = parent::KTPlugin($sFilename);
50   - $this->sFriendlyName = _kt('Tag Cloud Plugin');
51   - return $res;
52   - }
53   -
54   - /**
55   - * Setup function for plugin
56   - *
57   - */
58   - function setup() {
59   - // Register plugin components
60   - $this->registerCriterion('TagCloudCriterion', 'ktcore.criteria.tagcloud', KT_LIB_DIR . '/browse/Criteria.inc');
61   - $this->registerDashlet('TagCloudDashlet', 'ktcore.tagcloud.feed.dashlet', 'TagCloudDashlet.php');
62   - $this->registerPage('TagCloudRedirection', 'TagCloudRedirectPage', __FILE__);
63   - $this->registerTrigger('add', 'postValidate', 'KTAddDocumentTrigger',
64   - 'ktcore.triggers.tagcloud.add');
65   - $this->registerTrigger('edit', 'postValidate', 'KTEditDocumentTrigger',
66   - 'ktcore.triggers.tagcloud.edit');
67   -
68   - // Check if the tagcloud fielset entry exists, if not, create it
69   - if(!TagCloudPlugin::tagFieldsetExists()){
70   - $oFieldset = TagCloudPlugin::createFieldset();
71   - if (PEAR::isError($oFieldset)) {
72   - return false;
73   - }
74   - if($oFieldset){
75   - // make the fieldset id viewable
76   - $iFieldsetId = $oFieldset->iId;
77   - }
78   - }else{ // if the entry exists, make the fieldset id viewable anyway
79   - $iFieldsetId = TagCloudPlugin::tagFieldsetExists();
80   - }
81   -
82   - // Check if the tagcloud document field entry exists, if not, create it
83   - if(!TagCloudPlugin::tagFieldExists()){
84   - $oField = TagCloudPlugin::createDocumentField($iFieldsetId);
85   - if (PEAR::isError($oField)) {
86   - return false;
87   - }
88   - }
89   -
90   - $oTemplating =& KTTemplating::getSingleton();
91   - $oTemplating->addLocation('Tag Cloud Plugin', '/plugins/tagcloud/templates');
92   - }
93   -
94   - /**
95   - * function to add fieldset entry to fieldsets table
96   - *
97   - * @return unknown
98   - */
99   - function createFieldset(){
100   - // create the fieldsets entry
101   - $oFieldset = KTFieldset::createFromArray(array(
102   - 'name' => 'Tag Cloud',
103   - 'description' => 'Tag Cloud',
104   - 'namespace' => 'tagcloud',
105   - 'mandatory' => false,
106   - 'isConditional' => false,
107   - 'isGeneric' => true,
108   - 'isComplete' => false,
109   - 'isComplex' => false,
110   - 'isSystem' => false,
111   - ));
112   -
113   - return $oFieldset;
114   - }
115   -
116   - /**
117   - * function to add the tagcloud entry to the document_fields table
118   - *
119   - * @param int $parentId
120   - * @return int $id
121   - */
122   - function createDocumentField($parentId){
123   - // create the document_field entry
124   - $id = DocumentField::createFromArray(array(
125   - 'Name' => 'Tag',
126   - 'Description' => 'Tag Words',
127   - 'DataType' => 'STRING',
128   - 'IsGeneric' => false,
129   - 'HasLookup' => false,
130   - 'HasLookupTree' => false,
131   - 'ParentFieldset' => $parentId,
132   - 'IsMandatory' => false,
133   - ));
134   -
135   - return $id;
136   - }
137   -
138   - /**
139   - * function to check if the Tag field exists in the document_fields table
140   - *
141   - * @return boolean
142   - */
143   - function tagFieldExists(){
144   - $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
145   - 'WHERE df.name = \'Tag\'';
146   - $sTag = DBUtil::getOneResultKey(array($sQuery), 'id');
147   -
148   - if (PEAR::isError($sTag)) {
149   - // XXX: log error
150   - return false;
151   -
152   - }
153   - if(!is_null($sTag)){
154   - return $sTag;
155   - }else{
156   - return false;
157   - }
158   - }
159   -
160   - /**
161   - * function to check if the fieldset exists in the database
162   - *
163   - * @return boolean
164   - */
165   - function tagFieldsetExists(){
166   - $sQuery = 'SELECT fs.id AS id FROM fieldsets AS fs '.
167   - 'WHERE namespace = \'tagcloud\'';
168   - $iFieldset = DBUtil::getOneResultKey(array($sQuery), 'id');
169   -
170   - if (PEAR::isError($iFieldset)) {
171   - // XXX: log error
172   - return false;
173   -
174   - }
175   - if(!is_null($iFieldset)){
176   - return $iFieldset;
177   - }else{
178   - return false;
179   - }
180   - }
181   - }
182   -$oPluginRegistry =& KTPluginRegistry::getSingleton();
183   -$oPluginRegistry->registerPlugin('TagCloudPlugin', 'ktcore.tagcloud.plugin', __FILE__);
184   -
185   -/**
186   - * Trigger for document add (postValidate)
187   - *
188   - */
189   -class KTAddDocumentTrigger {
190   - var $aInfo = null;
191   - /**
192   - * function to set the info for the trigger
193   - *
194   - * @param array $aInfo
195   - */
196   - function setInfo(&$aInfo) {
197   - $this->aInfo =& $aInfo;
198   - }
199   -
200   - /**
201   - * postValidate method for trigger
202   - *
203   - * @return unknown
204   - */
205   - function postValidate() {
206   - global $default;
207   - $oDocument =& $this->aInfo['document'];
208   - $aMeta = & $this->aInfo['aOptions'];
209   -
210   - $iDocId = $oDocument->getID();
211   -
212   - // get tag id from document_fields table where name = Tag
213   - $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
214   - 'WHERE df.name = \'Tag\'';
215   -
216   - $sTags = DBUtil::getOneResultKey(array($sQuery), 'id');
217   - if (PEAR::isError($sTags)) {
218   - // XXX: log error
219   - return false;
220   - }
221   - $tagString = '';
222   - // add tags
223   - if ($sTags) {
224   - foreach($aMeta[metadata] as $aMetaData){
225   - $oProxy = $aMetaData[0];
226   - if($oProxy->iId == $sTags){
227   - $tagString = $aMetaData[1];
228   - }
229   - }
230   - if($tagString != ''){
231   - $words_table = KTUtil::getTableName('tag_words');
232   - $tagString = str_replace(' ', '', $tagString);
233   - $tags = explode(',',$tagString);
234   -
235   - $aTagIds = array();
236   -
237   - foreach($tags as $sTag)
238   - {
239   - $sTag=strtolower(trim($sTag));
240   -
241   - $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
242   -
243   - if (PEAR::isError($res)) {
244   - return $res;
245   - }
246   -
247   - if (is_null($res))
248   - {
249   - $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
250   - $aTagIds[$sTag] = $id;
251   - }
252   - else
253   - {
254   - $aTagIds[$sTag] = $res['id'];
255   - }
256   - }
257   -
258   - $doc_tags = KTUtil::getTableName('document_tags');
259   -
260   - foreach($aTagIds as $sTag=>$tagid)
261   - {
262   - DBUtil::autoInsert($doc_tags, array(
263   -
264   - 'document_id'=>$iDocId,
265   - 'tag_id'=>$tagid),
266   - array('noid'=>true));
267   - }
268   - }
269   - }
270   - }
271   -}
272   -
273   -/**
274   - * Trigger for document edit (postValidate)
275   - *
276   - */
277   -class KTEditDocumentTrigger {
278   - var $aInfo = null;
279   - /**
280   - * function to set the info for the trigger
281   - *
282   - * @param array $aInfo
283   - */
284   - function setInfo(&$aInfo) {
285   - $this->aInfo =& $aInfo;
286   - }
287   -
288   - /**
289   - * postValidate method for trigger
290   - *
291   - * @return unknown
292   - */
293   - function postValidate() {
294   - global $default;
295   - $oDocument =& $this->aInfo['document'];
296   - $aMeta = & $this->aInfo['aOptions'];
297   - // get document id
298   - $iDocId = $oDocument->getID();
299   -
300   - // get all tags that are linked to the document
301   - $sQuery = 'SELECT tw.id FROM tag_words AS tw, document_tags AS dt, documents AS d ' .
302   - 'WHERE dt.tag_id = tw.id ' .
303   - 'AND dt.document_id = d.id ' .
304   - 'AND d.id = ?';
305   - $aParams = array($iDocId);
306   - $aTagId = DBUtil::getResultArray(array($sQuery, $aParams));
307   - if (PEAR::isError($aTagId)) {
308   - // XXX: log error
309   - return false;
310   - }
311   - // if there are any related tags proceed
312   - if ($aTagId) {
313   - // delete all entries from document_tags table for the document
314   - $sQuery = 'DELETE FROM document_tags ' .
315   - 'WHERE document_id = ?';
316   - $aParams = array($iDocId);
317   - $removed = DBUtil::runQuery(array($sQuery, $aParams));
318   - if (PEAR::isError($removed)) {
319   - // XXX: log error
320   - return false;
321   - }
322   - }
323   - // proceed to add the tags as per normaly
324   - $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
325   - 'WHERE df.name = \'Tag\'';
326   -
327   - $sTags = DBUtil::getOneResultKey(array($sQuery), 'id');
328   - if (PEAR::isError($sTags)) {
329   - // XXX: log error
330   - return false;
331   - }
332   - $tagString = '';
333   - if ($sTags) {
334   - foreach($aMeta as $aMetaData){
335   - $oProxy = $aMetaData[0];
336   - if($oProxy->iId == $sTags){
337   - $tagString = $aMetaData[1];
338   - break;
339   - }
340   - }
341   - if($tagString != ''){
342   - $words_table = KTUtil::getTableName('tag_words');
343   - $tagString = str_replace(' ', ' ', $tagString);
344   - $tags = explode(',',$tagString);
345   -
346   - $aTagIds = array();
347   -
348   - foreach($tags as $sTag)
349   - {
350   - $sTag=strtolower(trim($sTag));
351   -
352   - $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
353   -
354   - if (PEAR::isError($res)) {
355   - return $res;
356   - }
357   -
358   - if (is_null($res))
359   - {
360   - $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
361   - $aTagIds[$sTag] = $id;
362   - }
363   - else
364   - {
365   - $aTagIds[$sTag] = $res['id'];
366   - }
367   - }
368   -
369   - $doc_tags = KTUtil::getTableName('document_tags');
370   -
371   - foreach($aTagIds as $sTag=>$tagid)
372   - {
373   - DBUtil::autoInsert($doc_tags, array(
374   - 'document_id'=>$iDocId,
375   - 'tag_id'=>$tagid),
376   - array('noid'=>true));
377   - }
378   - }
379   - }
380   - }
381   -}
382   -?>
  1 +<?php
  2 +
  3 +/**
  4 + * $Id: TagCloudPlugin.php,v 1.1 2006/02/28 16:53:49 nbm Exp $
  5 + *
  6 + * Copyright (c) 2006 Jam Warehouse http://www.jamwarehouse.com
  7 + *
  8 + * This program is free software; you can redistribute it and/or modify
  9 + * it under the terms of the GNU General Public License as published by
  10 + * the Free Software Foundation; using version 2 of the License.
  11 + *
  12 + * This program is distributed in the hope that it will be useful,
  13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15 + * GNU General Public License for more details.
  16 + *
  17 + * You should have received a copy of the GNU General Public License
  18 + * along with this program; if not, write to the Free Software
  19 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20 + *
  21 + * -------------------------------------------------------------------------
  22 + *
  23 + * You can contact the copyright owner regarding licensing via the contact
  24 + * details that can be found on the KnowledgeTree web site:
  25 + *
  26 + * http://www.knowledgetree.com/
  27 + */
  28 +
  29 +require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
  30 +require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php');
  31 +require_once('TagCloudRedirectPage.php');
  32 +require_once(KT_LIB_DIR . '/templating/templating.inc.php');
  33 +
  34 + /**
  35 + * Tag Cloud Plugin class
  36 + *
  37 + */
  38 + class TagCloudPlugin extends KTPlugin{
  39 +
  40 + var $sNamespace = 'ktcore.tagcloud.plugin';
  41 +
  42 + /**
  43 + * Constructor method for plugin
  44 + *
  45 + * @param string $sFilename
  46 + * @return TagCloudPlugin
  47 + */
  48 + function TagCloudPlugin($sFilename = null) {
  49 + $res = parent::KTPlugin($sFilename);
  50 + $this->sFriendlyName = _kt('Tag Cloud Plugin');
  51 + return $res;
  52 + }
  53 +
  54 + /**
  55 + * Setup function for plugin
  56 + *
  57 + */
  58 + function setup() {
  59 + // Register plugin components
  60 + $this->registerCriterion('TagCloudCriterion', 'ktcore.criteria.tagcloud', KT_LIB_DIR . '/browse/Criteria.inc');
  61 + $this->registerDashlet('TagCloudDashlet', 'ktcore.tagcloud.feed.dashlet', 'TagCloudDashlet.php');
  62 + $this->registerPage('TagCloudRedirection', 'TagCloudRedirectPage', __FILE__);
  63 + $this->registerTrigger('add', 'postValidate', 'KTAddDocumentTrigger',
  64 + 'ktcore.triggers.tagcloud.add');
  65 + $this->registerTrigger('edit', 'postValidate', 'KTEditDocumentTrigger',
  66 + 'ktcore.triggers.tagcloud.edit');
  67 +
  68 + // Check if the tagcloud fielset entry exists, if not, create it
  69 + if(!TagCloudPlugin::tagFieldsetExists()){
  70 + $oFieldset = TagCloudPlugin::createFieldset();
  71 + if (PEAR::isError($oFieldset)) {
  72 + return false;
  73 + }
  74 + if($oFieldset){
  75 + // make the fieldset id viewable
  76 + $iFieldsetId = $oFieldset->iId;
  77 + }
  78 + }else{ // if the entry exists, make the fieldset id viewable anyway
  79 + $iFieldsetId = TagCloudPlugin::tagFieldsetExists();
  80 + }
  81 +
  82 + // Check if the tagcloud document field entry exists, if not, create it
  83 + if(!TagCloudPlugin::tagFieldExists()){
  84 + $oField = TagCloudPlugin::createDocumentField($iFieldsetId);
  85 + if (PEAR::isError($oField)) {
  86 + return false;
  87 + }
  88 + }
  89 +
  90 + $oTemplating =& KTTemplating::getSingleton();
  91 + $oTemplating->addLocation('Tag Cloud Plugin', '/plugins/tagcloud/templates');
  92 + }
  93 +
  94 + /**
  95 + * function to add fieldset entry to fieldsets table
  96 + *
  97 + * @return unknown
  98 + */
  99 + function createFieldset(){
  100 + // create the fieldsets entry
  101 + $oFieldset = KTFieldset::createFromArray(array(
  102 + 'name' => 'Tag Cloud',
  103 + 'description' => 'Tag Cloud',
  104 + 'namespace' => 'tagcloud',
  105 + 'mandatory' => false,
  106 + 'isConditional' => false,
  107 + 'isGeneric' => true,
  108 + 'isComplete' => false,
  109 + 'isComplex' => false,
  110 + 'isSystem' => false,
  111 + ));
  112 +
  113 + return $oFieldset;
  114 + }
  115 +
  116 + /**
  117 + * function to add the tagcloud entry to the document_fields table
  118 + *
  119 + * @param int $parentId
  120 + * @return int $id
  121 + */
  122 + function createDocumentField($parentId){
  123 + // create the document_field entry
  124 + $id = DocumentField::createFromArray(array(
  125 + 'Name' => 'Tag',
  126 + 'Description' => 'Tag Words',
  127 + 'DataType' => 'STRING',
  128 + 'IsGeneric' => false,
  129 + 'HasLookup' => false,
  130 + 'HasLookupTree' => false,
  131 + 'ParentFieldset' => $parentId,
  132 + 'IsMandatory' => false,
  133 + ));
  134 +
  135 + return $id;
  136 + }
  137 +
  138 + /**
  139 + * function to check if the Tag field exists in the document_fields table
  140 + *
  141 + * @return boolean
  142 + */
  143 + function tagFieldExists(){
  144 + $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
  145 + 'WHERE df.name = \'Tag\'';
  146 + $sTag = DBUtil::getOneResultKey(array($sQuery), 'id');
  147 +
  148 + if (PEAR::isError($sTag)) {
  149 + // XXX: log error
  150 + return false;
  151 +
  152 + }
  153 + if(!is_null($sTag)){
  154 + return $sTag;
  155 + }else{
  156 + return false;
  157 + }
  158 + }
  159 +
  160 + /**
  161 + * function to check if the fieldset exists in the database
  162 + *
  163 + * @return boolean
  164 + */
  165 + function tagFieldsetExists(){
  166 + $sQuery = 'SELECT fs.id AS id FROM fieldsets AS fs '.
  167 + 'WHERE namespace = \'tagcloud\'';
  168 + $iFieldset = DBUtil::getOneResultKey(array($sQuery), 'id');
  169 +
  170 + if (PEAR::isError($iFieldset)) {
  171 + // XXX: log error
  172 + return false;
  173 +
  174 + }
  175 + if(!is_null($iFieldset)){
  176 + return $iFieldset;
  177 + }else{
  178 + return false;
  179 + }
  180 + }
  181 + }
  182 +$oPluginRegistry =& KTPluginRegistry::getSingleton();
  183 +$oPluginRegistry->registerPlugin('TagCloudPlugin', 'ktcore.tagcloud.plugin', __FILE__);
  184 +
  185 +/**
  186 + * Trigger for document add (postValidate)
  187 + *
  188 + */
  189 +class KTAddDocumentTrigger {
  190 + var $aInfo = null;
  191 + /**
  192 + * function to set the info for the trigger
  193 + *
  194 + * @param array $aInfo
  195 + */
  196 + function setInfo(&$aInfo) {
  197 + $this->aInfo =& $aInfo;
  198 + }
  199 +
  200 + /**
  201 + * postValidate method for trigger
  202 + *
  203 + * @return unknown
  204 + */
  205 + function postValidate() {
  206 + global $default;
  207 + $oDocument =& $this->aInfo['document'];
  208 + $aMeta = & $this->aInfo['aOptions'];
  209 +
  210 + $iDocId = $oDocument->getID();
  211 +
  212 + // get tag id from document_fields table where name = Tag
  213 + $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
  214 + 'WHERE df.name = \'Tag\'';
  215 +
  216 + $sTags = DBUtil::getOneResultKey(array($sQuery), 'id');
  217 + if (PEAR::isError($sTags)) {
  218 + // XXX: log error
  219 + return false;
  220 + }
  221 + $tagString = '';
  222 + // add tags
  223 + if ($sTags) {
  224 + foreach($aMeta[metadata] as $aMetaData){
  225 + $oProxy = $aMetaData[0];
  226 + if($oProxy->iId == $sTags){
  227 + $tagString = $aMetaData[1];
  228 + }
  229 + }
  230 + if($tagString != ''){
  231 + $words_table = KTUtil::getTableName('tag_words');
  232 + $tagString = str_replace(' ', '', $tagString);
  233 + $tags = explode(',',$tagString);
  234 +
  235 + $aTagIds = array();
  236 +
  237 + foreach($tags as $sTag)
  238 + {
  239 + $sTag=strtolower(trim($sTag));
  240 +
  241 + $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
  242 +
  243 + if (PEAR::isError($res)) {
  244 + return $res;
  245 + }
  246 +
  247 + if (is_null($res))
  248 + {
  249 + $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
  250 + $aTagIds[$sTag] = $id;
  251 + }
  252 + else
  253 + {
  254 + $aTagIds[$sTag] = $res['id'];
  255 + }
  256 + }
  257 +
  258 + $doc_tags = KTUtil::getTableName('document_tags');
  259 +
  260 + foreach($aTagIds as $sTag=>$tagid)
  261 + {
  262 + DBUtil::autoInsert($doc_tags, array(
  263 +
  264 + 'document_id'=>$iDocId,
  265 + 'tag_id'=>$tagid),
  266 + array('noid'=>true));
  267 + }
  268 + }
  269 + }
  270 + }
  271 +}
  272 +
  273 +/**
  274 + * Trigger for document edit (postValidate)
  275 + *
  276 + */
  277 +class KTEditDocumentTrigger {
  278 + var $aInfo = null;
  279 + /**
  280 + * function to set the info for the trigger
  281 + *
  282 + * @param array $aInfo
  283 + */
  284 + function setInfo(&$aInfo) {
  285 + $this->aInfo =& $aInfo;
  286 + }
  287 +
  288 + /**
  289 + * postValidate method for trigger
  290 + *
  291 + * @return unknown
  292 + */
  293 + function postValidate() {
  294 + global $default;
  295 + $oDocument =& $this->aInfo['document'];
  296 + $aMeta = & $this->aInfo['aOptions'];
  297 + // get document id
  298 + $iDocId = $oDocument->getID();
  299 +
  300 + // get all tags that are linked to the document
  301 + $sQuery = 'SELECT tw.id FROM tag_words AS tw, document_tags AS dt, documents AS d ' .
  302 + 'WHERE dt.tag_id = tw.id ' .
  303 + 'AND dt.document_id = d.id ' .
  304 + 'AND d.id = ?';
  305 + $aParams = array($iDocId);
  306 + $aTagId = DBUtil::getResultArray(array($sQuery, $aParams));
  307 + if (PEAR::isError($aTagId)) {
  308 + // XXX: log error
  309 + return false;
  310 + }
  311 + // if there are any related tags proceed
  312 + if ($aTagId) {
  313 + // delete all entries from document_tags table for the document
  314 + $sQuery = 'DELETE FROM document_tags ' .
  315 + 'WHERE document_id = ?';
  316 + $aParams = array($iDocId);
  317 + $removed = DBUtil::runQuery(array($sQuery, $aParams));
  318 + if (PEAR::isError($removed)) {
  319 + // XXX: log error
  320 + return false;
  321 + }
  322 + }
  323 + // proceed to add the tags as per normaly
  324 + $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' .
  325 + 'WHERE df.name = \'Tag\'';
  326 +
  327 + $sTags = DBUtil::getOneResultKey(array($sQuery), 'id');
  328 + if (PEAR::isError($sTags)) {
  329 + // XXX: log error
  330 + return false;
  331 + }
  332 + $tagString = '';
  333 + if ($sTags) {
  334 + foreach($aMeta as $aMetaData){
  335 + $oProxy = $aMetaData[0];
  336 + if($oProxy->iId == $sTags){
  337 + $tagString = $aMetaData[1];
  338 + break;
  339 + }
  340 + }
  341 + if($tagString != ''){
  342 + $words_table = KTUtil::getTableName('tag_words');
  343 + $tagString = str_replace(' ', ' ', $tagString);
  344 + $tags = explode(',',$tagString);
  345 +
  346 + $aTagIds = array();
  347 +
  348 + foreach($tags as $sTag)
  349 + {
  350 + $sTag=strtolower(trim($sTag));
  351 +
  352 + $res = DBUtil::getOneResult(array("SELECT id FROM $words_table WHERE tag = ?", array($sTag)));
  353 +
  354 + if (PEAR::isError($res)) {
  355 + return $res;
  356 + }
  357 +
  358 + if (is_null($res))
  359 + {
  360 + $id = & DBUtil::autoInsert($words_table, array('tag'=>$sTag));
  361 + $aTagIds[$sTag] = $id;
  362 + }
  363 + else
  364 + {
  365 + $aTagIds[$sTag] = $res['id'];
  366 + }
  367 + }
  368 +
  369 + $doc_tags = KTUtil::getTableName('document_tags');
  370 +
  371 + foreach($aTagIds as $sTag=>$tagid)
  372 + {
  373 + DBUtil::autoInsert($doc_tags, array(
  374 + 'document_id'=>$iDocId,
  375 + 'tag_id'=>$tagid),
  376 + array('noid'=>true));
  377 + }
  378 + }
  379 + }
  380 + }
  381 +}
  382 +?>
... ...
plugins/tagcloud/TagCloudRedirectPage.php
1   -<?php
2   -/**
3   - * $Id: TagCloudRedirectPage.php,v 1.1 2006/02/28 16:53:49 nbm Exp $
4   - *
5   - * Copyright (c) 2006 Jam Warehouse http://www.jamwarehouse.com
6   - *
7   - * This program is free software; you can redistribute it and/or modify
8   - * it under the terms of the GNU General Public License as published by
9   - * the Free Software Foundation; using version 2 of the License.
10   - *
11   - * This program is distributed in the hope that it will be useful,
12   - * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   - * GNU General Public License for more details.
15   - *
16   - * You should have received a copy of the GNU General Public License
17   - * along with this program; if not, write to the Free Software
18   - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19   - *
20   - * -------------------------------------------------------------------------
21   - *
22   - * You can contact the copyright owner regarding licensing via the contact
23   - * details that can be found on the KnowledgeTree web site:
24   - *
25   - * http://www.ktdms.com/
26   - **/
27   -
28   -require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
29   -require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php');
30   -require_once(KT_LIB_DIR . '/templating/templating.inc.php');
31   -require_once(KT_LIB_DIR . '/database/dbutil.inc');
32   -require_once(KT_LIB_DIR . '/util/ktutil.inc');
33   -require_once(KT_LIB_DIR . '/dispatcher.inc.php');
34   -require_once(KT_LIB_DIR . '/browse/Criteria.inc');
35   -require_once(KT_LIB_DIR . '/search/savedsearch.inc.php');
36   -require_once(KT_LIB_DIR . '/search/searchutil.inc.php');
37   -
38   -require_once(KT_LIB_DIR . '/browse/DocumentCollection.inc.php');
39   -require_once(KT_LIB_DIR . '/browse/BrowseColumns.inc.php');
40   -require_once(KT_LIB_DIR . '/browse/PartialQuery.inc.php');
41   -
42   -require_once(KT_LIB_DIR . '/widgets/fieldWidgets.php');
43   -require_once(KT_LIB_DIR . '/actions/bulkaction.php');
44   -
45   -class TagCloudRedirectPage extends KTStandardDispatcher {
46   -
47   - /**
48   - * Dispatcher main method
49   - *
50   - * @return unknown
51   - */
52   - function do_main() {
53   - $searchable_text = KTUtil::arrayGet($_REQUEST, 'tag');
54   - // set breadcrumbs
55   - $this->aBreadcrumbs[] = array('url' => 'dashboard.php', 'name' => _kt('Dashboard'));
56   - $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'].'&tag='.$searchable_text, 'name' => _kt('Tag Cloud Search'));
57   - // set page title
58   - $sTitle = _kt('Search Results');
59   -
60   - $this->oPage->setBreadcrumbDetails($sTitle);
61   -
62   - // build criteria set
63   - $aCriteriaSet = array(
64   - 'join'=>'AND',
65   - 'subgroup'=>array(
66   - 0=>array(
67   - 'join'=>'AND',
68   - 'values'=>array(
69   - 1=>array(
70   - 'data'=>array(
71   - 'ktcore.criteria.tagcloud'=>$searchable_text,
72   - 'ktcore.criteria.tagcloud_not'=>0
73   - ),
74   - 'type'=>'ktcore.criteria.tagcloud'
75   - )
76   - )
77   - )
78   - )
79   - );
80   -
81   -
82   - $this->browseType = 'Folder';
83   - $sSearch = md5(serialize($aCriteriaSet));
84   - $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet;
85   -
86   - $collection = new AdvancedCollection;
87   - $oColumnRegistry = KTColumnRegistry::getSingleton();
88   - $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
89   - $collection->addColumns($aColumns);
90   -
91   - // set a view option
92   - $aTitleOptions = array(
93   - 'documenturl' => $GLOBALS['KTRootUrl'] . '/view.php',
94   - );
95   - $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
96   - $collection->setColumnOptions('ktcore.columns.selection', array(
97   - 'rangename' => 'selection',
98   - 'show_folders' => true,
99   - 'show_documents' => true,
100   - ));
101   -
102   - $aOptions = $collection->getEnvironOptions(); // extract data from the environment
103   -
104   - $aOptions['return_url'] = KTUtil::addQueryString('dashboard.php', false);
105   - $aOptions['empty_message'] = _kt('No documents or folders match this query.');
106   - $aOptions['is_browse'] = true;
107   -
108   - $collection->setOptions($aOptions);
109   - $collection->setQueryObject(new BooleanSearchQuery($aCriteriaSet));
110   -
111   - $oTemplating =& KTTemplating::getSingleton();
112   - $oTemplate = $oTemplating->loadTemplate('kt3/browse');
113   - $aTemplateData = array(
114   - 'context' => $this,
115   - 'collection' => $collection,
116   - 'custom_title' => $sTitle,
117   - 'isEditable' => true,
118   - 'boolean_search' => $sSearch,
119   - 'bulkactions' => KTBulkActionUtil::getAllBulkActions(),
120   - 'browseutil' => new KTBrowseUtil(),
121   - 'returnaction' => 'booleanSearch',
122   - 'returndata' => $sSearch,
123   -
124   - );
125   - return $oTemplate->render($aTemplateData);
126   -
127   - }
128   -}
129   -?>
  1 +<?php
  2 +/**
  3 + * $Id: TagCloudRedirectPage.php,v 1.1 2006/02/28 16:53:49 nbm Exp $
  4 + *
  5 + * Copyright (c) 2006 Jam Warehouse http://www.jamwarehouse.com
  6 + *
  7 + * This program is free software; you can redistribute it and/or modify
  8 + * it under the terms of the GNU General Public License as published by
  9 + * the Free Software Foundation; using version 2 of the License.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU General Public License
  17 + * along with this program; if not, write to the Free Software
  18 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19 + *
  20 + * -------------------------------------------------------------------------
  21 + *
  22 + * You can contact the copyright owner regarding licensing via the contact
  23 + * details that can be found on the KnowledgeTree web site:
  24 + *
  25 + * http://www.knowledgetree.com/
  26 + **/
  27 +
  28 +require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
  29 +require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php');
  30 +require_once(KT_LIB_DIR . '/templating/templating.inc.php');
  31 +require_once(KT_LIB_DIR . '/database/dbutil.inc');
  32 +require_once(KT_LIB_DIR . '/util/ktutil.inc');
  33 +require_once(KT_LIB_DIR . '/dispatcher.inc.php');
  34 +require_once(KT_LIB_DIR . '/browse/Criteria.inc');
  35 +require_once(KT_LIB_DIR . '/search/savedsearch.inc.php');
  36 +require_once(KT_LIB_DIR . '/search/searchutil.inc.php');
  37 +
  38 +require_once(KT_LIB_DIR . '/browse/DocumentCollection.inc.php');
  39 +require_once(KT_LIB_DIR . '/browse/BrowseColumns.inc.php');
  40 +require_once(KT_LIB_DIR . '/browse/PartialQuery.inc.php');
  41 +
  42 +require_once(KT_LIB_DIR . '/widgets/fieldWidgets.php');
  43 +require_once(KT_LIB_DIR . '/actions/bulkaction.php');
  44 +
  45 +class TagCloudRedirectPage extends KTStandardDispatcher {
  46 +
  47 + /**
  48 + * Dispatcher main method
  49 + *
  50 + * @return unknown
  51 + */
  52 + function do_main() {
  53 + $searchable_text = KTUtil::arrayGet($_REQUEST, 'tag');
  54 + // set breadcrumbs
  55 + $this->aBreadcrumbs[] = array('url' => 'dashboard.php', 'name' => _kt('Dashboard'));
  56 + $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'].'&tag='.$searchable_text, 'name' => _kt('Tag Cloud Search'));
  57 + // set page title
  58 + $sTitle = _kt('Search Results');
  59 +
  60 + $this->oPage->setBreadcrumbDetails($sTitle);
  61 +
  62 + // build criteria set
  63 + $aCriteriaSet = array(
  64 + 'join'=>'AND',
  65 + 'subgroup'=>array(
  66 + 0=>array(
  67 + 'join'=>'AND',
  68 + 'values'=>array(
  69 + 1=>array(
  70 + 'data'=>array(
  71 + 'ktcore.criteria.tagcloud'=>$searchable_text,
  72 + 'ktcore.criteria.tagcloud_not'=>0
  73 + ),
  74 + 'type'=>'ktcore.criteria.tagcloud'
  75 + )
  76 + )
  77 + )
  78 + )
  79 + );
  80 +
  81 +
  82 + $this->browseType = 'Folder';
  83 + $sSearch = md5(serialize($aCriteriaSet));
  84 + $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet;
  85 +
  86 + $collection = new AdvancedCollection;
  87 + $oColumnRegistry = KTColumnRegistry::getSingleton();
  88 + $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
  89 + $collection->addColumns($aColumns);
  90 +
  91 + // set a view option
  92 + $aTitleOptions = array(
  93 + 'documenturl' => $GLOBALS['KTRootUrl'] . '/view.php',
  94 + );
  95 + $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
  96 + $collection->setColumnOptions('ktcore.columns.selection', array(
  97 + 'rangename' => 'selection',
  98 + 'show_folders' => true,
  99 + 'show_documents' => true,
  100 + ));
  101 +
  102 + $aOptions = $collection->getEnvironOptions(); // extract data from the environment
  103 +
  104 + $aOptions['return_url'] = KTUtil::addQueryString('dashboard.php', false);
  105 + $aOptions['empty_message'] = _kt('No documents or folders match this query.');
  106 + $aOptions['is_browse'] = true;
  107 +
  108 + $collection->setOptions($aOptions);
  109 + $collection->setQueryObject(new BooleanSearchQuery($aCriteriaSet));
  110 +
  111 + $oTemplating =& KTTemplating::getSingleton();
  112 + $oTemplate = $oTemplating->loadTemplate('kt3/browse');
  113 + $aTemplateData = array(
  114 + 'context' => $this,
  115 + 'collection' => $collection,
  116 + 'custom_title' => $sTitle,
  117 + 'isEditable' => true,
  118 + 'boolean_search' => $sSearch,
  119 + 'bulkactions' => KTBulkActionUtil::getAllBulkActions(),
  120 + 'browseutil' => new KTBrowseUtil(),
  121 + 'returnaction' => 'booleanSearch',
  122 + 'returndata' => $sSearch,
  123 +
  124 + );
  125 + return $oTemplate->render($aTemplateData);
  126 +
  127 + }
  128 +}
  129 +?>
... ...
tests/file_gettext/test.po
... ... @@ -13,8 +13,8 @@ msgstr &quot;&quot;
13 13 "X-Poedit-Country: COLOMBIA\n"
14 14 "X-Poedit-SourceCharset: utf-8\n"
15 15  
16   -msgid "&copy; 2006 <a href=\"http://www.ktdms.com/\">The Jam Warehouse Software (Pty) Ltd.</a> All Rights Reserved"
17   -msgstr "&copy; 2006 <a href=\"http://www.ktdms.com/\">The Jam Warehouse Software (Pty) Ltd.</a> Todos los Derechos Reservados - <a href=\"http://www.oriondatacenter.com/\">Orion Datacenter.</a> Bussines Partner para Colombia"
  16 +msgid "&copy; 2006 <a href=\"http://www.knowledgetree.com/\">The Jam Warehouse Software (Pty) Ltd.</a> All Rights Reserved"
  17 +msgstr "&copy; 2006 <a href=\"http://www.knowledgetree.com/\">The Jam Warehouse Software (Pty) Ltd.</a> Todos los Derechos Reservados - <a href=\"http://www.oriondatacenter.com/\">Orion Datacenter.</a> Bussines Partner para Colombia"
18 18  
19 19 msgid "Document \"%s\" renamed."
20 20 msgstr "El documento \"%s\" ha sido renombrado."
... ...
tests/file_gettext/test2.po
... ... @@ -14,10 +14,10 @@ msgstr &quot;&quot;
14 14 "X-Poedit-SourceCharset: utf-8\n"
15 15  
16 16 msgid ""
17   -"&copy; 2006 <a href=\"http://www.ktdms.com/\">The Jam Warehouse Software "
  17 +"&copy; 2006 <a href=\"http://www.knowledgetree.com/\">The Jam Warehouse Software "
18 18 "(Pty) Ltd.</a> All Rights Reserved"
19 19 msgstr ""
20   -"&copy; 2006 <a href=\"http://www.ktdms.com/\">The Jam Warehouse Software "
  20 +"&copy; 2006 <a href=\"http://www.knowledgetree.com/\">The Jam Warehouse Software "
21 21 "(Pty) Ltd.</a> Todos los Derechos Reservados - <a href=\"http://www."
22 22 "oriondatacenter.com/\">Orion Datacenter.</a> Bussines Partner para Colombia"
23 23  
... ...