I want to show in my product page the approved reviews for the product.
So I am editing this file:
mytemplate/default/catalog/product/view.phtml
I tried adding this to the view.phtml file but nothing is showing up:
<?php echo $this->getChildHtml('reviews') ?>
Can you suggest a way of adding approved reviews on product page? I'm using Magento 1.7.0.2.
first of all write this code in catalog.xml
<block type="review/product_view_list" name="product.info.product_additional_data" as="reviews" template="review/product/view/list.phtml"/>
then
write this code in your view.phtml
<?php echo $this->getChildHtml('reviews') ?>
it will solve your problem...
add this line in template/review/product/view/list.phtml file
this line add anywere u want
$this->htmlEscape($_review->getStatusId())=='1'){ echo ' Approved Review';
Related
I want to move Add to cart button from view.phtml file to 2columns-right.phtml file and I am cant make it work. What I did is that I copied <?php echo $this->getChildHtml('addtocart') ?> from view.phtml file to 2columns-right.phtml and it does not appear at all. I did Flush Magento cache too but nothing again.
Any suggestions on how to make this work?
You should get familiar with magento layout system. To make possible <?php echo $this->getChildHtml('addtocart') ?> work in 2columns-right.phtml this block should be declared as child block of root block (the root is the block that is rendered with 2columns-right.phtml). Actually, I don't see much sense in moving add to cart to other template, because addtocart.phtml itself is just a button that submits whole form that is located at catalog/product/view.phtml. If you take it out of there it won't work.
First of all i agree with nevermourn you can not get childhtml if you havn't declared it. But you can use
<?php echo $this->getLayout()->createBlock('catalog/product_view')->setTemplate('catalog/product/view/addtocart.phtml')->toHtml(); ?>
By using this in 2columns-right.phtml you will get addtocart.phtml for sure.
in order to call add to cart button by using
<?php echo $this->getChildHtml('addtocart') ?>
on the page you desire in layout/local.xml
<yourModule_YourController_yourAction>
<reference name="content">
<block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/>
</reference>
</yourModule_YourController_yourAction>
I'm trying to not have my "Welcome Message" on Magento Cart header cached by my full page cache module. Everything I've tried has led to complete failure. There has to be a way.
I'm using Magentos persistent cart option and I've discovered there is some difference in the welcome message with this option that the module developers may not have accounted for. Don't know really.
It's kind of like the "welcome message is it own module but in another way it's not, It's kind of a php one line on the header page.
Now my fpc module has an option in administration to exclude modules from being cached but you have to give the modules "name" You know i.e. name="some_name". The welcome message isn't like the rest of the other modules that I can tell. Here is the php in the header:
<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>
There is nothing in the parentheses, so I've been trying to give this welcome message a name. I don't know how else to do it.
So I created a static block in adminisration with this in it:
{{block type="core/template" name"header.welcome" as="welcome" template="page/html/welcome.phtml"}}
Then I created a phtml file called welcome.phtml with this in it:
<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>
Then in the header I added this:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('welcome')->toHTML(); ?>
That usually works with about anything. But not this time. Nothing. So under the block page/html_header I added this to page.xml:
<block type="core/template" name="header.welcome" as="welcome"/>
This is mt latest attempt. Does anyone have any ideas about how to go about this? I like the welcome message being dynamic.
thanks
The welcome message is just a function of the header block. Lesti_Fpc needs the welcome message in a seperated block. In Magento 1.8 this is solved and the name of the block is welcome. In Magento 1.7 there is a semi-solution in core...
This issue is solved here: (source)
https://gordonlesti.com/lestifpc-magento-1-7-and-the-welcome-message/
I think I have made some progress for this problem. However I am not getting the solution. What I have done is created a new block in the app/design/frontend/default/layout/page.xml file.
I have added this:
<block type="page/html_welcome" name="testwelcome" as="testwelcome"/>
There seems to be a built in core function called "welcome". It can be viewed at app/code/core/Mage/Page/Block/Html/Welcome.php. So That is the reference in the page.xml file.
Then in the header.phtml file in app/design/frontend/default/template/page.html I placed a call for:
<?php echo $this->getChildHtml('testwelcome') ?>
And finally I created a new template file called testwelcome.phtml in app/design/frontend/default/template with the following code:
<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>
I can get the welcome message to display, but I can't seem to get it to render any changes.
I have modified my magento catalog page using list.phtml by adding manufacturer name next to product name. Now this works well for all categories which have 'Anchor' set as No. It does not show the changes in categories where Anchor is set to yes. Could you please help me on this.
Thanks.
The layout for anchor and non-anchor categories is different look here:
<catalog_category_default>
and
<catalog_category_layered>
in catalog.xml
Perhaps your template only uses the non anchor list.phtml and falls back to base/default for the anchor categories?
In list.phtml I added the manufacturer
<?php echo $_helper->productAttribute($_product, $_product->getAttributeText('manufacturer'),'name') ?> - <?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a>
Hi I have added the inchoo featured products but want them to show in the header so show on everypage, i tried moving the code, i tried:
echo $this->getLayout()->createBlock('Mage_Adminhtml_Block_Template', 'block-name')->setData('template', 'inchoo/block_featured_products.phtml')->toHtml()
Im kind of new to magento so i don't know
thanks
Graham
Create a CMS static block and give a identifier name to that, lets say "featured_product".
Open page.xml file from app/design/frontend/default/YOURTEMPLATE/layout/page.xml
Find the section html_header, now add the following code
<block type="cms/block" name="header_block"><action method="setBlockId"><block_id>featured_product</block_id></action></block>
Next open the app/design/frontend/default/YOURTEMPLATE/template/page/html/header.phtml file.
Find the area to design and add the following code in there :
<?php echo $this->getChildHtml('featured_product') ?>
Clean cache and test your page.
Is there an easy way in Magento to display individual products in a cms page without copying and pasting the code from the catalog pages?
I have a blog on my magento store and sometimes I'd like to drop the listing for individual products into the posts.
A code block in Magento is the best way to achieve this effect. If you look at your home page, that's how new products are generated dynamically:
{{block type="catalog/product_new" template="catalog/product/new.phtml"}}
If you created another block for a 'featured' item that took a product ID as a parameter, you could place that block on the static page and it would show that item. This page shows a brief example, but for the sake of being complete, I'll reproduce it here:
First create a new .phtml file with the following undercatalog/product/view/your_new_page.phtml
<?php
$productId = $this->getProduct_id();
$_product = Mage::getModel('catalog/product')->load($productId); //load the product
?>
<img src="<? echo Mage::helper('catalog/image')->init($_product, 'thumbnail')>resize(75, 75); ?>" alt="<?php echo $this->htmlEscape($_product['name']); ?>" border="0" width="75" />
Now simply add the following to your CMS Page or Block and adjust the product ID to the product Image you wish to view:
{{block type="catalog/product_new" product_id="1" template="catalog/product/view/your_new_page.phtml"}}
I'd probably tweak it a bit for readability if I used this on my store, but I'm also a bit overzealous in terms of using human-readable code. :)
If you are working on Magento 1.4, you should take a look at widgets which do exactly what you want.