Первым серъезным камнем преткновения разработчика, познавшего начальные прелести Друпала, является темизация модуля Views. Этот процесс содержит минимум документации, так что, порой, некоторые начинающие разработчики вообще не догадываются, что с вьюсами можно что-то делать. Однако, можно, и даже очень многое.
Итак, рассмотренные в статье разделы:
- Темизация любых типов вьюсов
- Темизация «списочной» вьюсы
- Темизация «табличной» вьюсы
- Темизация «тизерной» вьюсы
- Темизация вьюсы c полными нодами
- Темизация summary-представления
- Темизация полей
- Темизация расширенных фильтров
Собственно, статья (осторожно, много кода):
Темизация модуля Views
ЗЫ. Как обычно, ссылка для хабравчан и мега-акция — плюсую всех, кто засветился в комментах
Комментарии
сенкс...
новички врятли поймут даже это а кто шарит так давно уже на друпал.орг нашел
а дизайн новый зачетный
А есть такие (типа меня), которые уже почти не новички, но не нашел Либо что-то не дошло, что тоже бывает.
От себя и таких воятелей автору спасибо.
Большое спасибо
Статья не была расчитана на новичков. Ведь, если так, то нужно готовить доки еще по тому, "что такое темизация вообще", "что такое шаблоны" и т.п. Может в будущем я и сподвигнусь написать все, тогда и эта статья преобразится. Сейчас, она расчитана скорее для того, чтобы попасть "бывалым" разработчикам в закладки, а то порой лень искать названия функций, чтобы использовать в проекте.
Cпасибо, полезно.
Александр, посмотрите http://drupaldance.com/ в MSIE 6.0
А-га там там некорректно 2 колонки сделаны, вот осла и колбасит. Есть же устойчивые 2-х колоночные разметки, зачем изобретать?
з.ы. вот такие мы ворчуны, нет бы сказать спасибо - дак только критикуют
полезно! Спасибо!
На ИЕ6 новая версия сайта не расчитана, там очень много фишек, которые в ИЕ6 проще отрубить, чем сделать нормальную поддержку, и я просто не успел еще навесить огромный попап "Юзер, проапдейтись!"
Почти никому из вас, друзья, этот момент скорее всего не помешает, потому что судя по статистике, ИЕ6 на этом сайте всегда занимал позорные 3%
Темизация то дело понятное. Чем больше кода тем лучше =). Вот по views (конкретно для меня конечно) не достаточно понятна документация на drupal.org об интерации своих модулей в них. Я простенькое писал что-то, да и то не очень то разобрался. Вот если бы это описали было бы круто! А так все равно неоценимый вклад для сообщества.
Извинте, замечу. По liveinternet.ru во всяком случае на моих 5 сайтах IE6 занимает либо первую, либо вторую позицию в рейтинге.
Сейчас на одном из сайтов: Explorer 6 111, Explorer 7 77
НовичОК, я в курсе Говорю про данный, конкретный сайт.
Друпалданс это новый стиль, как видно по логотипу вобравший в себя элементы брейкданса:)
Спасибо. Очень полезно.
Добавил к подзаголовкам статей ссылки с якорями (#), чтобы можно было
тыкать нубовотвечать людям ссылками, если спрашивают на форуме (а спрашивают довольно часто).IE Destroyer
Статья зачотная
Спасибо. В закладки. Как раз подошёл к этому вопросу.
Не могли бы разъяснить темизацию «табличной» вьюсы, и если можно рассказать как управлять строками и ячейками таблицы, а также применять свойства к таблице(типа border и прочего), спасибо.
Спасибо, полезная работа!
2 Stein
Учите мат.часть (theme_table — специально для вас перевел полностью
Бессмыслица же. Любую функциональность, кроме домашней страницы Васи придется писать с нуля( минимум! собственный модуль). Большинство разработчиков вынужденно игнорируют View вообще,как я понял. Это очень неудобно, запутанно, наполненно собственными ошибками и ошибками самой системы всех стадий разработки. Жрет память, меняет интерфейс из версии в версию, так что пользователи не узнают прежних.
Не понимаю.
"Это очень неудобно, запутанно, наполненно собственными ошибками и ошибками самой системы всех стадий разработки."
оно точно так же и в коммерческих цмс, просто вы об этом не знаете, в виду закрытости кода
Немного не по теме, но вот вопрос, заданный мною и не нашедший ответа:
Делаю модуль, в котором программно создаю вид вот так:
$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
спасибо, полезно
что-то drupaldance.com не работает, может выложите статью на druoal.ru, если у кого сохранилась?
Спасибо.
View2 который в Drupal6 координально отличается от первого который в Drupal5 и для него в темизациях просто не предусмотрена полная темизация для шаблона вида где можно расставить поля как в первом views - во втором они просто не передаются в шаблон и все тут, передается только $rows в которой все поля уже темизированы в соответствии с настройками вида.
или я что то не так понял?
однако все равно вышеприведенные примеры
http://drupaldance.com/blog/theming-views1
с Views2 не работают
что делать даже и не знаю - пока пишу в шаблоне полнейшее ламерство
$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>';
}
смелое решение!
предлагаю всем следовать данному хорошему примеру и искоренить это зло на корню!!))
IE6, в среднем занимает ~30-40%(зависит от тематики) и я бы не стал так пренебрежительно относиться к этим посетителям.
конечно, без фанатизма
мы должны собраться с силами и решительно сказать - "нет интернет эксплореру 6"