예제 #1
0
function template_kb_catadd()
{
    global $context, $txt, $scripturl;
    if (isset($_GET['added'])) {
        echo '<div style="text-align: center;" class="information"><strong>' . $txt['knowledgebasedeletecat2'] . '</strong></div>';
    }
    echo '
	<form action="', $scripturl, '?action=kb;area=catadd;save" method="post" accept-charset="', $context['character_set'], '" >';
    echo '<div class="cat_bar">
			<h3 class="catbg">' . $txt['knowledgebasecatadd'] . '</h3>
		 </div>
		<span class="upperframe"><span></span></span>
			<div class="roundframe">

			<dl class="register_form" >
			<dt>
			   <strong>' . $txt['kb_parent'] . '</strong>
			</dt><dd>
			<select name="cat">';
    echo '<option value="0">' . $txt['knowledgebasenone'] . '</option>';
    foreach ($context['knowcat'] as $i => $category) {
        if ($category['view'] != '0' && KBAllowedto($category['kbid'], 'addarticle')) {
            echo '
				        <option value="', $category['kbid'], '">', $category['name'], '</option>';
        }
    }
    echo '
			</select></dd>
			</dl>

			<dl class="register_form" >
			    <dt>
				    <strong>' . $txt['knowledgebasetitle'] . '</strong>
			    </dt>
			    <dd>
					<input type="text" name="title" value="" />
			    </dd>
			</dl>

			<dl class="register_form" >
			    <dt>
				    <strong>' . $txt['knowledgebasedescrip'] . '</strong>
			    </dt>
			    <dd>
					<textarea rows="6" name="description" cols="30"></textarea>
			    </dd>
			</dl>
			<dl class="register_form" >
			    <dt>
				    <strong>' . $txt['kbcimgurl'] . '</strong>
			    </dt>
			    <dd>
					<input type="text" name="image" size="64" maxlength="100" value="" />
			    </dd>
			</dl>
			<br />

			<div style="text-align: center;">
			    <input type="submit" name="submit" value="' . $txt['knowledgebasesubmit'] . '" class="button_submit" />
			    <input type="hidden" id="', $context['session_var'], '" name="', $context['session_var'], '" value="', $context['session_id'], '" />
			</div>

			</div>
			<span class="lowerframe"><span></span></span>';
    echo '
	</form>';
    template_kb_copy();
}
예제 #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');
    }
}
예제 #3
0
function KB_Menu()
{
    global $total_report, $total_approvecom, $total_approve, $txt, $sourcedir, $smcFunc, $scripturl, $sc, $user_info, $modSettings, $context, $kb_menutype;
    //Get approve, approve comments, report counts
    KB_approvecounts();
    KB_approvecomcounts();
    KB_reportcounts();
    //Add them all together
    $mcounts = $total_report + $total_approvecom + $total_approve;
    //Are we on an article?
    if (isset($_REQUEST['cont']) || isset($_GET['aid'])) {
        if (($context['knowmini'] = cache_get_data('kb_articles_menuinfo' . (isset($_GET['cont']) ? $_GET['cont'] : $_GET['aid']) . '', 3600)) === null) {
            //Guess so lets get some info on this article
            $result = $smcFunc['db_query']('', '
	            SELECT k.kbnid,k.id_cat,k.approved,id_member
	            FROM {db_prefix}kb_articles AS k
	            WHERE kbnid = {int:kbnid}', array('kbnid' => isset($_GET['cont']) ? (int) $_GET['cont'] : (int) $_GET['aid']));
            $context['knowmini'] = array();
            while ($row = $smcFunc['db_fetch_assoc']($result)) {
                $context['knowmini']['kbid'] = $row['kbnid'];
                $context['knowmini']['approved'] = $row['approved'];
                $context['knowmini']['id_cat'] = $row['id_cat'];
                $context['knowmini']['id_member'] = $row['id_member'];
            }
            $smcFunc['db_free_result']($result);
            cache_put_data('kb_articles_menuinfo' . (isset($_GET['cont']) ? $_GET['cont'] : $_GET['aid']) . '', $context['knowmini'], 3600);
        }
    }
    //Some menu Vars to use in menu
    $memid = !empty($context['knowmini']['id_member']) ? $context['knowmini']['id_member'] : 0;
    $category = !empty($_REQUEST['cat']) ? $_REQUEST['cat'] : 0;
    $category1 = !empty($context['knowmini']['id_cat']) ? $context['knowmini']['id_cat'] : 0;
    $cont = !empty($context['knowmini']['kbid']) ? $context['knowmini']['kbid'] : 0;
    $approved = !empty($context['knowmini']['approved']) ? 1 : 0;
    $categorynew = $category1 ? $category1 : $category;
    if (isset($_REQUEST['area'])) {
        $searchtab = $_REQUEST['area'] == 'searchmain' ? 'searchmain' : 'search';
        $editcattab = $_REQUEST['area'] == 'listcat' ? 'listcat' : 'permcat';
    } else {
        $searchtab = '';
        $editcattab = '';
    }
    //menu areas array
    $menuAreas = array('kb' => array('title' => $txt['kb_manage_main'], 'areas' => array('main' => array('label' => $txt['knowledgebase'], 'custom_url' => $scripturl . '?action=kb'), $searchtab => array('label' => $txt['kb_searchforform'], 'enabled' => allowedTo('search_kb') && !empty($modSettings['kb_esearch']), 'custom_url' => $scripturl . '?action=kb;area=searchmain'))), 'tools' => array('title' => $txt['kb_tool_main'], 'areas' => array('addknow' => array('label' => $txt['knowledgebasecataddedit1'], 'enabled' => KBAllowedto($categorynew, 'addarticle') || allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;area=addknow;cat=' . $categorynew), 'reporta' => array('label' => $txt['kb_reports22'], 'enabled' => allowedTo('rparticle_kb') && isset($_GET['cont']), 'custom_url' => $scripturl . '?action=kb;area=reporta;aid=' . $cont), 'unapprove' => array('label' => $txt['kb_alist2'], 'enabled' => allowedTo('manage_kb') && isset($_GET['cont']) && $approved == 1, 'custom_url' => $scripturl . '?action=kb;area=article;unapprove;inap=' . $cont . ';sesc=' . $sc . ''), 'approve' => array('label' => $txt['kb_alist1'], 'enabled' => allowedTo('manage_kb') && isset($_GET['cont']) && $approved == 0, 'custom_url' => $scripturl . '?action=kb;area=article;approve;aid=' . $cont . ';sesc=' . $sc . ''), 'delete' => array('label' => $txt['knowledgebase_del'], 'enabled' => KBAllowedto($category1, 'delanyarticle') && isset($_GET['cont']) || KBAllowedto($category1, 'delarticle') && $memid == $user_info['id'] && isset($_GET['cont']), 'custom_url' => $scripturl . '?action=kb;area=del;et=' . $cont . ';sesc=' . $sc . '" onclick="return confirm(\'' . $txt['knowledgebaseeditedsure'] . '\'); '), 'edit' => array('label' => $txt['knowledgebase_edit'], 'enabled' => KBAllowedto($category1, 'editanyarticle') && isset($_GET['cont']) || KBAllowedto($category1, 'editarticle') && $memid == $user_info['id'] && isset($_GET['cont']), 'custom_url' => $scripturl . '?action=kb;area=edit;aid=' . $cont), 'print' => array('label' => $txt['kb_print'], 'enabled' => isset($_GET['cont']), 'custom_url' => $scripturl . '?action=kb;area=article;cont=' . $cont . ';print'))), 'manage' => array('title' => $txt['kb_manage1'], 'areas' => array('admin' => array('label' => $txt['admin'], 'enabled' => allowedTo('admin_forum'), 'custom_url' => $scripturl . '?action=admin;area=kb'), 'manage' => array('label' => $txt['kb_manage1'] . ' (' . $mcounts . ')', 'enabled' => allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;area=manage'), 'catadd' => array('label' => $txt['knowledgebasecatadd'], 'enabled' => allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;area=catadd'), $editcattab => array('label' => $txt['knowledgebasecataddedit'], 'enabled' => allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;area=listcat'), 'cache' => array('label' => $txt['kb_menu_cache'], 'enabled' => allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;cache_clean'), 'recounta' => array('label' => $txt['kb_menu_ra'], 'enabled' => allowedTo('manage_kb'), 'custom_url' => $scripturl . '?action=kb;article_recount'), 'recountc' => array('label' => $txt['kb_menu_rc'], 'enabled' => allowedTo('manage_kb') && !empty($modSettings['kb_ecom']), 'custom_url' => $scripturl . '?action=kb;comment_recount'))));
    if (!allowedTo('manage_kb')) {
        unset($menuAreas['manage']);
    }
    //Work out the current area
    $current_area = isset($_REQUEST['area']) ? $_REQUEST['area'] : 'main';
    //These are needed when using toggle button
    if (isset($_GET['cat']) && $current_area == 'cats') {
        $context['current_get'] = ';cat=' . $_GET['cat'];
    } elseif (isset($_GET['cont']) && $current_area == 'article') {
        $context['current_get'] = ';cont=' . $_GET['cont'];
    } elseif (isset($_GET['aid']) && $current_area == 'reporta') {
        $context['current_get'] = ';aid=' . $_GET['aid'];
    } elseif (isset($_GET['cat']) && isset($_GET['aid']) && $current_area == 'edit') {
        $context['current_get'] = ';aid=' . $_GET['aid'] . ';cat=' . $_GET['cat'];
    } elseif (isset($_GET['aid']) && $current_area == 'edit') {
        $context['current_get'] = ';aid=' . $_GET['aid'];
    } elseif (isset($_GET['cat']) && $current_area == 'addknow') {
        $context['current_get'] = ';cat=' . $_GET['cat'];
    } elseif (isset($_GET['perm']) && $current_area == 'permcat') {
        $context['current_get'] = ';perm=' . $_GET['perm'];
    } elseif (isset($_GET['edit']) && $current_area == 'listcat') {
        $context['current_get'] = ';edit=' . $_GET['edit'];
    } elseif ($current_area == 'search' && isset($_REQUEST['search'])) {
        $context['current_get'] = ';q=' . (!empty($_SESSION['kb_search_query_encoded']) ? $_SESSION['kb_search_query_encoded'] : '') . ';sesc=' . $sc . '';
    } elseif ($current_area == 'search' && isset($_REQUEST['q'])) {
        $context['current_get'] = ';q=' . (!empty($_SESSION['kb_search_query_encoded']) ? $_SESSION['kb_search_query_encoded'] : '') . ';sesc=' . $sc . '';
    } else {
        $context['current_get'] = '';
    }
    //Define our menu type
    $menu_type = empty($modSettings['kb_menutype']) ? '_dropdown' : '_sidebar';
    //menu options array
    $menuOptions = array('menu_type' => $menu_type, 'disable_url_session_check' => true, 'toggle_redirect_url' => $scripturl . '?action=kb;area=' . $current_area . '' . $context['current_get'], 'toggle_url' => $scripturl . '?action=kb;area=' . $current_area . '' . $context['current_get'] . ';togglebar');
    //Member Choice
    if ($modSettings['kb_menutype'] == 2) {
        unset($menuOptions['menu_type']);
    }
    require_once $sourcedir . '/Subs-Menu.php';
    $kbmod_data = createMenu($menuAreas, $menuOptions);
}