我通过大量定制基础来制作自定义Magento主题。我使用Twitter bootstrap使其响应。在主页上,我将以 2列右侧布局显示产品。
2column-right.phtml:
<div class="container">
<div class="row">
<div class="span12 page">
<?php echo $this->getChildHtml('header') ?>
<?php echo $this->getChildHtml('breadcrumbs') ?>
<?php echo $this->getChildHtml('global_messages') ?>
<div class="row">
<div class="span9"><?php echo $this->getChildHtml('content') ?></div>
<div class="span3"><?php echo $this->getChildHtml('right') ?></div>
</div>
</div><!-- ./page -->
</div>
</div><!-- ./container -->
使用list.phtml显示列表:
<?php // Grid Mode ?>
<?php $_collectionSize = $_productCollection->count() ?>
<ul class="thumbnails">
<?php $i=0; foreach ($_productCollection as $_product): ?>
<li class="span3 item <?php if($i%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
<div class="thumbnail clearfix">
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(260); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/><!--145x215-->
</a>
<?php
$itemName = $_helper->productAttribute($_product, $_product->getName(), 'name');
$limit = ($ilimit) ? $ilimit : 23;
$pad=' …';
$itemName = strip_tags($itemName);
if(strlen($itemName) > $limit) {
$itemName = substr($itemName,0,$limit);
}
$itemName = $itemName.$pad;
?>
<h3><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $itemName; ?></a></h3>
<div class="price-box">
<span><?php echo $this->getPriceHtml($_product, true) ?></span>
</div>
<?php if($_product->isSaleable()): ?>
<button type="button" class="btn btn-warning btn-medium pull-left" title="<?php echo $this->__('Add to Cart') ?>" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><?php echo $this->__('Add to Cart') ?></button>
<?php else: ?>
<button type="button" disabled="disabled" class="btn btn-medium pull-left"><?php echo $this->__('Out of stock') ?></button>
<?php endif; ?>
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="btn btn-medium pull-right"><?php echo $this->__('Add to Wishlist') ?></a>
<?php endif; ?>
</div>
</li>
<?php endforeach; ?>
</ul>
我的代码中没有提到 std 或 side-col 或 col-left ,但输出HTML仍然是:
<div class="std">
<div class="col-left side-col">
<p class="home-callout"><span></span></p>
<ul class="thumbnails">
<li class="span3 item first">
<div class="thumbnail clearfix">
<a href="http://localhost:8888/index.php/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html" title="Sony VAIO VGN-TXN27N/B 11.1" Notebook PC">
<img src="http://localhost:8888/media/catalog/product/cache/1/small_image/260x/9df78eab33525d08d6e5fb8d27136e95/s/o/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.jpg" alt="Sony VAIO VGN-TXN27N/B 11.1" Notebook PC">
</a>
<h3><a href="http://localhost:8888/index.php/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html" title="Sony VAIO VGN-TXN27N/B 11.1" Notebook PC">Sony VAIO VGN-TXN27N/B …</a></h3>
<div class="price-box">
<span>
<div class="price-box">
<span class="regular-price" id="product-price-27">
<span class="price">Rs2,699.99</span>
</span>
</div>
</span>
</div>
<button type="button" class="btn btn-warning btn-medium pull-left" title="Add to Cart" onclick="setLocation('http://localhost:8888/index.php/checkout/cart/add/uenc/aHR0cDovL2xvY2FsaG9zdDo4ODg4L2ZsYWlyYmFnL2luZGV4LnBocC8,/product/27/')">Add to Cart</button>
<a href="http://localhost:8888/index.php/wishlist/index/add/product/27/" class="btn btn-medium pull-right">Add to Wishlist</a>
</div>
</li>
</ul>
<p></p>
</div>
</div>
我需要删除这些额外的包装器(std,side-col&amp; col-left)。这会破坏几个地方的布局。我不会为此更改哪些文件。我google了很多但没有找到任何东西。我不完全理解布局xmls,但是从我看到它只是给模板提供了东西。
我不知道该怎么办。我被卡住了。请帮忙。
这些额外的空标签也只是困扰我的地方:
<p class="home-callout"><span></span></p>
以及底部的另一个额外<p></p>
。为什么这些在这里。有没有办法删除这些?如果可以的话,我会喜欢它。
我非常感谢所有的帮助。
谢谢!
答案 0 :(得分:0)
你搜索了谷歌,但是你搜索了你的代码库吗?
grep '<div class="std">' app/design/ -rsn
这揭示了定义它的一些地方(至少在基础模板中)
app/design/frontend/base/default/template/catalog/product/view/description.phtml:36: <div class="std">
app/design/frontend/base/default/template/catalog/product/view.phtml:79: <div class="std"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div>
app/design/frontend/default/modern/template/catalog/product/view.phtml:78: <div class="std"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div>
所以为了知道你必须搜索正确的地方,为什么搜索谷歌是否必须从你的代码库生成输出:
grep 'col-left' app/design/ -rsn
这将为您提供模板中使用此类的位置
app/design/frontend/base/default/template/page/2columns-left.phtml:50: <div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div>
app/design/frontend/base/default/template/page/3columns.phtml:51: <div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div>
app/design/frontend/default/modern/template/page/3columns.phtml:51: <div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div>
app/design/install/default/default/template/page.phtml:90: <div class="col-left side-col">
但为了避免添加这些内容,您有两种选择:
答案 1 :(得分:0)
我相信你已经解决了这个问题,但对于那些在这里遇到同样问题的人来说:
问题是由WYSIWYG编辑器引起的,很容易修复。在错误显示此div和span的页面上,转到CMS - &gt;页面并选择您的页面。在本页的内容部分中,关闭编辑器并根据需要手动删除div / span。
希望这有帮助!