`
haohappy2
  • 浏览: 325935 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

how to user static block in Magento

 
阅读更多
 

Static Block是Magento提供的非常实用的一种Block类型。通过Static Block,可以让不懂代码的店铺管理员轻易修改网站中的一些动态内容,而不需要修改Magento的核心代码。Magento Static Block的创建相当简单,通过后台CMS->Static Block即可查看或新建Static Block。建立完毕之后,可以在任意的Magento页面添加该段代码。

本文从创建Static Block开始讲起,然后包括在布局文件,模板文件及CMS页面中添加创建的Static Block。最后,通过这些知识,运用到实际的Magento模版开发当中,我们讲述如何在Magento的首页添加一个幻灯片。

创建Static Block

在后台菜单cms–>static block位置,新建立一个static block,如下图,并根据如下提示,了解每个域的大致作用。

Magento Static Block

Block Title:随便填写,方便识别位置与作用
Identifier:全局唯一,用于在模板或布局文件中调用
Store View:可见、可调用范围
Content:这里只需要填写HTML代码即可,没有太特殊的东西。值得注意的是这里引用图片,添加链接的方式。
添加图片方式,

<img src=”{{media url=”home_banner.jpg”}}” alt=”" width=”950″ height=”280″ />

添加链接方式,

<a href=”{{store url=’customer/account/login/’}}”>Login</a>

在布局文件中添加Static Block

Static Block在CMS菜单下,其统一的Block类型是type=”cms/block”,在布局文件中看到的此类Block一律是在CMS下的Static Block中定义的。Static Block在布局文件中的添加方式如下。

01
02
03
04
05
<block type="cms/block" name="block_name">
    <action method="setBlockId">
        <id>block_id</id>
    <action>
</block>

<id>标签内的值即在创建Static Block时填写的Identifier。另外这里定义了block的name属性,用于在模板文件中通过getChildHtml()方法引用该Static Block。

在模板文件中调用Static Block

在模板文件中调用Static Block有两种方法。
a)第一种是通过getChildHtml()方法调用,使用该方法的前提是在布局文件中,需要调用的Static Block已经在某一个Block内形成了父子关系,然后可以在父Block中使用getChildHtml()方法。

01
echo $this->getChildHtml('block_name')

b)第二种方法是在模板文件中使用createBlock()创建一个Block,然后再将Static Block赋予新创建的Block,然后toHtml()输出。使用该种方法不需要在布局文件中提前引用该Static Block。

01
echo $this->getLayout()->createBlock('cms/block')->setBlockId('foot_links')->toHtml()

在CMS页面添加Static Block

在CMS页面中添加Static Block同样非常简单,上面提到过所有的Static Block都属于cms/block类型,name属性可以随便取,建议保持一定的相关性,并且全局唯一,block_id属性即建立Static Block时填写的identifier。

{{block type=”cms/block” name=”cms_test_block” block_id=”order_form”}}

在后台创建一个order_form静态块
Block Title :Order Form
Identifier :order_form
Status :Enabled
Content :自定义内容

1.如果要在.phtml文件中直接调用这个静态块,那可以采用以下方法

[php]
  1. <?php  
  2. $block = Mage::getModel('cms/block')  
  3.  ->setStoreId(Mage::app()->getStore()->getId())  
  4.  ->load('order_form');  
  5. $content = $block->getContent(); // Block的原始内容已经获得  
  6.   
  7. $processor = Mage::getModel('core/email_template_filter');  
  8. echo $html = $processor->filter($content);  
  9. ?>  


Mage::getModel('core/email_template_filter')->filter()是必须的,因为Static Block里可能包含Magento的模板语言(如:{{store url=""}}),fiter将翻译成实际的值
Magento中调用静态Block主要有两个地方。
是否感觉这代码太长了呢,那你还可以这么写

[php]
  1. <?php echo $this->getLayout()->createBlock(‘cms/block’)->setBlockId('order_form')->toHtml() ?>   

2.如何在CMS页面的Content中调用这个静态块呢?你可以采用以下方法

[php]
  1. {{block type="cms/block"  name="cms_test_block"  block_id="order_form" }}   


将里面order_form改成你的静态块对应的block_id则可

3.怎么样在layout中调用静态块呢?

[xhtml]
  1.  <reference name="footer">  
  2.     <block type="cms/block" name="order_form" before="-">  
  3.         <action method="setBlockId"><block_id>order_form</block_id></action>  
  4.     </block>      
  5. </reference>   

 
 
到此,你应该能够灵活的运用magento中的静态块了吧!

分享到:
评论

相关推荐

    magento static block

    Ability to place any block in any position by easily changing CMS page layout Unlimited number of blocks inside each position Unlimited number of content items inside each block Block items can ...

    Magento 2 Cookbook

    Chapter 3, Enabling Performance in Magento 2, explains how to configure different types of caching options. In Magento 2, the Full Page Cache (FPC) can be handled by Varnish to give your store a ...

    Magento在代码中调用CMS静态块 (Static Block)

    在电子商务领域,Magento是一款非常流行的开源电子商务平台,它提供了丰富的功能和高度的可定制性,使得开发者能够构建出满足各种需求的在线商店。在Magento中,CMS(Content Management System)静态块是其核心功能...

    Magento2 CookBook

    Chapter 3, Enabling Performance in Magento 2, explains how to configure different types of caching options. In Magento 2, the Full Page Cache (FPC) can be handled by Varnish to give your store a ...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    ### Magento权威指南 #### 书籍概述 《Magento权威指南》是由Adam McCombs与Robert Banh共同编著的一本深入探讨Magento电商平台的技术手册。该书由Apress出版社于2009年出版发行,旨在为读者提供一个全面、系统的...

    magento中block应用

    在Magento的架构中,Block(块)是核心组件之一,它在视图层(View Layer)中扮演着重要角色,负责处理数据并渲染到页面上。了解Magento中Block的应用对于开发高质量的Magento店铺至关重要。 1. **Block类的定义** ...

    Magento 2 Beginners Guide

    You’ll start by getting a general understanding of what Magento is, why and how you should use it, and whether it is possible and feasible to migrate from an old web store to Magento 2. As you work ...

    Magento 自定义后台menu Insert dynamical menu in Magento’s Admin

    Magento的后台菜单主要由` Mage_Adminhtml_Block_Menu`类控制,它通过遍历系统配置中的`adminhtml/menu`节点来生成菜单。每个菜单项都是一个XML节点,例如: ```xml 自定义模块 &lt;sort_order&gt;100 自定义...

    magento创建自定义页面 (Bestseller实例) Bestseller products in Magento

    8. **清理缓存**:完成上述步骤后,别忘了清理Magento的布局和Block缓存,以便系统能识别新的改动。 通过以上步骤,你将能够在Magento中成功创建一个显示Bestseller产品的自定义页面。这个过程涉及到了Magento的...

    The Definitive Guide to Magento.pdf

    ### Magento 全面指南知识点概览 #### 一、引言 《Magento全面指南》是电子商务平台Magento的权威参考书籍,由Adam McCombs与Robert Banh共同编写。本书不仅适用于初学者,对于有一定经验的开发者和技术人员也同样...

    Create new module “HelloWorld” – in Magento

    php bin/magento setup:static-content:deploy ``` 现在,当您访问`http://yourstore.com/helloworld/index/index`时,应该能看到“你好,世界!”的字样,表明我们的“HelloWorld”模块已经成功创建并运行。 总结...

    magento 评论的导入导出

    “HOW TO SETUP ADVANCED PROFILE IN MAGENTO.pdf”文档详细阐述了如何在Magento中设置高级导入导出配置。这份指南通常会涵盖以下步骤: 1. 登录Magento后台,找到“System”菜单下的“Data Transfer”选项。 2. ...

    magento快速复制网站_magento_magento快速复制站_

    这里,`/path/to/source/magento/`是源站点的Magento根目录,`/path/to/destination/`是目标服务器的目录。 在新服务器上安装MySQL,并导入先前备份的数据库: ```bash mysql -u [new_username] -p[new_password] ...

    Magento: 后台添加预览按钮 View product in frontend from Magento admin

    这篇博客“Magento:后台添加预览按钮 View product in frontend from Magento admin”主要探讨了如何通过自定义开发来实现这一功能,让管理员能够快速检查商品在网站前台的显示状态。 在Magento中,通常管理员需要...

    Guide to Programming with magento 编程手册

    通过以上内容可以看出,《Guide to Programming with Magento》是一本针对Magento开发者非常实用的手册,不仅提供了基础知识的讲解,还深入探讨了Magento的核心技术和高级功能,对于希望提升自己Magento开发技能的...

    Magento

    6. **清理缓存和重新部署**:安装完成后,需要清除Magento的缓存并重新部署静态内容,这可以通过命令行完成,如 `php bin/magento cache:flush` 和 `php bin/magento setup:static-content:deploy`。 7. **安全设置...

Global site tag (gtag.js) - Google Analytics