Ejemplo n.º 1
0
$plr = new PMF_Language_Plurals($PMF_LANG);
PMF_String::init($language);
// Set empty result
$result = array();
// Handle actions
switch ($action) {
    case 'getVersion':
        $result = array('version' => $faqconfig->get('main.currentVersion'));
        break;
    case 'getApiVersion':
        $result = array('apiVersion' => (int) $faqconfig->get('main.currentApiVersion'));
        break;
    case 'search':
        $search = new PMF_Search($db, $Language);
        $searchString = PMF_Filter::filterInput(INPUT_GET, 'q', FILTER_SANITIZE_STRIPPED);
        $result = $search->search($searchString, false);
        $url = $faqconfig->get('main.referenceURL') . '/index.php?action=artikel&cat=%d&id=%d&artlang=%s';
        foreach ($result as &$data) {
            $data->answer = html_entity_decode(strip_tags($data->answer), ENT_COMPAT, 'utf-8');
            $data->answer = PMF_Utils::makeShorterText($data->answer, 12);
            $data->link = sprintf($url, $data->category_id, $data->id, $data->lang);
        }
        break;
    case 'getCategories':
        $category = new PMF_Category($current_user, $current_groups, true);
        $result = $category->categories;
        break;
    case 'getFaqs':
        $faq = new PMF_Faq($current_user, $current_groups);
        $result = $faq->getAllRecordPerCategory($categoryId);
        break;
Ejemplo n.º 2
0
    $searchResult = $faq->showAllRecordsByIds($recordIds);
} else {
    $searchResult = '';
}
//
// Handle the full text search stuff
//
if (!is_null($inputSearchTerm) || !is_null($search)) {
    if (!is_null($inputSearchTerm)) {
        $inputSearchTerm = $db->escape_string(strip_tags($inputSearchTerm));
    }
    if (!is_null($search)) {
        $inputSearchTerm = $db->escape_string(strip_tags($search));
    }
    $faqSearch->setCategory($inputCategory);
    $searchResults = $faqSearch->search($inputSearchTerm, $allLanguages);
    $faqSearchResult->reviewResultset($searchResults);
    $inputSearchTerm = stripslashes($inputSearchTerm);
    $faqSearch->logSearchTerm($inputSearchTerm);
}
// Change a little bit the $searchCategory value;
$inputCategory = '%' == $inputCategory ? 0 : $inputCategory;
$faqsession->userTracking('fulltext_search', $inputSearchTerm);
if (is_numeric($inputSearchTerm) && PMF_SOLUTION_ID_START_VALUE <= $inputSearchTerm && 0 < $faqSearchResult->getNumberOfResults()) {
    // Before a redirection we must force the PHP session update for preventing data loss
    session_write_close();
    if (PMF_Configuration::getInstance()->get('main.enableRewriteRules')) {
        header('Location: ' . PMF_Link::getSystemUri('/index.php') . '/solution_id_' . $inputSearchTerm . '.html');
    } else {
        header('Location: ' . PMF_Link::getSystemUri('/index.php') . '/index.php?solution_id=' . $inputSearchTerm);
    }
Ejemplo n.º 3
0
 }
 if (!is_null($name) && !empty($name) && !is_null($email) && !empty($email) && !is_null($question) && !empty($question) && checkBannedWord(PMF_String::htmlspecialchars($question))) {
     if (PMF_Configuration::getInstance()->get('records.enableVisibilityQuestions')) {
         $visibility = 'N';
     } else {
         $visibility = 'Y';
     }
     if (1 != $save) {
         $cleanQuestion = PMF_Stopwords::getInstance()->clean($question);
         $user = new PMF_User_CurrentUser();
         $faqSearch = new PMF_Search($db, $Language);
         $faqSearchResult = new PMF_Search_Resultset($user, $faq);
         $searchResult = array();
         $mergedResult = array();
         foreach ($cleanQuestion as $word) {
             $searchResult[] = $faqSearch->search($word);
         }
         foreach ($searchResult as $resultSet) {
             foreach ($resultSet as $result) {
                 $mergedResult[] = $result;
             }
         }
         $faqSearchResult->reviewResultset($mergedResult);
         if (0 < $faqSearchResult->getNumberOfResults()) {
             $response = sprintf('<p>%s</p>', $plr->GetMsg('plmsgSearchAmount', $faqSearchResult->getNumberOfResults()));
             $response .= '<ul>';
             foreach ($faqSearchResult->getResultset() as $result) {
                 $url = sprintf('/index.php?action=artikel&amp;cat=%d&amp;id=%d&amp;artlang=%s', $result->category_id, $result->id, $result->lang);
                 $oLink = new PMF_Link(PMF_Configuration::getInstance()->get('main.referenceURL') . $url);
                 $oLink->text = PMF_Utils::chopString($result->question, 15);
                 $oLink->itemTitle = $result->question;
Ejemplo n.º 4
0
    if ($user->perm instanceof PMF_Perm_PermMedium) {
        $current_groups = $user->perm->getUserGroups($current_user);
    } else {
        $current_groups = array(-1);
    }
    if (0 == count($current_groups)) {
        $current_groups = array(-1);
    }
} else {
    $user = new PMF_User_CurrentUser();
    $current_user = -1;
    $current_groups = array(-1);
}
$faq = new PMF_Faq();
$faqSearch = new PMF_Search($db, $language);
$faqSearchResult = new PMF_Search_Resultset($user, $faq);
$categoryData = new PMF_Category_Tree_DataProvider_SingleQuery($LANGCODE);
$categoryLayout = new PMF_Category_Layout(new PMF_Category_Tree_Helper(new PMF_Category_Tree($categoryData)));
//
// Handle the search requests
//
if (!is_null($searchString)) {
    $faqSearch->setCategory($categoryId);
    $searchResult = $faqSearch->search($searchString, false);
    $faqSearchResult->reviewResultset($searchResult);
    $faqSearchHelper = PMF_Helper_Search::getInstance();
    $faqSearchHelper->setSearchterm($searchString);
    $faqSearchHelper->setCategoryLayout($categoryLayout);
    $faqSearchHelper->setPlurals($plr);
    print $faqSearchHelper->renderInstantResponseResult($faqSearchResult);
}
Ejemplo n.º 5
0
            $mail->addCc($userEmail);
        }
        $mail->subject = '%sitename%';
        $mail->message = $questionMail;
        $retval = $mail->send();
    }
    return $retval;
}
if (!is_null($username) && !empty($usermail) && !empty($content) && IPCheck($_SERVER['REMOTE_ADDR']) && checkBannedWord(PMF_String::htmlspecialchars($content)) && $captcha->checkCaptchaCode($code)) {
    $pmf_sw = PMF_Stopwords::getInstance();
    $search_stuff = $pmf_sw->clean($content);
    $search = new PMF_Search($db, $Language);
    $search_result = array();
    $counter = 0;
    foreach ($search_stuff as $word) {
        $tmp = $search->search($word);
        foreach ($tmp as $foundItem) {
            if (!isset($foundItem->id, $search_result[$foundItem->category_id])) {
                $counter++;
                $foundItem->searchterm = PMF_String::htmlspecialchars(stripslashes($word), ENT_QUOTES, 'utf-8');
                $search_result[$foundItem->category_id][$foundItem->id] = $foundItem;
            }
        }
    }
    if ($search_result) {
        $faqUser = new PMF_Faq_User();
        $faqGroup = new PMF_Faq_Group();
        $search_result_html = '<p>' . $plr->GetMsg('plmsgSearchAmount', count($search_result)) . "</p>\n";
        $counter = 0;
        foreach ($search_result as $cat_id => $cat_contents) {
            $tmp_result_html = '';
Ejemplo n.º 6
0
     $result = array('version' => $faqConfig->get('main.currentVersion'));
     break;
 case 'getApiVersion':
     $result = array('apiVersion' => (int) $faqConfig->get('main.currentApiVersion'));
     break;
 case 'getCount':
     $faq = new PMF_Faq($faqConfig);
     $result = array('faqCount' => $faq->getNumberOfRecords($language));
     break;
 case 'search':
     $faq = new PMF_Faq($faqConfig);
     $user = new PMF_User($faqConfig);
     $search = new PMF_Search($faqConfig);
     $faqSearchResult = new PMF_Search_Resultset($user, $faq, $faqConfig);
     $searchString = PMF_Filter::filterInput(INPUT_GET, 'q', FILTER_SANITIZE_STRIPPED);
     $searchResults = $search->search($searchString, false);
     $url = $faqConfig->get('main.referenceURL') . '/index.php?action=artikel&cat=%d&id=%d&artlang=%s';
     $faqSearchResult->reviewResultset($searchResults);
     $result = array();
     foreach ($faqSearchResult->getResultset() as $data) {
         $data->answer = html_entity_decode(strip_tags($data->answer), ENT_COMPAT, 'utf-8');
         $data->answer = PMF_Utils::makeShorterText($data->answer, 12);
         $data->link = sprintf($url, $data->category_id, $data->id, $data->lang);
         $result[] = $data;
     }
     break;
 case 'getCategories':
     $category = new PMF_Category($faqConfig, $currentGroups, true);
     $category->setUser($currentUser);
     $category->setGroups($currentGroups);
     $result = $category->categories;