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.
Related
I can't seem to figure out out to get rid of the additional text in Magento 1.9 next to the subscribe button. Pic is attached. It's our website but don't know how it got there. Please help.
Sample
In magento Newsletter block called in this phtml file.
Path of file is :
app\design\frontend\[YOUR THEME]\template\newsletter\subscribe.phtml
In that file, the code for button is this,
<div class="actions">
<button type="submit" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Subscribe')) ?>" class="button"><span><span><?php echo $this->__('Subscribe') ?></span></span></button>
</div>
You can put your code after this, so it will appear there.
Turn ON the developers options from the admin side and referesh your page.. From there you will know from which phtml this content is loaded. go to that phtml and remove the code. If you want to remove a phtml file then you can do this from local.xml.
I want to handle the product overivew separataly to the product detail view. I want to add additional text right behind the price in the product deatil view.
I tried to edit the view.phtml in path app/design/frontend/mytheme/default/template/catalog/product/view.phtml, refreshed caches and so on, but nothing changed.
In catalog.xml view.phtml will be load. So its seems correct.
But even when I try to echo "test" it doesnt show anything.
<?php if ($_product->getShortDescription()):?>
<div class="short-description">
<div class="std"><h2><?php echo $this->__('Details:') ?></h2>
</div>
</div>
<?php echo "test";
endif;?>
Do you have any hint?
Regards
Matt
You should enable template path hints in the backend to check which template file is used to render product page. Make sure that the cache is also disabled.
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';
Move the static block at the end of the page. I searched a lot for solution. But, no luck.
I tried swapping of echo in catalog/category/view.phtml. But it did not work.
<?php echo $this->getCmsBlockHtml() ?> <?php echo $this->getProductListHtml() ?>
I do not want to use css to move the block at the end of the page, It creates other alignment issues.
How to go about this problem?
you can use
before and after attributes but only work in one of two cases
When you insert into a core/text_list block
When your template block calls getChildHtml without any paramaters
When you do like this
<reference name="root">
<block type="core/template" name="your_block" before="content" template="page/html/your-block.phtml"/>
</reference>
you're telling Magento
Hey Magento, put the example_block inside the root block.
those blocks are being explicitly rendered.
<?php echo $this->getChildHtml('example_block') ?>
However, there's two cases where order matters. First, if you call
<?php echo $this->getChildHtml() ?>
hope this will sure help you.
swapping of echo work in magento. I will be :-
<?php elseif($this->isMixedMode()): ?>
<?php echo $this->getProductListHtml() ?>
<?php echo $this->getCmsBlockHtml() ?>
Please check the theme, where you are editing
file. File Path should be:- app/design/frontend/default/your theme/template/catalog/category/view.phtml
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>