@eellazy

Как спрятать блок, если нету данных?

Есть блок который выводит некоторые данные. Как сделать что бы блок не показывался. Если данных нету?

Код блока
<div class="block_list">
      <div id="useful_info">
        <h2 class="title">
          <?php _e('Дополнительные файлы', OSCLASSWIZARDS_THEME_FOLDER); ?>
        </h2>
        
            
               <?php if( osc_count_item_meta () >= 1 ) { 
                while ( osc_has_item_meta () ) { 
                if( osc_item_meta_value () != "" ) { 
                    $custom_field_name [ osc_item_meta_slug ()] = osc_item_meta_name (); 
                    $custom_field_value [ osc_item_meta_slug ()] = osc_item_meta_value (); 
                    } 
                      } 
                     } ?>
<p class="left"> <?php echo $custom_field_name [ 'additional_file' ] ; ?> : <strong> <?php echo $custom_field_value [ 'additional_file' ] ; ?> </strong></p>
<p class="left"> <?php echo $custom_field_name [ 'put_kesh' ] ; ?> : <strong> <?php echo $custom_field_value [ 'put_kesh' ] ; ?> </strong></p>         
      </div>
    </div>


Нужно вот этот кусок кода, поставить выше родительского, мне так кажется... Пробовал массу вариантов с расположением кода. Но ничего не помогло
<?php if( osc_count_item_meta () >= 1 ) { 
                while ( osc_has_item_meta () ) { 
                if( osc_item_meta_value () != "" ) { 
                    $custom_field_name [ osc_item_meta_slug ()] = osc_item_meta_name (); 
                    $custom_field_value [ osc_item_meta_slug ()] = osc_item_meta_value (); 
                    } 
                      } 
                     } ?>


Я так понимаю что конструкция должна быть типа
-----------проверка----------
--------начало блока---------
---------конец блока---------
-------закрывающий тег-----

Сейчас у меня
--------начало блока---------
-----------проверка----------
-------закрывающий тег-----
---------конец блока---------

Вопрос в том, как правильно написать нужную конструкцию?
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
<?php
$custom_field_name = [];

if (osc_count_item_meta() >= 1)
{
	while (osc_has_item_meta())
	{
		if (osc_item_meta_value() != "")
		{
			$custom_field_name [osc_item_meta_slug()] = osc_item_meta_name();
			$custom_field_value [osc_item_meta_slug()] = osc_item_meta_value();
		}
	}
}

if (
	array_key_exists('additional_file', $custom_field_name) && array_key_exists('additional_file', $custom_field_value) &&
	array_key_exists('put_kesh', $custom_field_name) && array_key_exists('put_kesh', $custom_field_value)
): ?>
<div class="block_list">
	<div id="useful_info">
		<h2 class="title">
			<?php _e('Дополнительные файлы', OSCLASSWIZARDS_THEME_FOLDER); ?>
		</h2>
		<p class="left"><?= $custom_field_name ['additional_file']; ?> : <strong> <?= $custom_field_value ['additional_file']; ?></strong></p>
		<p class="left"><?= $custom_field_name ['put_kesh']; ?> : <strong> <?= $custom_field_value ['put_kesh']; ?></strong></p>
	</div>
</div>
<?php endif ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DrunkMaster
@DrunkMaster
В общем виде так:
$div = "";
if(isset($text)){$div = "<div class='children1'>$text</div>"}

<div class='farher'>
    $div
    ...
</div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы