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

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

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

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

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

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

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

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

Комментарии

новички врятли поймут даже это а кто шарит так давно уже на друпал.орг нашел Smile
а дизайн новый зачетный Smile

10 июля 2008 в 3:54

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

17 июля 2008 в 13:30

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

10 июля 2008 в 14:24

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

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

10 июля 2008 в 14:39

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

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

10 июля 2008 в 16:58

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

10 июля 2008 в 15:48

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

10 июля 2008 в 16:05

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

10 июля 2008 в 19:23

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

11 июля 2008 в 16:43

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

13 июля 2008 в 12:02

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

13 июля 2008 в 13:09

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

Делаю модуль, в котором программно создаю вид вот так:
$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

14 июля 2008 в 15:36

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>';
}
15 августа 2008 в 20:43

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

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

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

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

5 декабря 2008 в 13:45

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

5 декабря 2008 в 15:04

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

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

5 декабря 2008 в 17:20