Drupal Views 2: вывод с использованием пользовательской разметки - PullRequest
3 голосов
/ 06 декабря 2010

У меня есть простое представление, которое захватывает 4 поля, в основном это захватывает поля определенного типа контента.Поля следующие:
Класс CSS (простой текст)
Изображение (изображение)
Заголовок
Тело

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

   <div id="homepage-folio-portlets">
    <div class="homepage-folio-portlet [CSS class]">
     <div class="homepage-folio-portlet-image"><img src="[Image]" width="450" height="330" alt="" class="[CSS class]-image" /></div>
     <div class="homepage-folio-portlet-text">
      <strong>[Title]</strong>
      <p>[Body]</p>
     </div>
    </div> <!-- /homepage-folio-portlet -->
   </div> <!-- /homepage-folio-portlets -->

Итак, у меня есть контейнер, homepage-folio-portlets , и внутри этого я хочу перебрать представления, создавая новый контейнер, используя класс homepage-folio-portlet для каждой возвращаемой строки, включая класс CSS из этой строки.

Моя самая большая проблема - выяснить, как создать мои файлы .tpl или функции моей темы в template.php.Я понимаю соглашения об именах, но попав внутрь, я не знаю, что делать.У меня есть ощущение, что мне нужно сделать немного магии в template.php в любом случае, чтобы убедиться, что мой вывод строки знает о классе CSS из содержимого, но кто знает.Любая помощь и направление приветствуется.

Ответы [ 3 ]

3 голосов
/ 07 декабря 2010

После просмотра вышеупомянутого видео стало немного яснее, как выполнить то, что я намеревался сделать. Самым большим «ах-ха» было то, что код по умолчанию для шаблона «Вывод стиля строки» меня смущал из-за цикла foreach. Я не узнал, что могу просто вывести каждое поле любым способом, каким я считаю нужным в этом файле, без цикла. В видео показано, как можно ссылаться на свои поля по отдельности с помощью следующих сокращенных слов $ fields ['ID-of-field'] -> content. Чтобы получить «идентификатор поля», необходимо прокрутить ссылки «Вывод на экран», «Вывод стиля» и «Вывод стиля строки» на панели параметров «Информация о теме» вашего конкретного представления.

Я использовал «Информацию о теме», найденную на экране редактирования моего представления, чтобы определить наиболее конкретный .tpl для «Вывод стиля строки», чтобы создать и создать его, в данном случае view-view-fields - my-view -name - default.tpl.php

.

view-view-fields - my-view-name - default.tpl.php - выходной файл .tpl строки
(больше не использует foreach по умолчанию, потому что вместо циклического обхода полей я знаю нужные поля и могу просто вывести их в любом случае, если сочту нужным)

   <div id="homepage-folio-portlets">
    <div class="homepage-folio-portlet <?php print $fields['CSS_class']->content ?>">
     <div class="homepage-folio-portlet-image"><img src="<?php print $fields['Image']->content ?>" width="450" height="330" alt="" class="<?php print $fields['CSS_class']->content ?>-image" /></div>
     <div class="homepage-folio-portlet-text">
      <strong><?php print $fields['Title']->content ?></strong>
      <p><?php print $fields['Body']->content ?></p>
     </div>
    </div> <!-- /homepage-folio-portlet -->
   </div> <!-- /homepage-folio-portlets -->

После этого я сделал небольшую рекурсию в файлы «Вывод стилей» и «Вывод на дисплей» .tpl, чтобы избавиться от всего, что добавляет дополнительная разметка Drupal. Обратите внимание, что все, что меня действительно волновало, это распечатывать $ row (с циклом foreach) в стиле .tpl и $ row на дисплее tpl. Это выводит именно то, что я хочу, и я не мог быть счастливее. Наконец, это имеет смысл. Надеюсь, это поможет куче других людей.

Только для справки ...

views-view-unformatted - my-view-name - default.tpl.php - Стиль .tpl-файла
(здесь нужно сохранить цикл foreach, чтобы выводить каждую строку)

<?php foreach ($rows as $id => $row): ?>
 <?php print $row; ?>
<?php endforeach; ?>

views-view - my-view-name - default.tpl.php - Показать .tpl файл

<?php print $rows; ?>

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

1 голос
/ 07 декабря 2010

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

В вашем случае для начала звучит так, как будто вы хотите переопределить «стиль строки».output ":

  1. Нажмите ссылку" Вывод стиля строки ", скопируйте код шаблона по умолчанию.
  2. Выберите одно из предложенных имен файлов, которые будут использоваться для стиля строки, в зависимости от того,Вы хотите, чтобы этот стиль использовался для всех представлений, этого представления, конкретного отображения этого представления и т. д.
  3. Вставьте код, скопированный на шаге 1, в имя файла, выбранное на шаге 2
  4. Отредактируйте код по мере необходимости, чтобы добавить определенные классы
  5. Нажмите "Пересканировать файлы шаблонов", чтобы перестроить кэш шаблонов
  6. Повторите шаги 1-5 для любых дополнительных под-шаблонов, которые вы хотитенастроить.
0 голосов
/ 07 декабря 2010

Вы пробовали использовать файлы шаблонов для строк?Вы должны увидеть это в модуле представлений (в админке).Нажав на «Информация» в нижнем поле слева при создании представления.Вам нужно будет обновить кэш шаблона (вы увидите кнопку для этого).

...