Example #1
0
function KB_searchmain()
{
    global $context, $modSettings, $txt, $scripturl, $user_info, $smcFunc;
    $context['sub_template'] = 'kb_searchmain';
    $context['page_title'] = $txt['kb_searchforform1'];
    $context['linktree'][] = array('url' => $scripturl . '?action=kb;area=searchmain', 'name' => $txt['kb_searchforform1']);
    isAllowedTo('search_kb');
    if (empty($modSettings['kb_esearch'])) {
        redirectexit();
    }
    if ($context['user']['is_guest']) {
        $groupid = -1;
    } else {
        $groupid = $user_info['groups'][0];
    }
    $result = $smcFunc['db_query']('', '
	    SELECT c.kbid, c.name, c.id_parent, p.view
	    FROM {db_prefix}kb_category AS c
		LEFT JOIN {db_prefix}kb_catperm AS p ON (p.id_group = {int:groupid} AND c.kbid = p.id_cat)', array('groupid' => $groupid));
    $context['knowcat'] = array();
    while ($row = $smcFunc['db_fetch_assoc']($result)) {
        $context['knowcat'][] = $row;
    }
    $smcFunc['db_free_result']($result);
    KB_PrettyCategory();
}
Example #2
0
function KB_edit()
{
    global $smcFunc, $scripturl, $modSettings, $sourcedir, $user_info, $kname, $txt, $context;
    if (!isset($_GET['save']) || isset($_REQUEST['preview'])) {
        $context['sub_template'] = 'kb_edit';
        $request = $smcFunc['db_query']('', '
		    SELECT title,id_cat,id_member
            FROM {db_prefix}kb_articles
		    WHERE kbnid = {int:kbnid} AND approved = 1
            LIMIT 1', array('kbnid' => (int) $_GET['aid']));
        list($kname, $cat, $memberid) = $smcFunc['db_fetch_row']($request);
        $smcFunc['db_free_result']($request);
        $context['linktree'][] = array('url' => $scripturl . '?action=kb;area=edit;aid=' . $_GET['aid'] . '', 'name' => '' . $txt['kb_xubcat2'] . ' - ' . $kname . '');
        if (!KBAllowedto($cat, 'editanyarticle') && $memberid != $user_info['id']) {
            fatal_lang_error('cannot_add_knowledge', false);
        }
        $result = $smcFunc['db_query']('', '
	        SELECT k.kbnid,k.content,k.source,k.title,k.id_cat,k.id_member,k.featured
	        FROM {db_prefix}kb_articles AS k
	        WHERE kbnid = {int:kbnid}
		    LIMIT 1', array('kbnid' => (int) $_GET['aid']));
        $context['edit'] = array();
        while ($row = $smcFunc['db_fetch_assoc']($result)) {
            $context['edit'][] = array('content' => $row['content'], 'source' => $row['source'], 'title' => $row['title'], 'kbnid' => $row['kbnid'], 'id_cat' => $row['id_cat'], 'id_member' => $row['id_member'], 'featured' => $row['featured']);
        }
        if (isset($_REQUEST['preview'])) {
            KB_showediterpreview($_POST['name'], $_POST['description'], 'kb_edit');
        }
        KB_showediter(!empty($_POST['description']) ? $_POST['description'] : $context['edit'][0]['content'], 'description');
        if ($context['user']['is_guest']) {
            $groupid = -1;
        } else {
            $groupid = $user_info['groups'][0];
        }
        $result = $smcFunc['db_query']('', '
	        SELECT c.kbid, c.name, p.view, c.id_parent
	        FROM {db_prefix}kb_category AS c
		    LEFT JOIN {db_prefix}kb_catperm AS p ON (p.id_group = {int:groupid} AND c.kbid = p.id_cat)', array('groupid' => $groupid));
        $context['knowcat'] = array();
        while ($row = $smcFunc['db_fetch_assoc']($result)) {
            $context['knowcat'][] = $row;
        }
        KB_PrettyCategory();
        $context['kb_article_images'] = array();
        $dbresult = $smcFunc['db_query']('', "\n\t\t    SELECT thumbnail, filesize, filename, id_file  \n\t\t\tFROM {db_prefix}kb_attachments \n\t\t\tWHERE id_article = " . (int) $_GET['aid']);
        $context['kb_article_images'] = array();
        while ($row = $smcFunc['db_fetch_assoc']($dbresult)) {
            $context['kb_article_images'][] = $row;
        }
        $smcFunc['db_free_result']($dbresult);
    }
    if (isset($_GET['save']) && !isset($_REQUEST['preview'])) {
        checkSession();
        kb_checkAttachment();
        if (allowedTo('manage_kb')) {
            $_POST['memid'] = $_POST['memid'];
        } else {
            $_POST['memid'] = $context['edit'][0]['id_member'];
        }
        $_POST['name'] = $smcFunc['htmlspecialchars']($_POST['name'], ENT_QUOTES);
        $_POST['description'] = $smcFunc['htmlspecialchars']($_POST['description'], ENT_QUOTES);
        $_POST['memid'] = (int) $_POST['memid'];
        $_POST['featured'] = isset($_POST['featured']) ? 1 : 0;
        if (empty($_POST['name'])) {
            fatal_lang_error('knowledgebase_emtytitle', false);
        }
        if (empty($_POST['description'])) {
            fatal_lang_error('knowledgebase_emtytitle', false);
        }
        $attachment_params = array('article_id' => (int) $_GET['aid'], 'article_edit' => true);
        kb_makeAttachment($attachment_params);
        if (allowedTo('manage_kb')) {
            $query_params = array('table' => 'kb_articles', 'set' => 'title = {string:name}, source = {string:source}, content = {string:description}, id_cat = {int:cat}, id_member = {int:memid}, featured = {int:featured}', 'where' => 'kbnid = {int:kbid}');
        } else {
            $query_params = array('table' => 'kb_articles', 'set' => 'title = {string:name}, source = {string:source}, content = {string:description}, id_cat = {int:cat}, featured = {int:featured}', 'where' => 'kbnid = {int:kbid}');
        }
        $query_data = array('kbid' => (int) $_GET['aid'], 'name' => $_POST['name'], 'source' => $_POST['source'], 'description' => $_POST['description'], 'cat' => $_POST['cat'], 'featured' => (int) $_POST['featured']);
        if (allowedTo('manage_kb')) {
            $query_data['memid'] = $_POST['memid'];
        }
        kb_UpdateData($query_params, $query_data);
        KBrecountItems();
        KB_cleanCache();
        $mes = '' . $txt['kb_log_text5'] . ' <strong><a href="' . $scripturl . '?action=kb;area=article;cont=' . $_GET['aid'] . '">' . $_POST['name'] . '</a></strong>';
        KB_log_actions('edit_article', $_GET['aid'], $mes);
        redirectexit('action=kb;area=article;cont=' . $_GET['aid'] . ';edited');
    }
}