УрокКак перекрывать вывод полей модуля CCK
Модуль, который используется на 95% сайтах друпала - это CCK (content constructor kit). Без него друпал не достиг бы такой мощи, которой он смог достичь. К списку таких модулей также относится Views. Можно перечислить ещё несколько модулей, но на мой взгляд - именно эти составляют основу друпала.
А раз ССК такой популярный, то было бы совсем неплохо научиться работать с ним не только через админку сайта, но и через свою тему.
Первым делом в корень папки с темой надо закинуть файл content-field.tpl.php из модуля ССК (cck\theme\content-field.tpl.php). Потом скопировать его в эту же папку, но назвать по принципу content-field-имя_сск_поля. Имя этого поля в друпале вы задаёте при создании его в своём типе материала.
Таким образом, в корне вашей темы должен лежать файл content-field.tpl.php и content-field-имя_сск_поля.tpl.php.
ВНИМАНИЕ: БЕЗ ПЕРВОГО ФАЙЛА ШАБЛОН ССК ПОЛЯ НЕ ПЕРЕКРОЕТСЯ!
Теперь немного о его содержимом. Так шаблон вывода сск полей выглядит изначально:
<?php if (!$field_empty) : ?> <div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?> <?php print $field_type ?> <?php print $field_name ?>"> <?php if ($label_display == 'above') : ?> <div class="field-label"><?php print t($label) ?>: </div> <?php endif;?> <div class="field-items"> <?php $count = 1; foreach ($items as $delta => $item) : if (!$item['empty']) : ?> <div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>"> <?php if ($label_display == 'inline') { ?> <div class="field-label-inline<?php print($delta ? '' : '-first')?>"> <?php print t($label) ?>: </div> <?php } ?> <?php print $item['view'] ?> </div> <?php $count++; endif; endforeach;?> </div> </div> <?php endif; ?>
Естественно, этот шаблон должен работать абсолютно для всех типов полей, поэтому тут так много кода - вывод меток, выводы всех классов, проверка на display: inline и прочее. Это может быть абсолютно не нужно, а в некоторых случаях вообще мешает вывести поля "как надо". Поэтому в следущем уроке я расскажу какой-нибудь пример, показывающий как можно работать с этим шаблоном.
- Spleshka
- 17.08.2010
- 9592
Комментарии
skajite pojaluysta (a rollover) budet rabotat v drupal ili nado podkluchat (jquery)? zaranee spasibo
Комментировать