Adsmanager вывод заданных значений в массиве если поле не заполнено

Тема в разделе "Как сделать...", создана пользователем silmarion, 11 май 2014.

  1. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Добрый день, редактирую старый компонент adsmanager
    Часть объявлений заполняю через админку.
    Если не укажу данные к примеру имя, телефон, текст, то на их месте выводится $row->name, $row->phone и т.д.
    Код:
    <div class="adsmanager_ads_contact">
      <?php if (@$positions[4]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[4]->title);} ?>
      <?php echo "<b>".@$strtitle."</b>";
               if ($show_contact == 1) {    
                 if (isset($fDisplay[5]))
                 {    
                   foreach($fDisplay[5] as $field)
                   {  
                     adsmanager_html::showFieldValue($row,$field,$field_values,$conf->email_display,$option,$itemid,1,$plugins); /* 1 = Ad Mode */
                   }
                 }
                 if (($row->userid != 0)&&($conf->allow_contact_by_pms == 1))
                 {
                   $pmsText= sprintf(ADSMANAGER_PMS_FORM,$row->user);
                   $pmsForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=1&amp;adid=".$row->id."&amp;Itemid=".$itemid);
                   echo '<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
                 }
               }
               else
               {
                 echo ADSMANAGER_CONTACT_NOT_LOGGED;
               }
               ?> </div>
      </div>
    
    Можно ли если значение в массиве пустое выводить какое-то значение? к примеру 'не заполнено'

    Или вообще скрывать эту строку (даже лучше)?
     
  2. Sciphoshee

    Sciphoshee Писатель

    Регистр.:
    15 май 2014
    Сообщения:
    2
    Симпатии:
    2
    Если я правильно понимаю, у вас проблема с перебором полей в foreach. Для порядка посмотрите значения переменных что идут в вызов showFieldValue(...), думаю в итоге придете к простой проверке в духе...

    Код:
    foreach($fDisplay[5] as $field)
    {
      if(empty($row->$field)){ //или может empty($field_values)
        continue; // или уставновите значение у того что проверяли строкой выше
      }
      adsmanager_html::showFieldValue($row,$field,$field_values,$conf->email_display,$option,$itemid,1,$plugins); /* 1 = Ad Mode */
    }