Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php в drupal


Автор: hostsid 3.5.2011, 15:32
Добрый день. Ничего не понимаю в ПХП. Но нужна ваша помощь.
Есть код:
Код

<?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; ?>


на выходе получаем:

Код

<div class="field field-type-text field-field-tag-1-1">
   <div class="field-label">Заголовок</div>
   <div class="field-items">
       <div class="field-item odd">пусто</div>
   </div>
</div>


Вопрос: какую и куда вставить проверку, что б в случае, если в контейнере .field-items "пусто", то контейнер .field field-type-text field-field-tag-1-1 не отображается вовсе.

РЕШЕНО:

Код

<?php if (!$field_empty) : ?>
<?php $sukablya = true;
foreach ($items as $delta => $item) :
    if($item['view'] == "пусто"): 
        $sukablya = false;
        break;
    endif;
endforeach;

if($sukablya): ?>
<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; ?>
<?php endif; ?>



Автор: нуп 3.5.2011, 19:34
Жесть. Это точно друпал?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)