with some help from the Kayako Suport team, I have a solution the IRS system showing KB topics from the wrong template group. In your functions_irs.php file, change the line:
$dbCore->query("SELECT kbarticlelinks.kbarticleid, MATCH(kbarticledata.contents) AGAINST ('". $dbCore->escape($_finalworddata) ."') AS relevance FROM `". TABLE_PREFIX ."kbarticledata` AS kbarticledata LEFT JOIN `". TABLE_PREFIX ."kbarticlelinks` AS kbarticlelinks ON (kbarticledata.kbarticleid = kbarticlelinks.kbarticleid) LEFT JOIN `". TABLE_PREFIX ."tgroupassigns` AS tgroupassigns ON (kbarticlelinks.kbcategoryid = tgroupassigns.toassignid AND tgroupassigns.type = '". TGROUP_KNOWLEDGEBASE ."') WHERE MATCH(kbarticledata.contents) AGAINST('". $dbCore->escape($_finalworddata) ."') LIMIT 5;");
to this:
if($isstaffcp == true) {
$dbCore->query("SELECT kbarticlelinks.kbarticleid, MATCH(kbarticledata.contents) AGAINST ('". $dbCore->escape($_finalworddata) ."') AS relevance FROM `". TABLE_PREFIX ."kbarticledata` AS kbarticledata LEFT JOIN `". TABLE_PREFIX ."kbarticlelinks` AS kbarticlelinks ON (kbarticledata.kbarticleid = kbarticlelinks.kbarticleid) LEFT JOIN `". TABLE_PREFIX ."tgroupassigns` AS tgroupassigns ON (kbarticlelinks.kbcategoryid = tgroupassigns.toassignid AND tgroupassigns.type = '". TGROUP_KNOWLEDGEBASE ."') WHERE MATCH(kbarticledata.contents) AGAINST('". $dbCore->escape($_finalworddata) ."') LIMIT 5;");
}
else{
$dbCore->query("SELECT kbarticlelinks.kbarticleid, MATCH(kbarticledata.contents) AGAINST ('". $dbCore->escape($_finalworddata) ."') AS relevance FROM `". TABLE_PREFIX ."kbarticledata` AS kbarticledata LEFT JOIN `". TABLE_PREFIX ."kbarticlelinks` AS kbarticlelinks ON (kbarticledata.kbarticleid = kbarticlelinks.kbarticleid) LEFT JOIN `". TABLE_PREFIX ."tgroupassigns` AS tgroupassigns ON (kbarticlelinks.kbcategoryid = tgroupassigns.toassignid AND tgroupassigns.type = '". TGROUP_KNOWLEDGEBASE ."') WHERE tgroupassigns.tgroupid = '". intval($_SWIFT["tgroup"]["tgroupid"]) ."' AND MATCH(kbarticledata.contents) AGAINST('". $dbCore->escape($_finalworddata) ."') LIMIT 5;");
}
Works for me, but use at your own risk
