Beispiel #1
0
function faq_mini($position, $block)
{
    global $Cache, $Template, $FAQ_LANG, $FAQ_CATS, $RANDOM_QUESTIONS;
    load_module_lang('faq');
    $Cache->load('faq');
    include_once PATH_TO_ROOT . '/faq/faq_begin.php';
    include_once PATH_TO_ROOT . '/faq/faq_cats.class.php';
    $tpl = new Template('faq/faq_mini.tpl');
    import('core/menu_service');
    MenuService::assign_positions_conditions($tpl, $block);
    $no_random_question = array('L_FAQ_RANDOM_QUESTION' => $FAQ_LANG['random_question'], 'FAQ_QUESTION' => $FAQ_LANG['no_random_question'], 'U_FAQ_QUESTION' => TPL_PATH_TO_ROOT . '/faq/' . url('faq.php'));
    if (empty($RANDOM_QUESTIONS)) {
        $tpl->assign_vars($no_random_question);
        return $tpl->parse(TEMPLATE_STRING_MODE);
    }
    $random_question = $RANDOM_QUESTIONS[array_rand($RANDOM_QUESTIONS)];
    $faq_cats = new FaqCats();
    $i = 0;
    while (!$faq_cats->check_auth($random_question['idcat']) && $i < 5) {
        $random_question = $RANDOM_QUESTIONS[array_rand($RANDOM_QUESTIONS)];
        $i++;
    }
    if ($i < 5 && !empty($random_question['question'])) {
        $tpl->assign_vars(array('L_FAQ_RANDOM_QUESTION' => $FAQ_LANG['random_question'], 'FAQ_QUESTION' => $random_question['question'], 'U_FAQ_QUESTION' => PATH_TO_ROOT . '/faq/' . ($random_question['idcat'] > 0 ? url('faq.php?id=' . $random_question['idcat'] . '&amp;question=' . $random_question['id'], 'faq-' . $random_question['idcat'] . '+' . url_encode_rewrite($FAQ_CATS[$random_question['idcat']]['name']) . '.php?question=' . $random_question['id']) . '#q' . $random_question['id'] : url('faq.php?question=' . $random_question['id'], 'faq.php?question=' . $random_question['id']) . '#q' . $random_question['id'])));
    } else {
        $tpl->assign_vars($no_random_question);
    }
    return $tpl->parse(TEMPLATE_STRING_MODE);
}
 function get_search_request($args)
 {
     global $Sql, $Cache;
     $Cache->load('faq');
     $weight = isset($args['weight']) && is_numeric($args['weight']) ? $args['weight'] : 1;
     require_once PATH_TO_ROOT . '/faq/faq_cats.class.php';
     $Cats = new FaqCats();
     $auth_cats = array();
     $Cats->build_children_id_list(0, $auth_cats);
     $auth_cats = !empty($auth_cats) ? " AND f.idcat IN (" . implode($auth_cats, ',') . ") " : '';
     $request = "SELECT " . $args['id_search'] . " AS id_search,\n            f.id AS id_content,\n            f.question AS title,\n            ( 2 * MATCH(f.question) AGAINST('" . $args['search'] . "') + MATCH(f.answer) AGAINST('" . $args['search'] . "') ) / 3 * " . $weight . " AS relevance, " . $Sql->concat("'../faq/faq.php?id='", "f.idcat", "'&amp;question='", "f.id", "'#q'", "f.id") . " AS link\n            FROM " . PREFIX . "faq f\n            WHERE ( MATCH(f.question) AGAINST('" . $args['search'] . "') OR MATCH(f.answer) AGAINST('" . $args['search'] . "') )" . $auth_cats . " ORDER BY relevance DESC " . $Sql->limit(0, FAQ_MAX_SEARCH_RESULTS);
     return $request;
 }
<?php

define('NO_SESSION_LOCATION', true);
require_once '../kernel/begin.php';
require_once '../kernel/header_no_display.php';
if ($User->check_level(ADMIN_LEVEL)) {
    include_once 'faq_cats.class.php';
    $faq_categories = new FaqCats();
    $id_up = retrieve(GET, 'id_up', 0);
    $id_down = retrieve(GET, 'id_down', 0);
    $id_show = retrieve(GET, 'show', 0);
    $id_hide = retrieve(GET, 'hide', 0);
    $cat_to_del = retrieve(GET, 'del', 0);
    $result = false;
    if ($id_up > 0) {
        $result = $faq_categories->move($id_up, MOVE_CATEGORY_UP);
    } elseif ($id_down > 0) {
        $result = $faq_categories->move($id_down, MOVE_CATEGORY_DOWN);
    } elseif ($id_show > 0) {
        $result = $faq_categories->change_visibility($id_show, CAT_VISIBLE, LOAD_CACHE);
    } elseif ($id_hide > 0) {
        $result = $faq_categories->change_visibility($id_hide, CAT_UNVISIBLE, LOAD_CACHE);
    }
    if ($result) {
        $cat_config = array('xmlhttprequest_file' => 'xmlhttprequest_cats.php', 'administration_file_name' => 'admin_faq_cats.php', 'url' => array('unrewrited' => 'faq.php?id=%d', 'rewrited' => 'faq-%d+%s.php'));
        $faq_categories->set_display_config($cat_config);
        $Cache->load('faq', RELOAD_CACHE);
        echo $faq_categories->build_administration_interface(AJAX_MODE);
    }
}
include_once '../kernel/footer_no_display.php';
<?php

