У меня есть следующая кодировка:
<div class="product-top-icons"> <div class="energy-rating-1"><img src="http://www.justhome.co/skin/frontend/default/just2011/images/assets/<?php echo $_product->getAttributeText('energy_rating_one');?>.jpg"></div> <div class="energy-rating-2"><img src="http://www.justhome.co/skin/frontend/default/just2011/images/assets/<?php echo $_product->getAttributeText('energy_rating_two');?>.jpg"></div> <div class="energy-rating-3"><img src="http://www.justhome.co/skin/frontend/default/just2011/images/assets/<?php echo $_product->getAttributeText('energy_rating_three');?>.jpg"></div> <div class="guarantee-icon"><img src="http://www.justhome.co/skin/frontend/default/just2011/images/assets/<?php echo $_product->getAttributeText('warranty');?>.jpg"></div> </div>
Я бы хотел добавить туда оператор if, чтобы сказать следующее:
Если значение в атрибуте 'energy_rating_one' равнотогда null не отображает деление energy-rating-1, если атрибут 'energy_rating_two' равен нулю, то не показывается div energy-rating-2 и т. д. *
'energy_rating_one'
energy-rating-1
'energy_rating_two'
energy-rating-2
как то так:
<?php if($_product->getAttributeText('energy_rating_one') !== null): ?> <div class="energy-rating-1"><img src="http://www.justhome.co/skin/frontend/default/just2011/images/assets/<?php echo $_product->getAttributeText('energy_rating_one');?>.jpg"></div> <?php endif; ?>
и то же самое для всех остальных.
У вас есть функция "int_to_words" для преобразования значения "int" в текстовое значение в этом посте: http://www.php.net/manual/en/function.strval.php#41988
После этого вам просто нужно выполнить итерацию во все значения
for(i = 0; i < 100; i++) { $item = 'energy_rating_'.int_to_words($i); if($_product->getAttributeText($item) != null){ echo "<div class=\"energy_rating_$i\"><img src=\"http://www.justhome.co/skin/frontend/default/just2011/images/assets/".$_product->getAttributeText($item).".jpg\"></div>"; } }
Облегчи себя. Просто измените правила класса css с energy-rating-1 на energy-rating-one и отобразите переменную, которая у вас уже есть, т.е. energy-rating-one
energy-rating-one
<?php function echoIfExists($argument) { $val = $_product->getAttributeText($argument); if($val) /*your echo stmt*/ } echoIfExists('energy_rating_one'); /** continue here*/ ?>
Посмотрите на короткую руку, если утверждение:
http://www.scottklarr.com/topic/76/ternary-php-short-hand-ifelse-statement/
$total==1 ? "is 1 item" : "are ".($total == 0 ? "no items" : "$total items"