Magento增加布局文件
Magento的布局文件一般在用的就4个,1column.phtml,2columns-left.phtml,2columns-right.phtml,3columns.phtml.今天magento互助群里有人问是不是可以弄4列的。那样就需要自己增加布局文件了。里面具体怎么布,就看你的需求了。我这里讲下如何增加magento布局文件
一、新建一个布局文件newcolumn.phtml。
二、在layout\page.xml中
1 2 3 4 5 6 7 8 | <page_new_columns translate="label"> <label>All new-Column Layout Pages</label> <reference name="root"> <action method="setTemplate"><template>page/newcolumn.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> </reference> </page_new_columns> |
三、在code\core\mage\page\etc\congig.xml中47行
<new_columns module="page" translate="label"> <label>new column</label> <template>page/new.phtml</template> <layout_handle>page_new_columns</layout_handle> </new_columns>
这样就可以了,在Magento后台选择layout的时候 就会多一项new cloumn的选项。
Magento菜单-Magento top link添加首页
Magento 菜单加上首页比较简单,打开top.phtml
1 2 3 | <ul id="nav"> <?php echo $_menu; ?> </ul> |
改成
1 2 3 4 | <ul id="nav"> <li class="level0"><a href="<?php echo $this->getBaseUrl() ?>"><span>首页</span></a></li> <?php echo $_menu; ?> </ul> |
就是添加了一个首页的li。
给top link加首页的话,要在customer.xml里修改,把49行的
1 2 3 4 5 6 | <default> <!-- Mage_Customer --> <reference name="top.links"> <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action> </reference> </default> |
改成
1 2 3 4 5 6 7 8 | <default> <!-- Mage_Customer --> <reference name="top.links"> <action method="addLink" translate="label title" module="customer"><label>Home</label><url></url><title>Home</title><prepare>true</prepare><urlParams/><position>5</position></action> <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action> </reference> </default> |
Magento很多东西都是要在xml中修改的,小小感叹下我还是很多东西都不会。
Magento列表页用jQuery实现产品图片放大效果
今天看到个网站,鼠标移到列表页的产品图片上,旁边会弹出一个大图,感觉不错,就自己在Magento里写了个。先看看效果


这个效果比较好实现,打开list.phtml,把输出img那句话复制到<a>标签外面,加一个class,jQuery会用到
1 2 3 4 5 | li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>"> <img class="listhoverimg" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(300 ,327); ?>" width="300" height="327" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /> <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(155 ,169); ?>" width="155" height="169" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /></a> ……………………</li> |
然后在底部加上
1 2 3 4 5 6 7 8 9 10 | <script type="text/javascript"> jQuery(".listhoverimg").css("display","none"); jQuery(".products-grid li:nth-child(1),.products-grid li:nth-child(2)").addClass("img1"); jQuery(".products-grid li:nth-child(3),.products-grid li:nth-child(4)").addClass("img2"); jQuery(".products-grid .product-image").hover(function(){ jQuery(this).siblings(".listhoverimg").css("display","block") },function(){ jQuery(this).siblings(".listhoverimg").css("display","none") } ) </script> |
这个简单的Magento产品图片放大效果就出来了。
Magento中调用静态block
Magento中调用静态Block主要有两个地方。
一、CMS文章页调用静态Block:{{block type=”cms/block” name=”cms_test_block” block_id=”toplinkmenu” }}只要更改block_id即可,block_id是静态Block的ID。
二、在.phtml中调用静态Block:<?php echo $this->getLayout()->createBlock(‘cms/block’)->setBlockId(‘wxts’)->toHtml() ?>只要更改setBlockId即可,setBlockId是静态Block的ID。
Magento免费模板——grayscale
Magento免费模板——grayscale,这个模板比较清爽,效果也不错。

模板下载地址:http://web-experiment.info/magento/media/downloads/wp_magento_theme_grayscale_01.zip
Magento免费模板——localstore
Magento免费模板——localstore,这个免费模板还比较好看,颜色比较暗。

