Passing values and parameters to template file using XML and ShortCode from Magento Admin

At times there is a need to pass some parameters to template file in Magento. Some of the conditions are as follow:

1) Category Id is needed to be passed to display all the products of that particular category
2) Static block id needs to be passed to call it in template file.

We can pass any parameters in the template file from Magento Admin using two methods

1) Using the shortcode: By using shortcode we can pass the parameter as follows

{{block type="greeting_products/productslider" category_id="11" product_count="10" title="Featured Products" template="greeting/products/featuredslider.phtml" }}

Here category_id and product_count are passed in the file featuredslider.phtml

{{block type="core/template" name="contactForm"  form_action="contacts/index/post"  template="contacts/form.phtml"}}

Here form_action URL is passed as a form action in contact form which will be passed to postAction method of IndexController.php file.

2) Using XML: We can also pass parameters using XML. It is bit tricky but is achievable. Basically we need to use a predefined tag named <action> to pass the value in template file. This can be done in following way

<block type="greeting_products/productslider" name="featuredProduct" template="greeting/products/featuredslider.phtml">
<action method="setCategoryId"><category_id>11</category_id></action>
<action method="setProductCount"><product_count>10</product_count></action>
<action method="setTitle"><title>Featured Products</title></action>
</block>

Here setCategoryId, setProductCount and setTitle are use to passed the value to the template file.

<block type="core/template"  name="contactForm" template="contacts/form.phtml">
<action method="setFormAction"><url>contacts/index/post</url></action>
</block>

Here setFormAction is used to set the Action URL of the form.

These values can be retrieved using following code from the template file, block file and controller file of the module using below code:

$this->getCategoryId()
$this->getProductCount()
$this->getTitle()

Please share your feedback on the above post.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s