diff --git a/admin/knowledgebase_private.php b/admin/knowledgebase_private.php
index 24d23267..52c8759b 100644
--- a/admin/knowledgebase_private.php
+++ b/admin/knowledgebase_private.php
@@ -1,7 +1,7 @@
@@ -236,7 +236,7 @@ function hesk_show_kb_article($artid)
hesk_kb_header($hesk_settings['kb_link'], $article['catid']);
// Update views by 1
- hesk_dbQuery('UPDATE `'.hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` SET `views`=`views`+1 WHERE `id`='".intval($artid)."' LIMIT 1");
+ hesk_dbQuery('UPDATE `'.hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` SET `views`=`views`+1 WHERE `id`={$artid} LIMIT 1");
echo '
'.$article['subject'].'
@@ -258,6 +258,51 @@ function hesk_show_kb_article($artid)
echo '';
}
+ // TODO Check how this looks
+ // Related articles
+ if ($hesk_settings['kb_related'])
+ {
+ require(HESK_PATH . 'inc/mail/email_parser.php');
+
+ $query = hesk_dbEscape( $article['subject'] . ' ' . convert_html_to_text($article['content']) );
+
+ // Get relevant articles from the database
+ $res = hesk_dbQuery("SELECT `id`, `subject`, MATCH(`subject`,`content`,`keywords`) AGAINST ('{$query}') AS `score` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `type` IN ('0','1') AND MATCH(`subject`,`content`,`keywords`) AGAINST ('{$query}') LIMIT ".intval($hesk_settings['kb_related']+1));
+
+ // Array with related articles
+ $related_articles = array();
+
+ while ($related = hesk_dbFetchAssoc($res))
+ {
+ // Get base match score from the first (this) article
+ if ( ! isset($base_score) )
+ {
+ $base_score = $related['score'];
+ continue;
+ }
+
+ // Stop when articles reach less than 10% of base score
+ if ($related['score'] / $base_score < 0.10)
+ {
+ break;
+ }
+
+ // This is a valid related article
+ $related_articles[$related['id']] = $related['subject'];
+ }
+
+ // Print related articles if we have any valid matches
+ if ( count($related_articles) )
+ {
+ echo '';
+ }
+ }
+
if ($article['catid']==1)
{
@@ -322,7 +367,7 @@ function hesk_show_kb_category($catid, $is_search = 0) {
}
}
- $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` WHERE `id`='".intval($catid)."' LIMIT 1");
+ $res = hesk_dbQuery("SELECT `name`,`parent` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` WHERE `id`='".intval($catid)."' LIMIT 1");
$thiscat = hesk_dbFetchAssoc($res) or hesk_error($hesklang['kb_cat_inv']);
if ($thiscat['parent'])
@@ -333,7 +378,7 @@ function hesk_show_kb_category($catid, $is_search = 0) {
';
}
- $result = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` WHERE `parent`='".intval($catid)."' ORDER BY `parent` ASC, `cat_order` ASC");
+ $result = hesk_dbQuery("SELECT `id`,`name`,`articles`,`type` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` WHERE `parent`='".intval($catid)."' ORDER BY `parent` ASC, `cat_order` ASC");
if (hesk_dbNumRows($result) > 0)
{
?>
@@ -442,7 +487,7 @@ function hesk_show_kb_category($catid, $is_search = 0) {