Свойство visibility: hidden; в полях CCK и бан ПСов

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

Аватар пользователя Айдар Айдар 7 мая 2011 в 2:10

Доброго времени суток!
При создании полей посредством модуля CCK обнаружил, что при типе поля "текст", "текстовая строка" и при выборе возможности задавать более одного значения, каждая следующая строка после первой содержит заголовок поля, скрытый с помощью свойства CSS visibility: hidden, что, как правило, ведет к бану поисковыми системами.

При выборе типа отображения в админке "Выше" получается совсем неэстетично.

Мои попытки изменить отображение как с помощью настроек в админке, в том числе с помощью модуля Contemplate, так и с помощью ковыряния файла content-field.tpl.php (в PHP дуб) закончились провалом.

Примеры того, что мне нужно:
1. В идеале, чтобы, если поле имеет одно значение, то все (и заголовок, и содержимое поля) отображалось в одну линию, но если значений несколько, чтобы заголовок поля отображался в одной строке, а следующими строками с форматированием ненумерованного списка html (теги <ul><li>) отображалось содержимое.

2. Если 1 вариант не получится, то чтобы содержимое отображалось просто форматированным ненумерованным списком вне зависимости от кол-ва значений.

Код шаблона content-field.tpl.php, отвечающий за вывод полей:

<?php
// $Id: content-field.tpl.php,v 1.1.2.6 2009/09/11 09:20:37 markuspetrux Exp $

/**
 * file content-field.tpl.php
 * Default theme implementation to display the value of a field.
 *
 * Available variables:
 * - $node: The node object.
 * - $field: The field array.
 * - $items: An array of values for each item in the field array.
 * - $teaser: Whether this is displayed as a teaser.
 * - $page: Whether this is displayed as a page.
 * - $field_name: The field name.
 * - $field_type: The field type.
 * - $field_name_css: The css-compatible field name.
 * - $field_type_css: The css-compatible field type.
 * - $label: The item label.
 * - $label_display: Position of label display, inline, above, or hidden.
 * - $field_empty: Whether the field has any valid value.
 *
 * Each $item in $items contains:
 * - 'view' - the themed view for that item
 *
 * see template_preprocess_content_field()
 */

?>
<?php if (!$field_empty) : ?>
<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
  <?php if ($label_display == 'above') : ?>
    <div class="field-label"><?php print t($label) ?>:&nbsp;</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) ?>:&nbsp;</div>
          <?php } ?>
          <?php print $item['view'] ?>
        </div>
      <?php $count++;
      endif;
    endforeach;?>
  </div>
</div>
<?php endif; ?>

Проблема в том, что я не могу определить, какая переменная отвечает за кол-во значений полей, и вообще не получается отделить содержимое от заголовка поля (чтобы несколько строк содержимого отображались независимо от того, что заголовок только один).

Буду премного благодарен за помощь!

Комментарии

Аватар пользователя Iegova Iegova 7 мая 2011 в 16:39

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

по существу - можно просто закаментировать эти строчки


<?php if ($label_display == 'inline') { ?>
            <div class="field-label-inline<?php print($delta '' '-first')?>">
              <?php print t($label?>:&nbsp;</div>
          <?php ?>
Аватар пользователя Айдар Айдар 9 мая 2011 в 20:23

Iegova, спасибо! Я уже сам плюнул.
Но, если просто закомментировать указанные строки, то заголовка вообще не будет, я так понимаю?..