Все, о чем вы не знали, и боялись спросить по поводу темизации Views

Главные вкладки

Аватар пользователя neochief neochief 9 июля 2008 в 23:54

Первым серъезным камнем преткновения разработчика, познавшего начальные прелести Друпала, является темизация модуля Views. Этот процесс содержит минимум документации, так что, порой, некоторые начинающие разработчики вообще не догадываются, что с вьюсами можно что-то делать. Однако, можно, и даже очень многое.

Итак, рассмотренные в статье разделы:

  • Темизация любых типов вьюсов
  • Темизация «списочной» вьюсы
  • Темизация «табличной» вьюсы
  • Темизация «тизерной» вьюсы
  • Темизация вьюсы c полными нодами
  • Темизация summary-представления
  • Темизация полей
  • Темизация расширенных фильтров

Собственно, статья (осторожно, много кода):

Темизация модуля Views

ЗЫ. Как обычно, ссылка для хабравчан и мега-акция — плюсую всех, кто засветился в комментах Smile

Комментарии

Аватар пользователя atas atas 17 июля 2008 в 13:30

А есть такие (типа меня), которые уже почти не новички, но не нашел Smile Либо что-то не дошло, что тоже бывает.
От себя и таких воятелей автору спасибо.

Аватар пользователя neochief neochief 10 июля 2008 в 14:24

Статья не была расчитана на новичков. Ведь, если так, то нужно готовить доки еще по тому, "что такое темизация вообще", "что такое шаблоны" и т.п. Может в будущем я и сподвигнусь написать все, тогда и эта статья преобразится. Сейчас, она расчитана скорее для того, чтобы попасть "бывалым" разработчикам в закладки, а то порой лень искать названия функций, чтобы использовать в проекте.

Аватар пользователя PVasili PVasili 10 июля 2008 в 14:39

А-га там там некорректно 2 колонки сделаны, вот осла и колбасит. Есть же устойчивые 2-х колоночные разметки, зачем изобретать?

з.ы. вот такие мы ворчуны, нет бы сказать спасибо - дак только критикуют Wink

Аватар пользователя neochief neochief 10 июля 2008 в 16:58

На ИЕ6 новая версия сайта не расчитана, там очень много фишек, которые в ИЕ6 проще отрубить, чем сделать нормальную поддержку, и я просто не успел еще навесить огромный попап "Юзер, проапдейтись!" Smile

Почти никому из вас, друзья, этот момент скорее всего не помешает, потому что судя по статистике, ИЕ6 на этом сайте всегда занимал позорные 3%

Аватар пользователя player player 10 июля 2008 в 15:48

Темизация то дело понятное. Чем больше кода тем лучше =). Вот по views (конкретно для меня конечно) не достаточно понятна документация на drupal.org об интерации своих модулей в них. Я простенькое писал что-то, да и то не очень то разобрался. Вот если бы это описали было бы круто! А так все равно неоценимый вклад для сообщества.

Аватар пользователя НовичОК НовичОК 10 июля 2008 в 16:05

Извинте, замечу. По liveinternet.ru во всяком случае на моих 5 сайтах IE6 занимает либо первую, либо вторую позицию в рейтинге.
Сейчас на одном из сайтов: Explorer 6 111, Explorer 7 77

Аватар пользователя neochief neochief 10 июля 2008 в 19:23

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

Аватар пользователя Stein Stein 11 июля 2008 в 16:43

Не могли бы разъяснить темизацию «табличной» вьюсы, и если можно рассказать как управлять строками и ячейками таблицы, а также применять свойства к таблице(типа border и прочего), спасибо.

Аватар пользователя ИвановНаОстановке ИвановНаОстановке 13 июля 2008 в 12:02

Бессмыслица же. Любую функциональность, кроме домашней страницы Васи придется писать с нуля( минимум! собственный модуль). Большинство разработчиков вынужденно игнорируют View вообще,как я понял. Это очень неудобно, запутанно, наполненно собственными ошибками и ошибками самой системы всех стадий разработки. Жрет память, меняет интерфейс из версии в версию, так что пользователи не узнают прежних.
Не понимаю.

