我正在一个需要根据产品显示各种工具提示的网站上工作。我正在使用Magento 1.9.0.1 CE。我正在寻找一种最小化代码的方法。
我的代码如下所示:
根据magento中定义的属性设置attributeLabel。
$attributeLabel1 = $_product->getSpecField1Label();
$attributeLabel2 = $_product->getSpecField2Label();
$attributeLabel3 = $_product->getSpecField3Label();
$attributeLabel4 = $_product->getSpecField4Label();
$attributeLabel5 = $_product->getSpecField5Label();
$attributeLabel6 = $_product->getSpecField6Label();
$attributeLabel7 = $_product->getSpecField7Label();
$attributeLabel8 = $_product->getSpecField8Label();
以丹麦语和挪威语设置各个属性。该网站以2种语言运行。有更多的属性(总共21个),但它会让你了解代码的工作原理。
$TipLyskvalitet = '<div class="tooltipText">Lyskvaliteten er baseret på vores eksperters test og vudering af produktet.</div>';
$TipKvalitet = '<div class="tooltipText">Kvaliteten er baseret på våre eksperters tester og vurdering av produktet.</div>';
$TipErstatter = '<div class="tooltipText">Produktet kan erstatte Tilsvarerende glødepærer/halogen spot med det viste antal Watt.</div>';
$TipTilsvarer = '<div class="tooltipText">Produktet kan erstatte Tilsvarerende glødepærer/halogen spot med det viste antall Watt.</div>';
$TipBruger = '<div class="tooltipText">Produktet bruger maksimalt det viste antal Watt.</div>';
$TipBruker = '<div class="tooltipText">Produktet bruker maksimalt det viste antall Watt.</div>';
$TipDaempbar = '<div class="tooltipText">Kan produktet dæmpes med en lysdæmper? <ul><li><strong>Ja</strong> = Ja det kan det på de fleste lysdæmpere </li><li><strong>(Ja)</strong> = Ja - med forbehold, læs den fulde produktbeskrivelse for yderligere information.</li><li><strong>Nej</strong> = Dette produkt kan ikke dæmpes.</li></ul></div>';
$TipDimbar = '<div class="tooltipText">Kan produktet dimmes med en dimmer? <ul><li><strong>Ja</strong> = Ja det kan det på de fleste typer dimmere </li><li><strong>(Ja)</strong> = Ja - med forbehold, les den fulle produktbeskrivelsen for ytterligere informasjon.</li><li><strong>NEI</strong> = Dette produkt kan ikke dimmes.</li></ul></div>';
用于在悬停时显示工具提示的图标。
$tooltipIcon = '<i class="fa fa-question-circle"></i>';
检查第一个工具提示是否包含丹麦语工具提示或挪威语或根本没有。 (这仅适用于第一个工具提示 - 对于所有其他11个属性,这是一个类似的列表)
if ($attributeLabel1 == 'Lyskvalitet'):
$productTooltip1 = $TipLyskvalitet;
elseif ($attributeLabel1 == 'Kvalitet'):
$productTooltip1 = $TipKvalitet;
else: $productTooltip1 = '';
endif;
if ($attributeLabel2 == 'Lyskvalitet'):
$productTooltip2 = $TipLyskvalitet;
elseif ($attributeLabel2 == 'Kvalitet'):
$productTooltip2 = $TipKvalitet;
else: $productTooltip2 = '';
endif;
if ($attributeLabel3 == 'Lyskvalitet'):
$productTooltip3 = $TipLyskvalitet;
elseif ($attributeLabel3 == 'Kvalitet'):
$productTooltip3 = $TipKvalitet;
else: $productTooltip3 = '';
endif;
if ($attributeLabel4 == 'Lyskvalitet'):
$productTooltip4 = $TipLyskvalitet;
elseif ($attributeLabel4 == 'Kvalitet'):
$productTooltip4 = $TipKvalitet;
else: $productTooltip4 = '';
endif;
if ($attributeLabel5 == 'Lyskvalitet'):
$productTooltip5 = $TipLyskvalitet;
elseif ($attributeLabel5 == 'Kvalitet'):
$productTooltip5 = $TipKvalitet;
else: $productTooltip5 = '';
endif;
if ($attributeLabel6 == 'Lyskvalitet'):
$productTooltip6 = $TipLyskvalitet;
elseif ($attributeLabel6 == 'Kvalitet'):
$productTooltip6 = $TipKvalitet;
else: $productTooltip6 = '';
endif;
if ($attributeLabel7 == 'Lyskvalitet'):
$productTooltip7 = $TipLyskvalitet;
elseif ($attributeLabel7 == 'Kvalitet'):
$productTooltip7 = $TipKvalitet;
else: $productTooltip7 = '';
endif;
if ($attributeLabel8 == 'Lyskvalitet'):
$productTooltip8 = $TipLyskvalitet;
elseif ($attributeLabel8 == 'Kvalitet'):
$productTooltip8 = $TipKvalitet;
else: $productTooltip8 = '';
endif;
在网站上显示最终结果
<?php if ($_product->getAttributeText('spec_field1') == ""): ?>
<li style="display: none;"></li>
<?php else: ?>
<li><div class="product-infobox-header-bg"><?php if ($productTooltip1 != ""): echo '<div class="attributeTooltipLabel">' . $attributeLabel1 . $tooltipIcon; else: echo $attributeLabel1 . '<div>'; endif;?><div class="attributeTooltip"><div class="tooltipHeadline"><?php echo $attributeLabel1; ?></div>
<?php echo $productTooltip1; ?>
</div></div>
</div><br><?php print $_product->getAttributeText('spec_field1'); ?></li>
<?php endif; ?>
所以我的问题是 - 有更简单的方法吗?该代码有效,但我遇到服务器内存问题,并且我试图优化我的代码。
出于安全目的,我不允许向您展示其余的代码,但我会尝试适应任何代码段的请求。