holy shit

寺夺喜从天降

magento

加一个新的Layout到CMS页

生成一个新的xml文件比如名字为cms.xml,然后放到app/etc/modules/目录
    <?xml version="1.0"?> 
    <config> 
        <global> 
            <cms> 
                <layouts> 
                    <redirect> 
                        <label>2 rows</label> 
                        <template>page/2rows-1columns.phtml</template> 
                    </redirect> 
                </layouts> 
            </cms> 
        </global> 
    </config>

设置页面浏览器标题

1. 在layout文件中配置
    <youmodule_yourcontroller_youraction> 
          <reference name="root"> 
                <action method="setHeaderTitle" translate="title" module="your_module"><title>Your Title for Browser</title></action> 
            </reference> 
    </youmodule_yourcontroller_youraction>
2. 在php文件中写代码 在controller文件的action方法中
    public function indexAction() { 
       $this->loadLayout(); 
       $this->getLayout()->getBlock('head')->setTitle($this->__('Your title')); 
                ...... 
       $this->renderLayout(); 
    }

控制首页显示新产品数量

它由两个文件控制,一个是app/code/core/Mage/Catalog/Block/Product/New.php,这个文件在1.31版本以后有所改变。

1.31版本以前的控制行是$products->setOrder(’news_from_date’)->setPageSize(5)->setCurPage(1);

1.31版本以后是文件开头的:Set const DEFAULT_PRODUCTS_COUNT = 5;

通过修改这个数字可以控制新产品显示数量,但是仅仅修改这里还不够,因为在默认模板的new.phtml(路径app/design/frontend/default/default/template/catalog/product/new.phtml)文件里对新产品显示还有限制,这里的限制导致了即使你在上个文件里把新产品数量设成10,它依然显示4个。控制代码是:<?php if ($i>4): continue; endif; ?>

修改方法是把该行代码更换成:

<?php if ($i==5): echo '</tr><tr>'; endif; ?>
<?php if ($i>9): continue; endif; ?>

如果你需要显示10个以上的新产品,需要在下面加上:

<?php if ($i==5): echo '</tr><tr>'; endif; ?>
<?php if ($i==10): echo '</tr><tr>'; endif; ?>

在页面头部添加一个Top Link

场景:当用户进入Customer Login页面时,想看到页面顶部的菜单项增加一项My Blog
打开layout/customer.xml,在<customer_account_login>标签下加入下面的代码
    <reference name="top.links"> 
        <action method="addLink" translate="label title" module="customer"> 
            <label>My Blog</label> 
            <url>http://www.myblog.com</url> 
            <title>My Blog</title> 
            <prepare/> 
            <urlParams/> 
            <position>100</position></action> 
    </reference>
上面代码的url标签: <url>http://www.myblog.com</url>
也可以像下面这样传入一个链接
<url helper="customer/getLogoutUrl"/>
这将导致customer模块下的Heper类的getLogoutUrl方法的调用生成恰当的url。

调用静态块(Static Block)

假设有在Magento后台建立一个Static Block名字为'footer_links',在phtml(其他php文件中方法一样)中调用方式如下:
    // Block是与店铺相关的,所以要设置setStoreId. 
    $block = Mage::getModel('cms/block') 
     ->setStoreId(Mage::app()->getStore()->getId()) 
     ->load('footer_links'); 
    $content = $block->getContent(); // Block的原始内容已经获得 
     
    $processor = Mage::getModel('core/email_template_filter'); 
    $html = $processor->filter($content);
Mage::getModel('core/email_template_filter')->filter()是必须的,因为Static Block里可能包含Magento的模板语言(如:{{store url=""}}),fiter将翻译成实际的值

posted @ 2011-05-28 13:51  潜水鱼  阅读(1022)  评论(0编辑  收藏  举报

holy shit on foot