Перейти к содержанию
Официальный форум поддержки Simpla

Добавить в поиск на сайте, поиск по статьям


Рекомендуемые сообщения

Всем добрый день! Подскажите, пожалуйста. На сайте работает обычный поиск с автозаполнением только по товарам. Но, на сайте добавлено много статей и оказалось нужным добавить также поиск по статьям.

Я пока пытаюсь это сделать своими силами. Познания в php, js есть небольшие. Я добавил в файл search_products.php такой код 

// получение статей
	
	$simpla->db->query("SELECT a.name, a.image FROM __articles a
						WHERE (a.name LIKE '%$kw%' OR a.meta_keywords LIKE '%$kw%') 
						AND visible=1 
						ORDER BY a.name 
						LIMIT ?", $limit);
	$articles = $simpla->db->results();
	
	foreach($articles as $article)
	{
		$suggestion = new stdClass();
			
		$suggestion->value = $article->name;
		$suggestion->image = $article->image;
		$suggestion->table = 'articles';
		$suggestions[] = $suggestion;
	}

а в index.tpl 

if (suggestion.table === 'products') {
	return (suggestion.data.image?"<img align=absmiddle src='"+suggestion.data.image+"'> ":'') + suggestion.value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
} else if (suggestion.table === 'articles') {
   return (suggestion.image?"<img align=absmiddle src='files/articles/"+suggestion.image+"'> ":'') + suggestion.value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
}

и теперь в автозаполнение в поиске на сайте выводятся статьи. Но, когда я нажимаю в блоке автозаполнения на само название статьи, то при переходе на страницу поиска этой статьи там нет, страница пустая.

В файле articles.tpl есть такой код 

{elseif $keyword}
{$canonical="/search?keyword={$keyword|escape}" scope=parent}

И в файле products.tpl есть код 

{elseif $keyword}
{$canonical="/products?keyword={$keyword|escape}" scope=parent}

Но, какую бы статью в автозаполнении в поиске я не нажимал все идет переход на шаблон products.tpl. Я так понимаю, что если я выбираю статью в поиске, то переход должен идти на шаблон articles.tpl.

Подскажите, если кто знает как реализовать этот момент или подскажите в каком файле искать решение.

Изменено пользователем Яша
Ссылка на сообщение
Поделиться на другие сайты

В index.tpl надо переделывать фрагмент 

onSelect:
                function(suggestion){
                     $(".input_search").closest('form').submit();
                },

и переделывать формирование строк подсказки... 

Ссылка на сообщение
Поделиться на другие сайты
В 19.09.2021 в 08:25, phukortsin сказал:

В index.tpl надо переделывать фрагмент 

onSelect:
                function(suggestion){
                     $(".input_search").closest('form').submit();
                },

и переделывать формирование строк подсказки... 

Спасибо Вам за ответ. То, что отображает подсказка, меня устраивает. Дело именно в переходе после нажатия на иконку поиск или на сам товар или статью в подсказке. Но, проблему я уже устранил, догадался как вывести в шаблоне также и найденные статьи по ключевому запросу.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...