Искать  
 
   
 
Обработка результатов поиска в одном шаблоне
Отправлено: 19 Декабрь 2008 07:10 P.M.   [ Игнорировать ]
Новичок
Rank
Всего сообщений:  35
Зарегистрирован  2008-10-13

Привет!
пытаюсь оформить результаты поиска в следующем шаблоне, этот шаблон имеет имя “s”:

<div class="block">
        
{exp:search:simple_form weblog="{my_weblog}" search_in="everywhere" id="searchform" no_result_page="s/no_result" result_page="s"  }
                
<input type="text" value="" name="keywords" id="keywords" class="txtField" />
                <
input type="submit" id="searchsubmit" class="btnSearch" value="Find It »" />
        
{/exp:search:simple_form}
</div>

{if segment_2 == 'no_result' || segment_2 == ''}
              No Result    
{if
:else}
            {exp
:search:search_results}
                  
<h3><a href="{permalink}" rel="bookmark" title="Permanent Link to {title}">{title}</a></h3>
                  <
div>{body}</div>
            
{/exp:search:search_results}
{
/if} 

при положительном результате поиска как бы все честно.
если результата нет, блок “No Result” упорно не хочет отображаться, вместо него выдается системный шаблон с соответствующим сообщением.
при удалении кода

{exp:search:search_results}
.....
{/exp:search:search_results} 

из шаблона, все начинает отрабатывается правильно.
т.е. фактически проблема заключается  в том, что движок отрабатывает блок результатов поиска даже если формально по условию этот блок не должен отрабатываться.

Профиль
 
 
Отправлено: 19 Декабрь 2008 07:16 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

попробуйте так

<div class="block">
        
{exp:search:simple_form weblog="{my_weblog}" search_in="everywhere" id="searchform" no_result_page="s/no_result" result_page="s"  }
                
<input type="text" value="" name="keywords" id="keywords" class="txtField" />
                <
input type="submit" id="searchsubmit" class="btnSearch" value="Find It »" />
        
{/exp:search:simple_form}
</div>

            
{exp:search:search_results}

{if segment_2 
== 'no_result' || segment_2 == ''}
              No Result    
{if
:else}
                  
<h3><a href="{permalink}" rel="bookmark" title="Permanent Link to {title}">{title}</a></h3>
                  <
div>{body}</div>

{/if} 
            {
/exp:search:search_results} 
 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 19 Декабрь 2008 07:33 P.M.   [ Игнорировать ]   [ # 2 ]
Новичок
Rank
Всего сообщений:  35
Зарегистрирован  2008-10-13

не помогло :(
да собственно, в варианте когда условия внутри блока search_results
при отсутствии результата поиска до них обработчик никогда не дойдет.
здается мне это какой-то хитрый баг в парсере шаблонов.
правда у меня версия ЕЕ 1.6.4, попробую обновится до последней.

Профиль
 
 
Отправлено: 19 Декабрь 2008 08:29 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

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

 Подпись 

booooring…

Профиль
 
 
Отправлено: 20 Декабрь 2008 08:04 A.M.   [ Игнорировать ]   [ # 4 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

а если

<div class="block">
        
{exp:search:simple_form weblog="{my_weblog}" search_in="everywhere" id="searchform" result_page="s"  }
                
<input type="text" value="" name="keywords" id="keywords" class="txtField" />
                <
input type="submit" id="searchsubmit" class="btnSearch" value="Find It »" />
        
{/exp:search:simple_form}
</div>

            
{exp:search:search_results}

                  
<h3><a href="{permalink}" rel="bookmark" title="Permanent Link to {title}">{title}</a></h3>
                  <
div>{body}</div>

{if no_results}
              No Result    
{
/if}
            {
/exp:search:search_results} 
 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 20 Декабрь 2008 09:02 A.M.   [ Игнорировать ]   [ # 5 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

if_no_results - а у нас есть такой параметр?

 Подпись 

booooring…

Профиль
 
 
Отправлено: 20 Декабрь 2008 09:07 A.M.   [ Игнорировать ]   [ # 6 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

исправил, if no_results

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 20 Декабрь 2008 11:53 P.M.   [ Игнорировать ]   [ # 7 ]
Новичок
Rank
Всего сообщений:  35
Зарегистрирован  2008-10-13

все таки я думаю что это какая то замануха с движком, обновил до версии 1.6.6,
пробовал менять параметры пхп-парсинга, все одно двиг зачем-то обрабатывает
весь шаблон, например если сделать условие абсолютно абсурдным типа

{if segment_2 == 'какаято фигня'}
            {exp
:search:search_results}
                  
<h3><a href="{permalink}" rel="bookmark" title="Permanent Link to {title}">{title}</a></h3>
                  <
div>{body}</div>
            
{/exp:search:search_results}
{
/if} 

то при просмотре шаблона в браузере, упорно отрабатывается блок  {exp:search:search_results}.
Кто нить владеющий нормальным английским может этот вопрос транслировать на официальный сайт в их форум поддержки?

Профиль
 
 
Отправлено: 21 Декабрь 2008 12:24 A.M.   [ Игнорировать ]   [ # 8 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

честно говоря - бесполезно. Эта тема поднимается в форуме раз в год и постоянно остается без внимания (пример). Это ограничения самого модуля search и переписывать его логику сейчас никто не будет. Думаю до 2.0 мы точно ничего не увидим.

p.s. шаблон серча обрабатывает не двиг(это уже более высокий уровень), а конкретно модуль поиска, если в него не заложены условия прерывания, вы ничего не получите.

 Подпись 

booooring…

Профиль