产品PDF附件 - 具有多个文件的属性

时间:2014-10-30 11:38:10

标签: php magento magento-1.9

我创建了一个名为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,这就是我采用这条路线的原因,因为没有任何扩展允许我大规模地将附件导入到产品中。

这适用于规格表等...某些产品有多个规格表。我想使用单个属性来存储多个文件名,并且具有区分两者的代码。

1 个答案:

答案 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; ?>

这也是您可以根据自己的想法使用的逻辑。

希望这对您有所帮助。