Последнее обновление: 10.02.2013 в 21:16
Подпишись на RSS
rss Подпишитесь на RSS, чтобы всегда быть в курсе событий.

Комментарии

Присоединяйтесь к обсуждению
  • Евгений: Доброго времени суток. Кто-то подскажет, как правильно настроить вывод мета-тэгов в результатах поиска. На...
  • Евгений: Доброго времени суток. Возник вопрос по специфике движка SilverStripe. Есть основное зеркало сайта вида...
  • Вадим: Спасибо помогло, сделал так date_timezone = Europe/Kiev
  • John Doe: Не помогло, шаблон все ровно всегда такой же как у главной страницы ((
  • Алексей: Здравствуйте. Спасибо за статью. Собираюсь осваивать MODx (сейчас сижу на WP) и статья очень пригодилась!...
15 Июнь 2011 · MODx

Раннеее я уже писал рецензию на превое издание книги «MODx Web Development» теперь я получил вторую версию этой книги Итак, по традиции обзор будет вестись по главам. Глава 1: Общая информация по системе. В этой главе, как и в большинстве подобных книг, дается пояснение что такое CMS и зачем она собственно нужна. Основные преимущества MODx [...]


15 Ноябрь 2012 · wordpress

Итак, друзья, после нескольких месяцев напряженной работы над чужими проектами, я наконец нашел время, для того что бы немножко поработать над своим плагином robokassa shortcode. Для тех кто не знает о чем идет речь можете посмотреть мою предыдущую статью все остальные добро пожаловать под кат Собственно о самом плагине Итак первое и в принципе единственное [...]


4 Декабрь 2009

Поиск в SilverStripe

Рубрика: SilverStripe. Метки:
Vote This Post DownVote This Post Up (No Ratings Yet)
Loading ... Loading ...

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

после чего необходимо поправить таблицу стилей для этой формы
сама форма имеет класс
SearchForm_SearchForm

соответственно поле ввода можно описать, как
SearchForm_SearchForm input

, а кнопку поиск, как
SearchForm_SearchForm_Search

Далее описываем страницу результатов поиска, для этого в каталоге Layouts создаем файл Page_results.ss с содержимым:

<div id="Content" class="searchResults">
<h2>$Title</h2>
&lt;% if Query %&gt;
 
<strong>You searched for "{$Query}"</strong>
 
  &lt;% end_if %&gt;
 
  &lt;% if Results %&gt;
 
 
<ul id="SearchResults">
      &lt;% control Results %&gt;
	<li>
          <a class="searchResultHeader" href="$Link">
            &lt;% if MenuTitle %&gt;
              $MenuTitle
            &lt;% else %&gt;
              $Title
            &lt;% end_if %&gt;
          </a>
 
$Content.LimitWordCountXML
 
          <a class="readMoreLink" title="Read more about &quot;{$Title}&quot;" href="$Link">Read more about "{$Title}"...</a></li>
&lt;% end_control %&gt;</ul>
&lt;% else %&gt;
 
Sorry, your search query did not return any results.
 
  &lt;% end_if %&gt;
 
  &lt;% if Results.MoreThanOnePage %&gt;
<div id="PageNumbers">
      &lt;% if Results.NotLastPage %&gt;
        <a class="next" title="View the next page" href="$Results.NextLink">Next</a>
      &lt;% end_if %&gt;
      &lt;% if Results.NotFirstPage %&gt;
        <a class="prev" title="View the previous page" href="$Results.PrevLink">Prev</a>
      &lt;% end_if %&gt;
      <span>
        &lt;% control Results.Pages %&gt;
          &lt;% if CurrentBool %&gt;
            $PageNum
          &lt;% else %&gt;
            <a title="View page number $PageNum" href="$Link">$PageNum</a>
          &lt;% end_if %&gt;
        &lt;% end_control %&gt;
      </span>
 
Page $Results.CurrentPage of $Results.TotalPages</div>
&lt;% end_if %&gt;</div>

Разберем этот шаблон на составляющие и посмотрим что он делает.

 &lt;% if Query %&gt;
 
<strong>You searched for "{$Query}"</strong>
 
  &lt;% end_if %&gt;

В случае если мы попали на страницу поиска по запросу, а не случайно :) эти три строчки, выведут нам собственно сам запрос
Далее видим блок вида

&lt;% if Results %&gt;
<ul id="SearchResults">
      &lt;% control Results %&gt;
        ...
      &lt;% end_control %&gt;</ul>
&lt;% else %&gt;
 
Sorry, your search query did not return any results.
 
  &lt;% end_if %&gt;

Здесь первым делом проверяется есть ли, что-нибудь в результатах поиска. Если да выводим каждый из них в отдельном шаблоне если нет сообщения с извинениями.
Далее и до конца файла идет код, отвечающий за разделение на страницы в принципе ни чего сложного, т.к всю основную работу система берет на себя. Просто проверяем попадает ли под критерий поиска больше страниц чем выводится и если да выводим в под результатами поиска список ссылок на остальные страницы с результатами.
Вот, собственно и все простейший вариант поиска готов. Далее я опишу как создавать более сложные формы для поиска и изменять уже написанную.

Читайте так же:



  • Евгений

    Доброго времени суток.
    Кто-то подскажет, как правильно настроить вывод мета-тэгов в результатах поиска.

    На странице отображаются: h1, description, title.
    Но в результатах поиска не добавляется текст из h1 в description и title.
    И получаются все страницы с одинаковыми description и title ((

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

Счетчик