模板下载地址:http://web-experiment.info/magento/media/downloads/wp_magento_theme_fashionstore_01.zip
Magento首页图片展示
Magento首页的图片产品展示方式有很多,今天分享一个masamaso弄过来的一个jquery效果

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style type="text/css">/*banner轮播*/.picdiv{width:760px; height:290px; margin:0 auto; padding:0; overflow:hidden; position:relative;}.picbox{ margin:0; padding:0; overflow:hidden; width:760px; height:290px; position:absolute;z-index:999; }.picbox img{ width:760px; height:290px;padding:0;}.picbox2{ width:100%; background:#3B3B4C; filter:alpha(opacity=70); position:absolute;right:0px; bottom:10px;z-index:1000; overflow:hidden;}.picbox2 ul{ float:right; margin:0; padding:0; margin-top:4px; margin-right:15px; }.picbox2 ul li{ cursor:pointer;list-style:none;float:left;width:18px; height:18px; font-family:Arial; line-height:18px;margin:2px; padding:0;overflow:hidden; text-align:center;}.picbox2 ul li.off{ cursor:pointer;list-style:none;float:left;width:15px; height:15px; font-family:Arial; line-height:15px;margin:2px; padding:0;overflow:hidden; text-align:center;background:#353535; border:1px solid #ccc;color:#fff;}.picbox2 ul li.on {cursor:pointer;list-style:none;float:left;width:15px; height:15px; font-family:Arial; line-height:15px;margin:2px; padding:0;overflow:hidden; text-align:center; background:#990000; border:1px solid #ccc;color:#FFF;}.picbox{ margin:0; padding:0; overflow:hidden; width:760px; height:290px; position:absolute;z-index:1; }.picbox img{ width:760px; height:290px;padding:0; border:0;}.picbox2{ margin:0; padding:0; width:760px; overflow:hidden; background:#353536;opacity:0.6; filter:alpha(opacity=60);padding:1px 0; position:relative; top:248px;z-index:2;}.picbox2 .filerdiv{margin:0; padding:0; overflow:hidden; border-width:1px 0; border-style:solid;border-color:#837B69;font-size:12px; color:#fff; text-align:center; height:30px; line-height:30px;}
</style>
<div class="picdiv">
<div class="picbox">
<div id="pic1" >
<a href="http://www.masamaso.com/package.php?id=22&path=1269418431" target="_blank">
<img src="http://image01.masamaso.com/pic/1270056820499615727.jpg" alt="" /> </a>
</div>
<div id="pic2" style="display:none;">
<a href="http://www.masamaso.com/package.php?id=21&path=1269488844" target="_blank">
<img src="http://image01.masamaso.com/pic/1269459787031927872.jpg" alt="" /> </a>
</div>
<div id="pic3" style="display:none;">
<a href="http://www.masamaso.com/goods.php?id=3036&path=1267175650" target="_blank">
<img src="http://image01.masamaso.com/pic/1271030787344249690.jpg" alt="" /> </a>
</div>
<div id="pic4" style="display:none;">
<a href="http://www.masamaso.com/goods.php?id=3041&path=1267175650" target="_blank">
<img src="http://image01.masamaso.com/pic/1267146761968477480.jpg" alt="" /> </a>
</div>
<div id="pic5" style="display:none;">
<a href="http://www.masamaso.com/goods.php?id=3184&path=1267175650" target="_blank">
<img src="http://image01.masamaso.com/pic/1271031039991694249.jpg" alt="" /> </a>
</div>
</div>
<div class="picbox2">
<div class="filerdiv">
<ul>
<li id="num1" class="on" onMouseOver="testshowpic(1,1)" onMouseOut="startpic()">1
</li>
<li id="num2" class="off" onMouseOver="testshowpic(2,1)" onMouseOut="startpic()">2
</li>
<li id="num3" class="off" onMouseOver="testshowpic(3,1)" onMouseOut="startpic()">3
</li>
<li id="num4" class="off" onMouseOver="testshowpic(4,1)" onMouseOut="startpic()">4
</li>
<li id="num5" class="off" onMouseOver="testshowpic(5,1)" onMouseOut="startpic()">5
</li>
</ul>
<a style="color:white;" href="activity_1004.php" target="_blank">4.1—4.30,4月老顾客满988元送295元真皮腰带1条,赠品任选,多买多送!</a>
</div>
</div>
<p class="clear">
</p>
</div>
<script type="text/javascript">
var time=1;
var count=5;
function testshowpic(n,num)
{
if(num==1){clearInterval(id);}
if(n>count)
{
n=1;
}
time=n;
for(var p=1; p<=count;p++)
{
if(p==n)
{
$("#pic"+p).hide().fadeIn('slow');
$("#pic"+p).css("display","block");
$("#num"+p).attr("class","on");
}
else
{
$("#pic"+p).css("display","none");
$("#num"+p).attr("class","off");
}
}
}
if (count > 1) {
var id=window.setInterval("testshowpic(time+1)",7000);
}
function startpic()
{
id=window.setInterval("testshowpic(time+1)",7000);
}
</script> |
有需要这个做Magento首页产品展示的,可以直接拿去修改下久可以放到Magento里了。
Magento模板结构分析
制作Magento模板前对Magento模板结构的了解是很重要的,Magento模板分布在两个地方,一个是控制网站样式及图片,另外个是调动及修改网站功能模块。我们以default这个模板为例(接下来都以这个模板为例),我们分别打开skin\frontend\default下, app\design\frontend\default,你会发现在这两个文件夹下都有个default的文件夹,这两个就是主要模板文件,如果你有个blank模板,那在这两个文件夹下都会有个blank文件夹。
打开skin\frontend\default\default,里面有css,images,js,favicon.ico。这个不用多做解释了吧,相信看到了就是知道是什么东西了。
打开app\design\frontend\default\default,里面有layout,locale,template。
1、layout里面都是xml文件,主要是用来控制网站,模块定位,在Magento模板制作中有相关介绍,这里就不多说了。
2、locale里面放的是语言包。
3、template里面放的是各个模块。
Magento模板主要就是这些东西,下面我讲下模板的打包。在了解原理后,这个就很简单了,skin\frontend\default\default,app\design\frontend\default\default,这两个打包出来就可以了,放到你需要这个模板的网站上,然后后台更改下,就可以用了。
Magento模板制作教程(置顶)
我个人认为Magento模板制作的难点在于不了解Magento的架构,不会调动block。Magento的block调动几乎都是靠xml。在下面的内容会提及如何操作。
制作Magento模板的前提是:你要会Html,div+css。不管你想做什么模板,这个都是基础。如果想要做出个精致的Magento,还必须精通div+css。因为涉及到一个浏览器的兼容问题,当你在Firefox下打开你的Magento商城看着感觉是很完美,但是到了IE6下完全变形,而且中国还有50%左右的人用IE6。
在制作Magento模板之前,首先要选一个比较简单的模板,然后在此基础上做。我个人推荐使用Blank模板,这个模板比较干净,图片除了必须的 几乎没有,而且css也很精简。我刚开始做Magento模板的时候用的是Default的模板,这个模板的css文件很大,而且等模板完成后,会有很多无用图片。曾经做一个项目的时候,客户死死的抓住网站的css文件太大,让我相当的头疼。废话有点多,现在开始正题。
Magento模板最主要的地方是首页,首页完成,Magento模板就完成30%左右了。我个人习惯是先改头部和尾部,这两个地方是所有页面都有的。头部的东西都在app\design\frontend\default\你的主题\template\page\html\header.phtml里面。底部的东西都在app\design\frontend\default\你的主题\template\page\html\footer.phtml里面。这两块的话都是靠css修改的,没什么好说的。我重点讲下中间部分的布局等。
Magento的布局对于新手来说,是比较困难的。如果英语好的话建议去看看官方的介绍http://www.magentocommerce.com/design_guide/articles/intro-to-layouts,现在网上也有很多翻译好的了,想要的可以去找找。我个人认为布局就是把已有的block放到应该的地方,一般都是在xml里面调动。我介绍下catalog.xml,其他的就不说了,原理都一样,而且大部分的布局都可以在catalog里面实现。app\design\frontend\default\你的主题\layout\catalog.xml,进入后你可以看到类似的注释“Default layout, loads most of the pages”,这些注释的意思就是你所改的是什么地方的布局,例如:“Default layout, loads most of the pages”这句说的就是网站默认布局。接着往下看,会看到很多的<reference >标签,这些都是需要在page.xml里定义过后,这里才能用,这里先不详细介绍了。这些“name”有“left”,“right”,“header”等等,从字面上我们就能看出来他们所指的位置,“left”是指左边栏,“right”指右边栏,“header”指头部。各个<reference >标签里会包含多个<block>block就是我要调用的功能模块了。例如经常会有人问怎样把左边的什么移到右边,这个问题很好解决,在“left”里找到对应的block放到右边,这样就成功了。是不是觉得很简单,这篇就先讲到这,没写过这样的教程,可能讲的不详细,如果有不懂的可以留言。
Magento免费模板——Modern Theme
Magento免费模板——Modern Theme。这个免费模板在官方下载是最多的,但我没用过。不过看到过多次,这个模板还是比较不错的。可以直接拿来用。

紫月蓝骋