' . $hesklang['kb_text'] . '' : $hesklang['kb_text']; if ($hesk_settings['kb_search'] && $query) { hesk_kb_search($query); } elseif ($artid) { // Get article from DB, make sure that article and category are public $result = hesk_dbQuery("SELECT t1.*, t2.`name` AS `cat_name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` AS `t1` LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS `t2` ON `t1`.`catid` = `t2`.`id` WHERE `t1`.`id` = '{$artid}' AND `t1`.`type` = '0' AND `t2`.`type` = '0' "); $article = hesk_dbFetchAssoc($result) or hesk_error($hesklang['kb_art_id']); hesk_show_kb_article($artid); } else { hesk_show_kb_category($catid); } echo ''; require_once(HESK_PATH . 'inc/footer.inc.php'); exit(); /*** START FUNCTIONS ***/ function hesk_kb_header($kb_link) { global $hesk_settings, $hesklang; ?>

()

' . $hesklang['nosr'] . '

 

'; hesk_show_kb_category(1, 1); } else { ?>
 
' . $alt . ''; } else { $rat = ''; } echo ' '; } ?>
' . $rat . '
' . $article['subject'] . '
' . $txt . '

 
«

'; } else { $goBackText = ''; } echo '

' . $goBackText . ' ' . $article['subject'] . '

' . $hesklang['as'] . '

' . $article['content'] . '
'; if (!empty($article['attachments'])) { echo '

' . $hesklang['attachments'] . ':
'; $att = explode(',', substr($article['attachments'], 0, -1)); foreach ($att as $myatt) { list($att_id, $att_name) = explode('#', $myatt); echo '' . $att_name . ' ' . $att_name . '
'; } echo '

'; } // Article rating if ($hesk_settings['kb_rating'] && strpos(hesk_COOKIE('hesk_kb_rate'), 'a' . $artid . '%') === false) { echo ' '; } // Related articles if ($hesk_settings['kb_related']) { $showRelated = false; $column = 'col-md-12'; 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 t1.`id`, t1.`subject`, MATCH(`subject`,`content`,`keywords`) AGAINST ('{$query}') AS `score` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . 'kb_articles` AS t1 LEFT JOIN `' . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS t2 ON t1.`catid` = t2.`id` WHERE t1.`type`='0' AND t2.`type`='0' 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 article if (!isset($base_score)) { $base_score = $related['score']; } // Ignore this article if ($related['id'] == $artid) { 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)) { $column = 'col-md-6'; $showRelated = true; } } if ($article['catid'] == 1) { $link = 'knowledgebase.php'; } else { $link = 'knowledgebase.php?category=' . $article['catid']; } ?>

:

:

:

:

' . $hesklang['rating'] . ' (' . $hesklang['votes'] . '): ' . $alt . ' (' . $article['votes'] . ')

'; } ?>

$subject) { echo ' ' . $subject . '
'; } ?>
 ' . $hesklang['kb_cat'] . ': ' . $thiscat['name'] . '
'; } $result = hesk_dbQuery("SELECT `id`,`name`,`articles` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` WHERE `parent`='{$catid}' AND `type`='0' ORDER BY `cat_order` ASC"); if (hesk_dbNumRows($result) > 0) { ?>

'; } echo ' '; if ($i == $per_col) { echo ''; $i = 0; } $i++; } /* Finish the table if needed */ if ($i != 1) { for ($j = 1; $j <= $per_col; $j++) { echo ''; if ($i == $per_col) { echo ''; break; } $i++; } } ?>
'; /* Print most popular/sticky articles */ if ($hesk_settings['kb_numshow'] && $cat['articles']) { $res = hesk_dbQuery("SELECT `id`,`subject`, `sticky` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` WHERE `catid`='{$cat['id']}' AND `type`='0' ORDER BY `sticky` DESC, `views` DESC, `art_order` ASC LIMIT " . (intval($hesk_settings['kb_numshow']) + 1)); $num = 1; while ($art = hesk_dbFetchAssoc($res)) { $icon = 'glyphicon glyphicon-file'; $style = ''; if ($art['sticky']) { $icon = 'glyphicon glyphicon-pushpin'; $style = 'style="color: #FF0000"'; } echo ' '; if ($num == $hesk_settings['kb_numshow']) { break; } else { $num++; } } if (hesk_dbNumRows($res) > $hesk_settings['kb_numshow']) { echo ''; } } echo '
 ' . $cat['name'] . '
       ' . $art['subject'] . '
» ' . $hesklang['m'] . '
 
0 ?>

'; } else { while ($article = hesk_dbFetchAssoc($res)) { $icon = 'fa fa-file'; $color = ''; $style = ''; $txt = hesk_kbArticleContentPreview($article['content']); if ($article['sticky']) { $icon = 'glyphicon glyphicon-pushpin'; $style = 'style="color: #FF0000"'; } if ($hesk_settings['kb_rating']) { $alt = $article['rating'] ? sprintf($hesklang['kb_rated'], sprintf("%01.1f", $article['rating'])) : $hesklang['kb_not_rated']; $rat = ''; } else { $rat = ''; } echo ' ' . $rat . ' '; } } ?>
' . $hesklang['noac'] . '
' . $alt . '
' . $article['subject'] . '
' . $txt . '
 
'; } } ?>