Jump to content

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


Recommended Posts

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

Я пока пытаюсь это сделать своими силами. Познания в 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.

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

Edited by Яша
Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
В 19.09.2021 в 08:25, phukortsin сказал:

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...