Drupal + Views: Как вывести количество найденных материалов

Представления, реализуемые при помощи модуля Views существенно сокращают обьем ручной работы, при создании различных выборок данных сайта, начиная с извлечения информации из базы и заканчивая форматированием и визуальным оформлением для показа этой информации посетителям сайта.

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

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

  1. Откройте Структура > Представления > Имя вашего представления.
  2. Нажмите Расширенный, для того, чтоб отобразить расширенные параметры представления, располагающийся справа > Тема оформления: Информация
  3. Создайте в папке, где располагается тема сайта, файл, имя которого вы можете найти в окне Имя отображения: Информация темизации. Например, можно выбрать имя views-view--имя-представления--page.tpl.php. Обратите внимание, что жирным подсвечиивается имя шаблона, используемого представлением.
  4. Нажмите Вывод отображения, выделите и скопируйте в буффер обмена весь код.
  5. Вставьте скопированный код в созданный вами файл, сохраните его и обновите страницу, на которой открыто представление, повторно откройте Тема оформления: Информация. Файл пока не закрывайте, нам он дальше еще понадобится.
  6. Обратите внимание, что в списке появился файл, созданный вами и он подсвечен жирным шрифтом. Это обозначает, что файл будет использован в качестве шаблона настраиваемого представления.

Теперь, для того, чтоб показать количество найденных материалов, перейдите к открытому файлу шаблона представления и вставьте в него следующий кусок кода, после блока, выводящего содержимое переменной $exposed:

<div class="view-result-count">
   <?php echo t('Showing !count of !total view item', array('!count' => count($view->result), '!total' => $view->total_rows)); ?>
</div>

В результате, файл шаблона будет выглядеть приблизительно так:

<?php if ($exposed): ?>
    <div class="view-filters">
      <?php print $exposed; ?>
    </div>
  <?php endif; ?>
 
  <div class="view-result-count">
    <?php echo t('Showing !count of !total view item', array('!count' => count($view->result), '!total' => $view->total_rows)); ?>
  </div>

 

В приведенном выше примере:

  • t() - Возвращает переведенную строку, с учетом того языка, который используется в системе, или текущим пользователем.
  • count() - возвращает количество строк в массиве.
  • $view->result содержит массив данных, полученных представлением из базы.
  • $view->total_rows количество записей, которое отображается представлением в данный момент, например, если используется постраничная навигация.

There is 1 Comment

Спасибо, помогло!

Спасибо, помогло!

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <s> <u> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <hr> <dd> <sub> <sup>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Защита от СПАМ ботов. Подтвердите, пожалуйста, что вы человек.
1 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.