Посоветуйте, как в cck не выводить заголовок поля в публикации, если поле оставлено незаполненным?

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

Аватар пользователя poe poe 12 февраля 2007 в 3:17

Поля могут не быть обязательными для заполнения, однако их заголовки в публикации все равно выводятся...
Я читал про способы темизации ноды, где можно задать условия для отдельного поля, однако я не могу создать шаблон для отдельно взятой ноды, поскольку их будет много.
Вопрос - нельзя ли, воспользовавшись полем: php-code при настраивании того или иного поля в конкретном типе материала, как-то решить проблему с выводимостью/невыводимостью заголовка данного поля при публикации, в зависимости от тогго, заполнено оно или нет?

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

Наверняка эта проблема решалась многократно.

Комментарии

Аватар пользователя webdev webdev 12 февраля 2007 в 4:25

Вопрос: ты не можешь создать тему для созданного с помощью cck типа контента? можно по подробнее что мешает так сделать?

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

Аватар пользователя poe poe 12 февраля 2007 в 14:48

Ок. попробую настроить шаблон типа контента... Или решить с contemplate...

Но просто любопытно, если задавать условие прямо в пхп-вставке, вы не могли бы привести пример кода?
Ведь вот это здесь очевидно не покатит:
<?php if (content_format('field_МОЕ ПОЛЕ', $field_phone[0]) > '') : ?>

НАЗВАНИЕ:

<?php foreach ($field_МОЕ ПОЛЕ as $МОЕ ПОЛЕ) { ?>

<?php print content_format('field_МОЕ ПОЛЕ', $МОЕ ПОЛЕ) ?>

<?php } ?>
<?php endif; ?>

Аватар пользователя poe poe 12 февраля 2007 в 19:02

но ведь я именно его и привел в пример!

почему-то не получается! причем не работает даже в шаблоне типа контента.
у меня есть простое текстовое поле под названием "field_"

вот я и пишу, как там:
<?php if (content_format('field_field_', $field_field_[0]) > '') : ?>

Его название:

<?php foreach ($field_field_ as $field_) { ?>

<?php print content_format('field_field_', $field_) ?>

<?php } ?>
<?php endif; ?>

результата никакого... (поле у меня заполнено), ни заголовка, ни поля...

самое интересное, что даже когда я просто пытаюсь это дело вывести безо всяких условий:
<?php print content_format('field_field_', $field_) ?>
или вот так:
print $field_['view'] ('view' - в квадратных скобках)

оно все равно не выводится!

возможно, дело в том, что скрипт "не понимает" названия поля, в силу того, что я называл поля по-русски?

Аватар пользователя Natalie Natalie 12 февраля 2007 в 19:27

У меня все работает. Вот, например:

<div class="field field-type-nodereference field-field-organization">
<?php if (content_format('field_organization', $field_organization[0]) > '') : ?>
<h3 class="field-label">Организация</h3>
<?php foreach ((array)$field_organization as $item) { ?>
<div class="field-item"><?php print $item['view'] ?></div>
<?php } ?>
<?php endif; ?>
</div>

---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Natalie Natalie 13 февраля 2007 в 7:15

Попробуй хотя бы с другим именем, чтобы посмотреть, работает ли код. Называй сразу английскими буквами, чтобы не было проблем. Потом можно записать лейбл по-русски, это уже не поменяет название поля.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.