Аватар пользователя neochief neochief 13 июля 2008 в 13:09

"Это очень неудобно, запутанно, наполненно собственными ошибками и ошибками самой системы всех стадий разработки."
оно точно так же и в коммерческих цмс, просто вы об этом не знаете, в виду закрытости кода Smile

Аватар пользователя gorr gorr 14 июля 2008 в 15:36

Немного не по теме, но вот вопрос, заданный мною и не нашедший ответа:

Делаю модуль, в котором программно создаю вид вот так:
$future_matches_view = views_create_view('our_player_future_matches', 'All future matches for the player');
views_view_add_page($future_matches_view, t('Future matches'), NULL, 'table', true, 10, '', 1, false);
views_view_add_filter($future_matches_view, 'node', 'nid', 'views_handler_operator_or', $future_matches, 'id');
views_view_add_field($future_matches_view, 'node', 'title', '', FALSE, 0, 'views_handler_field_nodelink');
views_load_cache();
views_sanitize_view($future_matches_view);
$output .= views_build_view('embed', $future_matches_view, array(), false, false);

И все прекрасно работает, но необходимо добавить еще полей в этот вид, а именно поля:
а) типа date - время проведения матча
б) node referance - участник матча 1
в) node referance - участник матча 2
то есть надо дописать еще строки вида
views_view_add_field($future_matches_view, 'TABLE', 'FIELD', '', FALSE, 0, 'HANDLER');
Так вот не могу пока понять что подставить для требуемых полей вместо: TABLE,FIELD,HANDLER
Понятно, что это соответственно таблица в базе, поле в этой таблице и обработчик, но конкретно пока не понял для ССК полей что написать, нужна помощь.

"и все прекрасно работает" оказалось неверным утверждением, так как фильтр, добавленный мной
views_view_add_filter($future_matches_view, 'node', 'nid', 'views_handler_operator_or', $future_matches, 'id');
тоже не сработал, что обнаружилось впоследствии..(я пробовал использовать небольшой модуль viewsphpfilter)
Вобщем если есть кому что сказать -отпишитесь сюда или в топик http://www.drupal.ru/node/16941

Аватар пользователя kiev1 kiev1 15 августа 2008 в 20:43

View2 который в Drupal6 координально отличается от первого который в Drupal5 и для него в темизациях просто не предусмотрена полная темизация для шаблона вида где можно расставить поля как в первом views - во втором они просто не передаются в шаблон и все тут, передается только $rows в которой все поля уже темизированы в соответствии с настройками вида.
или я что то не так понял?
однако все равно вышеприведенные примеры
http://drupaldance.com/blog/theming-views1
с Views2 не работают
что делать даже и не знаю - пока пишу в шаблоне полнейшее ламерство

foreach ($view->result as $result) {
 $node = node_load($result->nid);
 print $node->title .'<br>';
 print $node->field_partlogo[0][data][description] .'<br>';
 print $node->field_partlogo[0][filepath] .'<br><br>';
}
Аватар пользователя clubwave.ru clubwave.ru 5 декабря 2008 в 13:45

"neochief" wrote:
На ИЕ6 новая версия сайта не расчитана, там очень много фишек, которые в ИЕ6 проще отрубить, чем сделать нормальную поддержку, и я просто не успел еще навесить огромный попап "Юзер, проапдейтись!" Smile

Почти никому из вас, друзья, этот момент скорее всего не помешает, потому что судя по статистике, ИЕ6 на этом сайте всегда занимал позорные 3%

смелое решение!

предлагаю всем следовать данному хорошему примеру и искоренить это зло на корню!!))

Аватар пользователя PVasili PVasili 5 декабря 2008 в 15:04

IE6, в среднем занимает ~30-40%(зависит от тематики) и я бы не стал так пренебрежительно относиться к этим посетителям.

Аватар пользователя clubwave.ru clubwave.ru 5 декабря 2008 в 17:20

"PVasili" wrote:
IE6, в среднем занимает ~30-40%(зависит от тематики) и я бы не стал так пренебрежительно относиться к этим посетителям.

мы должны собраться с силами и решительно сказать - "нет интернет эксплореру 6"