$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;
$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); }
} 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&cat=%d&id=%d&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;
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); }
$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 = '';
$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;