Получить "необработанные" данные представлений (без или с небольшой разметкой)


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

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

Не могут ли представления выводить только необработанные данные из БД без добавления в нее всей этой разметки?

 5
Author: silkAdmin, 2011-07-07

3 answers

Используете ли вы представления 6.x-3.x или 7.x-3.x? Если это так, вы можете выполнить тонну тяжелой работы по удалению разметки представлений по умолчанию, настроив поля "Настройки стиля". Если вы используете более старую версию представлений, Семантические представления делают примерно то же самое. Один попался: если вы не хотите, чтобы папка по умолчанию wrapper around each field, you need to check the 'configure the field and label wrapper' option and set it to 'None' - that trips me up sometimes.

To adjust the other bits of markup around, for example, the entire view, or each row, you can copy the views template files (in the views/theme была помещена в папку вашей темы, и измените их так, как вам заблагорассудится.

Причина, по которой Views создает всю эту постороннюю разметку, заключается в том, что она пытается быть всем для всех. Я часто нахожу, что проще всего (и едва ли повышает производительность или время загрузки страницы) просто использовать разметку по умолчанию, если только я не пытаюсь сделать какую-то расширенную тематику. Там есть класс практически для всего!

Еще одно замечание – если вы пытаетесь вернуть только некоторые данные в формате, таком как JSON или XML или что-то подобное, вам потребуется использовать другой тип отображения для представлений, помимо одного из стандартных "Неформатированных полей" или типов "список"...

 2
Author: geerlingguy, 2011-07-07 05:49:46

Самый простой способ сделать это:

  1. Исключите поля из отображения.
  2. Добавьте поле и выберите "ПЕРЕПИСАТЬ РЕЗУЛЬТАТЫ", чтобы переписать его с нужными полями (из шаблонов замены). Вы можете добавить разметку вокруг токенов, если хотите.
  3. Снимите флажок "Предоставлять элементы оболочки полей по умолчанию" в настройках отображения.
 1
Author: cateye, 2011-09-14 22:13:06

Для меня обычно достаточно комбинации представлений 3 и модуля семантических представлений.

В экстремальных обстоятельствах, когда мне нужна абсолютно нулевая разметка, например, для отображения полностью настраиваемой даты, я создаю свой собственный крошечный шаблон для рассматриваемого поля (выбирая правильный файл для создания, используя информационную часть представления темы). В вашем шаблоне значение по умолчанию равно print $output;, что совершенно бесполезно. Для моего примера с датой я заменил это на:

print my_pretty_date($row->{$field->aliases['field_date_value']},
  $row->{$field->aliases['field_date_value2']}
);

Что позволит мне запустить мою пользовательскую функцию форматирования даты с датами в формате MySQL datetime.

ВАЖНО: я не знаю, очищены ли данные $row. Это тоже трудно выяснить.

 1
Author: chichilatte, 2011-11-09 13:22:53