Magento-how to obtain the product or product category instance in the magento template? About magento's helper class Mechanism

Source: Internet
Author: User

For Seo purposes, I want to add a link to the product on the product view page, a link to the product category, and a link to the Home Page. By the way, I want to take a look at ALT, H1, title

And Other Related Seo elements. Community version magento is easier to achieve on the product view page. magento official forums also have a lot of related

Post.

 

Http://www.magentocommerce.com/boards/viewthread/19476/

Http://www.magentocommerce.com/boards/viewthread/18536/

Http://www.magentocommerce.com/boards/viewthread/195254/

 

 

<?php  echo  $this -> getProduct ()-> getCategory ()-> getName ()  ?> <? PHP Mage :: getBlockSingleton ( 'catalog/navigation' )-> getCurrentCategory () ?> But obviously, these methods are not very satisfactory. there are one or more problems. in addition, if the template of other product details is used, these templates cannot be called at all. my idea is to first obtain the product and then obtain the category of the product. I am only talking about ideas. It turns out that either my thinking is wrong or a community version bug may not be a bug, but I didn't take the time to track the code. in magento, the first magento module provides the helper class, and the more standard syntax is to perform some operations in the template through these helper classes. get product $ _ helper = $ this-> helper ('catalog ') $ _ product =$ _ helper-> getproduct (); get category $ _ category =$ _ product-> getcategory (); or
$ _ Helper = $ this-> helper ('catalog '); $ _ Category = $ _ helper-> getcategory (); note that I have verified this idea myself, some templates do not work either. it's a bug, or other reasons. I haven't checked the code in depth. // The following method obtains the category through the product. In fact, I think this action should be put in a block and then called. $ _ Helper = $ this-> helper ('catalog/output ');
$ _ Product = $ this-> getproduct ();
$ _ Purl =$ _ product-> getproducturl ();
$ Categories = $ _ product-> getcategoryids ();
Foreach ($ categories as $ K =>$ _ category_id ){
$ _ Cat = Mage: GetModel ('catalog/Category ')-> load ($ _ category_id );
// $ _ Cat-> getname ();
Break;
}
// $ _ Cat =$ _ product-> getcategory ();
// $ _ Curl = $ _ cat-> geturl (); however, during the development of magento, we will inevitably encounter such a problem, the data magento we want does not provide the corresponding API interface. In this case, we may need to modify the corresponding block class and model class for implementation. in order to maintain compatibility with future magento versions, do not directly edit magento code files. Instead, you should create a name space in your own code pool) the simplest way is to use magento's default directory priority to put the new code in the corresponding directory of APP/code/local/mage. the model requests data from the database, the block requests data from the model, and the Helper requests data from the template, block, and model.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.