0

我正在尝试将自定义文本字段属性回显到 url 链接中。

我有一个带有 URL 键“my-page”的 CMS 页面,因此我为产品创建了一个名为“cmspageid”的文本字段,并将 URL 键“my-page”添加到文本字段中。

这是整个脚本:

<div class="new-product-content">
<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
    <h3 class="subtitle new-products"><?php echo $this->__('HOT PRODUCTS') ?></h3>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_products->getItems() as $_product): ?>
    <?php if ($i++%$_columnCount==0): ?>

    <ul>
    <?php endif ?>
    <li class="thumb<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
            <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>" ><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(175) ?>" width="175" height="175" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" />
            </a>
               <div class="caption">    
                  <h4 class="product-name"> <?php $_productName = $this->helper('core/string')->truncate($this->htmlEscape($_product->getName()),20,'...', $_remainder, true); ?>
                   <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productName ?>">
                    <?php echo $_productName ?><?php echo $this->__('&#8482;'); ?></a></h4>
                     <?php echo $this->getPriceHtml($_product, true, '-new') ?>
                      <div class="clearfix"></div>
                  <div class="desc">                  
                    <?php $sdesc = $_product->getShortDescription();
                    $sdesc = trim($sdesc);
                    $limit = 180;
                    if (strlen($sdesc) > $limit) {
                        $sdesc = substr($sdesc, 0, strrpos(substr($sdesc, 0, $limit), ' '));
                    } ?>
                    <?php echo $sdesc."..."; ?>
                  </div>
                <div class="clearfix"></div> 
<div class="btn-group">
  <button class="btn" type="button" title="<?php echo $this->__('Add to Cart') ?>" onclick="setLocation('<?php echo $this->getProductUrl($_product) ?>')"><?php echo $this->__('Order now...') ?></button>
  <button class="btn-link" type="button" title="<?php echo $this->__('More info') ?>" onclick="setLocation('<?php echo $this->getProductUrl($_product) ?>')"><?php echo $this->__('More info?') ?></button>

      </li>
      <?php if ($i%$_columnCount==0 || $i==count($_products)): ?>
  </ul>
  <div class="clearfix"></div>  
<?php endif ?>
<script type="text/javascript">
$j('.thumb li').last().css('border-right', 'none');
</script>
<script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
<?php endforeach; ?>
<?php endif; ?>
<div class="clearfix"></div>
</div> 

现在我需要包含 cmspageid 而不是 getProductUrl:

  <button class="btn-link" type="button" title="<?php echo $this->__('More info') ?>" onclick="setLocation('<?php echo $this->getUrl('')?><?php echo $_product->getCmspageid() ?>')"><?php echo $this->__('More info?') ?></button>

因此,当单击链接时,会加载正确的 CMS 页面。

如果有人可以帮助我们,我将不胜感激。

非常感谢

4

2 回答 2

0

你应该尝试这样的事情:

<a href="{{store url=""}}<?php echo $_product->getCmspageid() ?>">Link Here</a>
于 2012-12-05T11:51:38.743 回答
0

我的问题是以某种方式将属性文本作为 URL foreach 产品的一部分。由于我使用的是 catalog/product_new 我无法回显属性文本,因为 Magento 只允许属性显示在 catalog/product_view 页面上!

我不得不在第 114 行修改 new.php 文件,添加这一行:

->addAttributeToSelect('cmspageid')

然后在我有“更多信息”按钮的 new.phtml 文件中,我回显了来自“cmspageid”的值

__('更多信息') ?>" onclick="setLocation('getCmspageid(); ?>')">__('更多信息?') ?>

现在,每个产品都有一个“立即订购”按钮和一个“更多信息”按钮。单击“更多信息”时,用户将转到显示该产品的完整详细信息的 CMS 页面...

呸!

于 2012-12-06T10:16:36.373 回答