属性工具提示 - 如何改进我的代码?

时间:2015-12-29 10:46:44

标签: php magento optimization

我正在一个需要根据产品显示各种工具提示的网站上工作。我正在使用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; ?>

所以我的问题是 - 有更简单的方法吗?该代码有效,但我遇到服务器内存问题,并且我试图优化我的代码。

出于安全目的,我不允许向您展示其余的代码,但我会尝试适应任何代码段的请求。

0 个答案:

没有答案