вывод результатов поиска в отдельную страницу

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

вывод результатов поиска в отдельную страницу

Post by m00nk »

Суть: добавляем в тег {search} параметр resultpage="здесь алиас страницы", чтобы выводило результаты на указанной странице. После этого поиск прилежно отображает указанную страницу, но забывает нарисовать на ней результаты поиска, т.е. просто отображает контент страницы на момент ее создания.

Если параметр из тега выкинуть, поиск начинает нормально работать, но результаты выводит в шаблон той страницы, на которой собственно поиск инициировали, а это не приемлемо.

Кто-нить знает решение?

ЗЫ
Версия 1.9.1
I hate CMSMS. :(
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

Добавьте в вызов

Code: Select all

{search}
это

Code: Select all

search_method="post"
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

Re: вывод результатов поиска в отдельную страницу

Post by m00nk »

guro wrote:Добавьте в вызов

Code: Select all

{search}
это

Code: Select all

search_method="post"
добавлял, не помогло. Да и не должно было помочь вообще-то.
I hate CMSMS. :(
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

Включен ли ЧПУ? Если включен ЧПУ, что в htaccess?
Интересует вот эта часть

Code: Select all

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_METHOD} !POST$
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
есть ли строка

Code: Select all

RewriteCond %{REQUEST_METHOD} !POST$
?
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

Re: вывод результатов поиска в отдельную страницу

Post by m00nk »

Да при чем здесь ЧПУ и посты?

Каким боком ЧПУ может мешать поиску при выводе результатов на указанной мной странице, и при этом совершенно не мешать при выводе в текущую страницу? У ж если бы что-то тут мешало поиску, то он бы не работал совсем и везде, не так ли?

Но раз хотите, вот содержимое htaccess:

Code: Select all

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
I hate CMSMS. :(
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

Если вы пришли на форум поругаться, то вам никто в таком случае помогать не будет!!!

А теперь приведите свой htaccess к виду

Code: Select all

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_METHOD} !POST$
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
т.е. добавьте строку

Code: Select all

RewriteCond %{REQUEST_METHOD} !POST$
И вызовите

Code: Select all

{search search_method="post" resultpage="здесь алиас страницы"}
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

Re: вывод результатов поиска в отдельную страницу

Post by m00nk »

Спасибо, заработало.

А можете мне объяснить, с какого перепугу поиск реагирует на настройки mod_rewrite? А то у меня сейчас рожа, как у кота на Вашем аватаре...
I hate CMSMS. :(
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

Дело в том, что без строчки

Code: Select all

RewriteCond %{REQUEST_METHOD} !POST$
htaccess при редиректе, с url без конечного слеша на url с конечным слешем, убивает все переменные переданные через POST. Соответственно и страница получается без результата поиска.

А вот почему не работает через GET - это действительно интересно. Причем не только на 1.9, но и на 1.10. Возможно стоит написать в Forge.

Так что вопрос остается открытым. Может кто-то фиксил эту проблему?
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

Кстасти, вот что написано в описании модуля

Code: Select all

(optional) search_method="get" - Совместимость с Pretty Urls c помощью метода POST, по умолчанию параметры передаются в GET, чтобы изменить используйте {search search_method="post"}
Видимо из-за этого с ЧПУ и не работает GET
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

Re: вывод результатов поиска в отдельную страницу

Post by m00nk »

guro wrote:Дело в том, что без строчки

Code: Select all

RewriteCond %{REQUEST_METHOD} !POST$
htaccess при редиректе, с url без конечного слеша на url с конечным слешем, убивает все переменные переданные через POST. Соответственно и страница получается без результата поиска.
т.е. решение проблемы - допилить модуль, чтобы в генерируемый форме в action приписывался адрес с слешем на конце. Ау, разработчики!
guro wrote:А вот почему не работает через GET - это действительно интересно. Причем не только на 1.9, но и на 1.10.
в версиях 1.6.ххх точно работало без допиливаний и по GET и по POST.

Еще раз спасибо за решение. Просто я всегда стараюсь руководствоваться логикой, но в случае CMSMS такое подход неприемлем. Уж не первый раз убеждаюсь. :(
I hate CMSMS. :(
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: вывод результатов поиска в отдельную страницу

Post by guro »

m00nk wrote:Просто я всегда стараюсь руководствоваться логикой, но в случае CMSMS такое подход неприемлем
При включенном ЧПУ вполне логично грешить на htaccess. Ведь именно mod_rewrite первым обрабатывает все запросы к серверу и преобразует их к другому виду.
User avatar
m00nk
Forum Members
Forum Members
Posts: 57
Joined: Wed Sep 09, 2009 10:48 pm

Re: вывод результатов поиска в отдельную страницу

Post by m00nk »

первая попытка была именно с передачей через GET, поэтому позже я уже был уверен, что косяк внутри модуля, а внешние факторы ни при чем...
I hate CMSMS. :(
Post Reply

Return to “Russian - русский”