require_once '../admin/admin_begin.php';
include_once 'faq_begin.php';
define('TITLE', $LANG['administration']);
require_once '../admin/admin_header.php';
include_once 'faq_cats.class.php';
$faq_categories = new FaqCats();
$id_up = retrieve(GET, 'id_up', 0);
$id_down = retrieve(GET, 'id_down', 0);
$id_show = retrieve(GET, 'show', 0);
$id_hide = retrieve(GET, 'hide', 0);
$cat_to_del = retrieve(GET, 'del', 0);
$cat_to_del_post = retrieve(POST, 'cat_to_del', 0);
$id_edit = retrieve(GET, 'edit', 0);
$new_cat = retrieve(GET, 'new', false);
$error = retrieve(GET, 'error', '');
$Template->set_filenames(array('admin_faq_cat' => 'faq/admin_faq_cats.tpl'));
$Template->assign_vars(array('L_FAQ_MANAGEMENT' => $FAQ_LANG['faq_management'], 'L_CATS_MANAGEMENT' => $FAQ_LANG['cats_management'], 'L_CONFIG_MANAGEMENT' => $FAQ_LANG['faq_configuration'], 'L_QUESTIONS_LIST' => $FAQ_LANG['faq_questions_list'], 'L_ADD_QUESTION' => $FAQ_LANG['add_question'], 'L_ADD_CAT' => $FAQ_LANG['add_cat']));
if ($id_up > 0) {
    $faq_categories->move($id_up, MOVE_CATEGORY_UP);
    redirect(url('admin_faq_cats.php'));
} elseif ($id_down > 0) {
    $faq_categories->move($id_down, MOVE_CATEGORY_DOWN);
    redirect(url('admin_faq_cats.php'));
} elseif ($id_show > 0) {
    $faq_categories->change_visibility($id_show, CAT_VISIBLE, LOAD_CACHE);
    redirect(url('admin_faq_cats.php'));
} elseif ($id_hide > 0) {
    $faq_categories->change_visibility($id_hide, CAT_UNVISIBLE, LOAD_CACHE);
    redirect(url('admin_faq_cats.php'));
Beispiel #5
0
            $id_cat_for_bread_crumb = (int) $FAQ_CATS[$id_cat_for_bread_crumb]['id_parent'];
            if (!empty($FAQ_CATS[$id_cat_for_bread_crumb]['auth'])) {
                $auth_write = $User->check_auth($FAQ_CATS[$id_cat_for_bread_crumb]['auth'], AUTH_WRITE);
            }
        }
        if ($auth_write) {
            if ($target != $question_infos['idcat']) {
                $max_order = $Sql->query("SELECT MAX(q_order) FROM " . PREFIX . "faq WHERE idcat = '" . $target . "'", __LINE__, __FILE__);
                $Sql->query_inject("UPDATE " . PREFIX . "faq SET idcat = '" . $target . "', q_order = '" . ($max_order + 1) . "' WHERE id = '" . $id_question . "'", __LINE__, __FILE__);
                $Sql->query_inject("UPDATE " . PREFIX . "faq SET q_order = q_order - 1 WHERE idcat = '" . $question_infos['idcat'] . "' AND q_order > '" . $question_infos['q_order'] . "'", __LINE__, __FILE__);
                if ($question_infos['idcat'] != 0) {
                    include_once 'faq_cats.class.php';
                    $faq_cats = new FaqCats();
                    $Sql->query_inject("UPDATE " . PREFIX . "faq_cats SET num_questions = num_questions - 1 WHERE id IN (" . implode(', ', $faq_cats->build_parents_id_list($question_infos['idcat'], ADD_THIS_CATEGORY_IN_LIST)) . ")", __LINE__, __FILE__);
                }
                if ($target != 0) {
                    include_once 'faq_cats.class.php';
                    $faq_cats = new FaqCats();
                    $Sql->query_inject("UPDATE " . PREFIX . "faq_cats SET num_questions = num_questions + 1 WHERE id IN (" . implode(', ', $faq_cats->build_parents_id_list($target, ADD_THIS_CATEGORY_IN_LIST)) . ")", __LINE__, __FILE__);
                }
                if ($question_infos['idcat'] != 0 || $target != 0) {
                    $Cache->Generate_module_file('faq');
                }
            }
            redirect(HOST . DIR . url('/faq/management.php?faq=' . $target, '', '&'));
        }
    }
    $Errorh->handler('e_auth', E_USER_REDIRECT);
} else {
    redirect(HOST . DIR . url('/faq/faq.php', '', '&'));
}