diff --git a/plugins/tagcloud/TagCloudPlugin.php b/plugins/tagcloud/TagCloudPlugin.php index 1b2fce0..76f5aa2 100644 --- a/plugins/tagcloud/TagCloudPlugin.php +++ b/plugins/tagcloud/TagCloudPlugin.php @@ -68,12 +68,13 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php'); * */ function setup() { - // Register plugin components - $this->registerCriterion('TagCloudCriterion', 'ktcore.criteria.tagcloud', KT_LIB_DIR . '/browse/Criteria.inc'); - $this->registerDashlet('TagCloudDashlet', 'ktcore.tagcloud.feed.dashlet', 'TagCloudDashlet.php'); - $this->registerPage('TagCloudRedirection', 'TagCloudRedirectPage', __FILE__); - $this->registerPortlet(array(), 'TagCloudPortlet', 'tagcloud.portlet', 'TagCloudPortlet.php'); + // Register plugin components + $this->registerCriterion('TagCloudCriterion', 'ktcore.criteria.tagcloud', KT_LIB_DIR . '/browse/Criteria.inc'); + $this->registerDashlet('TagCloudDashlet', 'ktcore.tagcloud.feed.dashlet', 'TagCloudDashlet.php'); + $this->registerPage('TagCloudRedirection', 'TagCloudRedirectPage', __FILE__); + $this->registerPortlet(array(), 'TagCloudPortlet', 'tagcloud.portlet', 'TagCloudPortlet.php'); + $this->registerTrigger('copyDocument', 'postValidate', 'KTCopyDocumentTrigger', 'ktcore.triggers.tagcloud.copyDocument', KT_DIR.'/plugins/tagcloud/TagCloudTriggers.php'); // Check if the tagcloud fielset entry exists, if not, create it $iFieldsetId = TagCloudPlugin::tagFieldsetExists(); @@ -108,10 +109,10 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php'); // create the fieldsets entry $oFieldset = KTFieldset::createFromArray(array( 'name' => _kt('Tag Cloud'), - 'description' => _kt('The following tags are associated with your document'), + 'description' => _kt('The following tags are associated with your document'), 'namespace' => 'tagcloud', 'mandatory' => false, - 'isConditional' => false, + 'isConditional' => false, 'isGeneric' => true, 'isComplete' => false, 'isComplex' => false, diff --git a/plugins/tagcloud/TagCloudTriggers.php b/plugins/tagcloud/TagCloudTriggers.php index 87efb3e..1652007 100644 --- a/plugins/tagcloud/TagCloudTriggers.php +++ b/plugins/tagcloud/TagCloudTriggers.php @@ -63,8 +63,8 @@ class KTAddDocumentTrigger { $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\''; + $sQuery = 'SELECT df.id AS id FROM document_fields AS df ' . + 'WHERE df.name = \'Tag\''; $sTags = DBUtil::getOneResultKey(array($sQuery), 'id'); if (PEAR::isError($sTags)) { @@ -132,7 +132,50 @@ class KTAddDocumentTrigger { } } +/** + * Trigger for document Copy (post-validate) + */ + class KTCopyDocumentTrigger { + var $aInfo = null; + /** + * function to set the info for the trigger + * + * @param array $aInfo + */ + function setInfo(&$aInfo) { + $this->aInfo =& $aInfo; + } + /** + * postValidate method for trigger + * + * @return unknown + */ + function postValidate() { + $oDocument =& $this->aInfo['document']; + $oSDocument =& $this->aInfo['source_document']; + $newDocID = $oDocument->getID(); + $origDocID = $oSDocument->getID(); + + $docTagsTable = KTUtil::getTableName('document_tags'); + + $query = "SELECT tag_id FROM $docTagsTable WHERE document_id = $origDocID"; + $res = DBUtil::getResultArrayKey($query, 'tag_id'); + + if (PEAR::isError($res)) { + return $res; + } + else { + foreach($res as $tagid) { + DBUtil::autoInsert($docTagsTable, array( + 'document_id'=>$newDocID, + 'tag_id'=>$tagid), + array('noid'=>true)); + } + } + } + + } /** * Trigger for document edit (postValidate) * @@ -200,12 +243,11 @@ class KTEditDocumentTrigger { foreach($aMeta as $aMetaData) { $oProxy = $aMetaData[0]; - if($oProxy->iId == $sTags) - { + if($oProxy->iId == $sTags) { $tagString = $aMetaData[1]; break; } - } + } } if($tagString != ''){ $words_table = KTUtil::getTableName('tag_words');