Inside
the handle there is the different blocks which specify the template file to be
render when that block is being called. Blocks are of two types:
- Structurer Blocks
- Content Blocks
In
our layout file we are defining only the Content Blocks and then we wrap them
in Structurer Blocks. For example, if someone is calling a customer
registration page and we want to load it on left, right, content, or footer, we
wrap that block in its respective structurer block. Here, we have wrapped two
blocks inside the "content" block which is a structurer block.
<Block>
This
element is used to define a new block. The element is usually defined within
the reference element, when we want to create a new block. The block element must have two attributes: name and type. Name is a unique identifier of the block in
the layout while the type defines the block class name. If the block is of type
or subtype of core/template, it can also have the template attribute which
defines the actual phtml template file to be used for rendering the block.
The attributes of the <block> element
Blocks
contains attributes like following:
type – this is the ID of the module class. It
defines the functionality of the block.
name - this is a unique block name, which is
needed to refer to with the help of reference.
as - this is the alias for the structural
block. It is required when we need to refer to the block code via such parent
block methods as getChild or getChildHtml. If the getChildHtml(‘block_name’)
PHP method is called from a template, than it is definitely referring to the
block whose attribute ‘as‘ is assigned the name ‘block_name’. In the file
app/design/frontend/base/default/layout/page.xml. you can find such structural
blocks as “left”,”right”,”content “,”footer”.
before – this one is used to position block
content in a structural block. The name of the block, before which it is
required to output this block is defined. If you specify the minus sign ( ” – ”
), the block will be output the first among others in its parent.
after – is used to position block content in a
structural block. after=”-” indicates the name of the block after which
this block should be output.
template - This attribute defines the template
which will represent block functionality, in which this attribute is set.
translate – indicates tags which should be
translated.
for
example file app/design/frontend/base/default/layout/page.xml
<block
type="core/text_list" name="after_body_start"
as="after_body_start" translate="label">
<label>Page Top</label>
</block>
action – <action> allows you to invoke a
block method and transmit parameters into it directly from the markup file. For
example the file app/design/frontend/base/default/layout/page.xml the method
attribute addJs, addCss, addItem is applied
<reference>
The
<reference> tag is use to extend the blocks that already exist. In this
case, we have extended the content block and inserted our own block into it.
You must use the correct block name that you want to extend.
<remove>
The
<remove> tag is use to remove the specific block. For example, say that
on your account registration page you, don't want to display the right and left
columns. In that case, then you can simply remove that block with the following
syntax <remove name="your block name">.
Child <block>
When
you wrap one block under another block, that wrapped block is called child
block. Whenever our parent block is called by our module, the child block is
automatically called.
<block
type='core/template' name='parent' template='parent.phtml'>
<block
type='core/template' name='child' template='child.phtml'/>
</block>
You
can call child block separately too with below syntax in you template file
echo
$this->getChildHtml(‘child');
root <block>
Open
page.xml layout file, you will find the <root> block that is looks like below
<block
type="page/html" name="root" output="toHtml"
template="page/3columns.phtml">
Magento
starts rendering from the root block. All other blocks are child blocks of the
root block. The root block defines the structure of the page. Here, you can see
that currently it's set to 3columns.phtml, you can change this to
1column.phtml, 2columns-right.phtml or 2columns-left.phtml.
Action Method Reference List:
<action>
allows you to invoke a block method and transmit parameters into it directly
from the markup file. Below are the list of these methods with a bit more
details.
Mage_Core_Block_Abstract
unsetChild($alias)
- Unset child block.
Parameter
Name
|
Default
Value
|
Description
|
Alias
|
N/A
|
Alias of the child
block that is to be unset.
|
unsetChildren()
- Unset all children
blocks.
append($block, $alias = ’’) -
Append child block. This function calls insert ($block, ‘’, true, $alias)
Parameter
Name
|
Default
Value
|
Description
|
Block
|
N/A
|
Name of the block that
is too be inserted.
|
Alias (optional)
|
‘’
|
Alias that is to be
given to the block
|
insert($block, $siblingName = ”, $after = false, $alias = ”) - Insert child block.
Parameter Name
|
Default Value
|
Description
|
Block
|
N/A
|
Name of the block that
is too be inserted.
|
Sibling Name
(optional)
|
‘’
|
Inserts block
before or after this child (if found). Before or after is dependent on the
value of <after /> parameter
|
After (optional)
|
False
|
If a sibling name
is set, this controls whether the block is inserted before or after the
sibling.
If no sibling is
set, this controls whether the block is added to the very start or very end
of the list of children.
|
Alias (optional)
|
‘’
|
Sets an alias for
the block
|
addToParentGroup($groupName) - Add self to the specified group of parent block.
Parameter
Name
|
Default
Value
|
Description
|
Group Name
|
N/A
|
Mage_Core_Block_Template
setTemplate($template) - Set path to
template used for generating block’s output.
Parameter
Name
|
Default
Value
|
Description
|
Template
|
N/A
|
Path to the
template file.
|
Mage_Page_Block_Html
setHeaderTitle($title) –
Parameter
Name
|
Default
Value
|
Description
|
Title
|
N/A
|
Sets the title of
the page.
|
Mage_Page_Block_Html_Head
addCss($name, $params = ‘’) - Add CSS file to HEAD entity. This function calls
Parameter
Name
|
Default Value
|
Description
|
Name
|
N/A
|
Location of the CSS
file to be added within the skin directory.
|
Params (optional)
|
‘’
|
addJs($name, $params=’’) - Add Javascript file to HEAD entity. This function calls addItem(‘js’, $name, $params)
Parameter Name
|
Default Value
|
Description
|
Name
|
N/A
|
Location of the
javascript file to be added within the js directory.
|
Params (optional)
|
‘’
|
addCSSIe($name, $params=’’) - Add
CSS file for Internet Explorer only to HEAD entity. This function calls
addItem(‘skin_css’, $name, $params, ‘IE’)
Parameter
Name
|
Default Value
|
Description
|
Name
|
N/A
|
Location of the CSS
file to be added within the skin directory.
|
Params (optional)
|
‘’
|
addJsIe($name, $params=’’) - Add
JavaScript file for Internet Explorer only to HEAD entity. This function calls
addItem(‘js’, $name, $params, ‘IE’)
Parameter Name
|
Default Value
|
Description
|
Name
|
N/A
|
Location of the javascript
file to be added within the js directory.
|
Params (optional)
|
‘’
|
addLinkRel($rel, $href) -
Add Link element to
HEAD entity. This function calls addItem(‘link_rel’, $href, ‘rel=”‘ . $rel .
‘”‘)
Parameter
Name
|
Default
Value
|
Description
|
Rel
|
N/A
|
|
Href
|
N/A
|
addItem($type, $name, $params = null, $if = null, $cond = null) - Add HEAD Item.
Parameter Name
|
Default Value
|
Description
|
Type
|
N/A
|
Allowed types: js,
js_css, skin_js, skin_css, rss
|
Name
|
N/A
|
|
Params (optional)
|
null
|
|
If (optional)
|
null
|
If set, this is
will be used to wrap around your file. Good for including files for certain
browsers only.
Example: lt IE 7
|
Cond (optional)
|
null
|
removeItem($type, $name) - Remove
Item from HEAD entity.
Parameter
Name
|
Default
Value
|
Description
|
Type
|
N/A
|
Allowed types: js,
js_css, skin_js, skin_css, rss
|
Name
|
N/A
|
setTitle($title) -
Set title element
text.
Parameter
Name
|
Default
Value
|
Description
|
Title
|
N/A
|
Mage_Catalog_Block_Product_View_Options
addOptionRenderer($type, $block, $template) - Add option renderer to renderers
array.
Parameter
Name
|
Default
Value
|
Description
|
Type
|
N/A
|
Type of option
being added.
Example Types:
text, file, select
|
Block
|
N/A
|
|
Template
|
N/A
|
Mage_Catalog_Block_Seo_Sitemap_Abstract
bindPager($pagerName) -
Init pager.
Parameter
Name
|
Default
Value
|
Description
|
Pager Name
|
N/A
|
Mage_Page_Block_Template_Links
addLink($label, $url = ‘’, $title = ‘’, $prepare = false, $urlParams
= array(), $position = null, $liParams = null, $aParams = null, $beforeText =
‘’, $afterText = ‘’)
- Add link to the list.
Parameter
Name
|
Default
Value
|
Description
|
Label
|
N/A
|
|
Url (optional)
|
‘’
|
|
Title (optional)
|
‘’
|
|
Prepare (optional)
|
False
|
|
urlParams
(optional)
|
Array()
|
|
Position (optional)
|
Null
|
|
liParams (optional)
|
Null
|
|
aParams (optional)
|
Null
|
|
beforeText
(optional)
|
‘’
|
|
afterText
(optional)
|
‘’
|
Mage_CatalogSearch_Block_Result
setListOrders() -
Set search available
list orders.
setListModes() -
Set available view
mode.
setListCollection() -
Set Search Result
collection.
Mage_Catalog_Block_Product_List_Upsell
setColumnCount($columns) –
Parameter
Name
|
Default
Value
|
Description
|
Columns
|
N/A
|
setItemLimit($type, $limit) - Set
how many items we need to show in upsell block Notice: this parameter will be
also applied
Parameter Name
|
Default
Value
|
Description
|
Type
|
N/A
|
|
Limit
|
N/A
|
Let
me know in comment if this has helped you ...
Happy Coding .... :) ....
Happy Coding .... :) ....