我创建了一个名为product_downloads的产品属性,我可以在其中放置一个文件名,它出现在产品视图页面的“附加信息”选项卡中,并带有文件名的链接。我已成功实现了这个想法的一次下载,但对于某些产品,我将有多个下载...
就像我说的那样,每个产品都有一个下载代码,所有这些都是app / design / frontend / base / default / template / catalog / product / view / attributes.phtml中的少量代码
原始代码是:
<?php foreach ($_additional as $_data): ?>
<tr>
<th class="label"><?php echo $this->escapeHtml($this->__($_data['label'])) ?></th>
<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php endforeach; ?>
这是我用以下代码替换的代码:
<?php foreach ($_additional as $_data): ?>
<?php if ((string)$_data['value'] != '' and $_data['value'] != 'N/A'): ?> <!-- IF NOTHING DO NOTHING-->
<tr>
<th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<?php if ($_data['code'] == 'product_download'): ?>
<td>
<a href="<?php echo Mage::getBaseUrl('web',true). "media/downloads/{$_product->getProductDownload()}";?>">Product PDF</a>
</td>
<?php else: ?>
<?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php endforeach; ?>
这非常有效,但是......我现在需要的是查看product_download的值,如果它有一个逗号(或者其他一些分隔符,如果这会干扰csv格式的话)两个单独的链接到两个单独的文件..
需要注意的一件事......我非常依赖MAGMI,这就是我采用这条路线的原因,因为没有任何扩展允许我大规模地将附件导入到产品中。
这适用于规格表等...某些产品有多个规格表。我想使用单个属性来存储多个文件名,并且具有区分两者的代码。
答案 0 :(得分:1)
您可以使用具有explode功能的逻辑并使用我的自定义代码更改您的if条件,如下所示
<?php if ($_data['code'] == 'product_download'): ?>
<?php
$product_downloads = explode(",",$_product->getProductDownload());
foreach($product_downloads as $download):
?>
<td>
<a href="<?php echo Mage::getBaseUrl('web',true). "media/downloads/{$download}";?>">Product PDF</a>
</td>
<?php endforeach; ?>
<?php else: ?>
<?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?>
<?php endif; ?>
这也是您可以根据自己的想法使用的逻辑。
希望这对您有所帮助。