Removing Masshead Magento Extension from certain categories - magento

As I describe in the title, what i want to do is to remove the Masshead extension from certain categories in magento. Any ideas how can that be done?

The module will be most likely including a block on the categories page. This block will be defined in the modules layout xml file. You need to find the definition to identify the name of the block and the name of the parent block/container it is being included in. As you want to keep it on some categories but remove it from others, the simplest solution I can think of would to be to use Magento's Administration Area for the categories you want to remove it from and add some layout update xml to these specific categories.
I normally do this with statements like the following under Admin->Catalog->Manage Categories. Select the appropriate category and then click on Custom Design where you will find the Custom Layout Update field to out the XML in;
<reference name="content">
<remove name="masshead.blockname" />
</reference>
You could go about it the other way and remove it from all categories by changing the layout xml file of the module to not include it and use layout update xml in the admin area per each category you want to include it on. Really depends on if there are more categories you want on it than not or vice versa.

Related

Different look for bundle-product

I need to apply a different style for the bundle-products within a magento-project. And I'd like to know which would be the best routine to do so?
Changing the layout with the layout updates directly in the dashboard
Making a new layout-template explicitely for these products and apply
this layout on all bundles
I have severally (>20) bundled products and want to use a quite different look for these. What would be the best routine therefore?
Is it just styling changes, or differences at the page template level? If it's just styling, you can create custom CSS using the .bundle-product selector to apply the changes to bundle product types only. If you want to customise on the product level, the body tag will include a class built from the product identifier (e.g. product-type-my-amazing-product), which again you can target to apply styling changes on a per-product level.
For template overrides on the other hand, you'll need to use layout updates using the corresponding layout handles:
<PRODUCT_TYPE_bundle>
<reference name="product.info">
<action method="setTemplate">
<template>catalog/view/bundle.phtml</template>
</action>
</reference>
</PRODUCT_TYPE_bundle>
And then create the catalog/view/bundle.phtml file in your custom theme. Again, the same can be achieved on a per-product level: a product page can be targeted for a layout update using the layout handle where X is the (numeric) ID of your product.

Magento : Find a layout handle for product category page?

I know : we can update a layout of a view in magento by using its layout handle for example "http://domain.com/shops/index.php/customer/account/index/" it has a layout handle like by using this in local.xml we can update layout of that particular view like removing the cart sidebar as follows
<layout version="0.1.0">
<customer_account_index>
<remove name="cart_sidebar"/>
</customer_account_index>
</layout>
And what i want to know is, i created a menu items fall like men->Tshirts and it goes to the url like "http://domain.com/shops/index.php/men/t-shirts.html", how can i remove the cart sidebar from this page?
You have the general layout for categories catalog_category_view, but Magento also loads a specific layout handle for a category <CATEGORY_{ID_HERE}> so you ca use for example <CATEGORY_5> You can also specify a custom layout code in the category edit page under the design tab. You can also set it's children to inherit this by editing them.
On category page the handles Magento fires (in order) are
The full action name handler catalog_category_view
A special catalog_category_layered handler
A special CATEGORY_[ID] handler (where ID is a category id, like CATEGORY_8
That should give you what you're after.
If you're using Commerce Bug (the commercial Magento debugging extension I created and try not to over promote), you can grab this information from the Layout tab

Magento - Different image gallery block for specific products or categories

I'm trying to change how the image gallery is displayed but only for specific products or specific categories. Using the developer display hints, I can see that the block I want to modify for certain products is output by media.phtml.
Suppose I have an alternate file called media-special.phtml, what XML do I need to use and where do I put that XML, to use media-special.phtml instead of media.phtml for specific products or specific categories?
Both categories and products allow you to save layout xml along with the entity record. In this field for the desired entities, add the following:
<action method="setTemplate" block="product.info.media">
<tpl>path/to/media-special.phtml</tpl>
</action>

How to add something to right sidebar in Magento

I'm new to Magento. I've read a dozen of questions here and posts on Magento forums but none of them seem to explain how to solve my problem.
I have a two column layout for my category pages. In right column I have "Recently viewed items", "My basket" and "Compare products". All I need to do is add a static block to the right column.
As far as I know I have to edit some xml file but where is that file? I can't seem to even find how those three existing block were added. My guess is if I could find those I'd figure out how to add one more.
Please help, I'm completely lost now.
Thanks.
Edit
I'm obviously missing something fundamental here. Let me put it in other words.
I have a category "AAA" In this category I have added using Admin panel: a description, image and assigned few products. Then I open this category in web browser I see all my data in main area and those three blocks (mentioned above) in right sidebar.
How does Magento know to show those particular three blocks and not some others? Where does it say to show those three blocks?
You need to update a layout XML file located in app/design/frontend/*DEFAULT*/*DEFAULT*/layout/. Which XML file depends on exactly where you will be updating.
If you want this static block to show up on every single you will need to update the default handle in page.xml. Or, even better, create your own local.xml file as described here, and put this in the contents.
<layout version="0.1.0">
<default>
<reference name="right">
<block type="your/type" template="path/to/your/template.phtml" />
</reference>
</default>
</layout>
If you still have questions, I recommend you review the Designer's Guide
Those blocks are denoted to show in the catalog.xml file, checkout.xml file and the reports.xml file. Recently compared block will also appear if a customer performs a compare products, as would wishlist if a customer adds products to their wishlist (this block s controlled by wishlist.xml). If you wish to stop these blocks from appearing then simply edit these files removing the references referring to the right column and the relevant blocks.
It is possible to edit files so that blocks only appear in certain instances, see the following post for instructions http://emagen.co.uk/magento-tips-advice/hide-shopping-cart-sidebar/

Display Price Once on Magento Product Page

I want to show the product price only once on the Magento product page. Currently, it is displayed twice.
I tried to change app/design/frontend/base/default/template/catalog/product/price.phtml,
but didn't get it. I also tried app/design/frontend/base/default/template/catalog/view.phtml, but when I edited price.phtml the price is not up.
So how can I do it? Any ideas?
Thanks.
This depends on which one you want to keep. The price at the top of the page is generally displayed as part of the "product type data". Take a look at template/catalog/product/view/type/simple.phtml, where you should see $this->getPriceHtml($_product);.
The price at the bottom of the catalog page is a little more complicated. If you take a look at layout/catalog.xml, the price block (product.clone_prices) is added to the block product.info.options.wrapper.bottom, which is then added to product.info.container1 and product.info.container2. Depending on the product, one of these will be echoed on the page. You can, however, just remove the line for product.clone_prices and that should remove the price.
Hope that helps!
Thanks,
Joe
Instead of deleting the cloned price from the catalog.xml itself, as suggested by Joseph, a more clean way is to remove the block in your local.xml layout file:
<catalog_product_view>
<reference name="product.info.container2">
<remove name="product.clone_prices"/>
</reference>
</catalog_product_view>
Price blocks are defined within layout files (XML), you just need to call them from within the template files to get them to show.
In your case it seems that you might have possibly defined them twice from two related XML files within the same block, or within one file and two related sections/views. This means that when you call a function $this->getPriceHtml($_product); XMl parser loads the price twice from two different files (tied to a certain block).
Also I've noticed this within catalog.xml file:
<block type="catalog/product_view" name="product.clone_prices" as="prices" template="catalog/product/view/price_clone.phtml"/>
If this is what you are looking for then just experiment with blocks within XML files.

Resources