Список из 10 часто используемых слов в поиске отображается под полем поиска
gegelga(1 год назад)
И снова для вас очень полезная вещь! У меня на сайте уже давно была идея сделать возможность просмотра списка часто используемых слов под полем поиска.
Как это работает? Клиенты задают на вашем сайте слова в поле поиска, эти слова сохраняются в файле search_history.dat в папке mod.search. Слова, которые часто повторяются, добавляются в список из 10 слов на сайте под полем поиска. На эти слова можно нажать, и сразу же будет осуществлен поиск по выбранному слову.
Что нужно сделать, в модуле mod.search создаём файл search_history.php с кодом:
<?php// Path to the search history file
$history_file = './modules/mod.search/search_history.dat';
// If a search is performed, write the search term to the file
if (isset($_POST['q'])) {
// Sanitize and validate search term
$search_term = filter_input(INPUT_POST, 'q', FILTER_SANITIZE_STRING);
if (empty($search_term)) {
// Invalid search term, do not proceed
die('Invalid search term');
}
$search_date = date('Y-m-d H:i:s');
$entry = $search_term . '|' . $search_date . "\n";
// Use secure file permissions to prevent unauthorized access
if (!is_writable($history_file) || !is_readable($history_file)) {
die('Search history file not accessible');
}
file_put_contents($history_file, $entry, FILE_APPEND);
// Limit number of entries to 100
$lines = file($history_file);
if (count($lines) > 100) {
$new_lines = array_slice($lines, -100);
file_put_contents($history_file, implode('', $new_lines));
}
}
// Limit number of entries to 10 and prevent duplicates
$lines = file($history_file);
$search_count = array_count_values($lines);
arsort($search_count);
// Display popular search terms
echo '<div class="popular-searches">';
echo '<p>Часто используемые слова в поиске:</p>';
echo '<ul>';
$popular_search_terms = array();
foreach ($search_count as $term => $count) {
if (count($popular_search_terms) >= 10) {
break;
}
$search_term_parts = explode('|', $term);
$search_term = $search_term_parts[0];
if (!in_array($search_term, $popular_search_terms)) {
$popular_search_terms[] = $search_term;
echo '<li><a href="/search?q=' . $search_term . '" class="search-term">' . $search_term . '</a></li>';
}
}
echo '</ul>';
echo '</div>';
?>
В шаблоне под формой поиска размещаете это код:
<?php$history_file = './modules/mod.search/search_history.php';
include($history_file);
?>
Добавляем стили КСС для вывода списка слов:
/* Liste der meist gesuchten Wörter-Stile */.popular-searches {
margin-top: 20px;
}
.popular-searches p {
font-weight: bold;
margin-bottom: 5px;
}
.popular-searches ul {
list-style: none;
padding: 0;
margin: 0;
}
.popular-searches li {
display: inline-block;
margin-right: 10px;
}
.popular-searches a {
color: #0077cc;
text-decoration: none;
}
.popular-searches a:hover {
text-decoration: underline;
}
Пользуйтесь и не забудьте указать при пользовании обратную ссылку на мой сайт https://bi-verleih.de/
Вернуться назад к другим темам