AI Agent技术社区

AI Agent技术社区 magento 常用函数

magento 常用函数

在magento产品详细页显示自定义的属性是非常容易的。首先你需找到/app/design/frontend/default/default/template/catalog/product/view.phtml该目录下的view.phtml 文件,当然这个文件的路径取决于你选择的模板,在你模板的路径可能是/app/design/frontend/default/yourthemes/temp

在magento产品详细页显示自定义的属性是非常容易的。首先你需找到/app/design/frontend/default/default/template/catalog/product/view.phtml

该目录下的view.phtml 文件,当然这个文件的路径取决于你选择的模板,在你模板的路径可能是/app/design/frontend/default/yourthemes/template/catalog/product/view.phtml

找到后打开编辑,增加属性调用代码,常见的几种属性代码如下:

简单描述(short description):

   
  1. <?php echo $this_helper(‘catalog/output’)->productAttribute($_product, nl2br($_product->getShortDescription()), ‘short_description’) ?>

描述(description):

   
  1. <?php echo $this->helper(‘catalog/output’)->productAttribute($this->getProduct(), nl2br($this->getProduct()->getDescription()), ‘description’) ?>

产品名称(name):

   
  1. <?php echo $_helper->productAttribute($_product, $this->htmlEscape($_product->getName()), ‘name’) ?>

产品编号(sku):

   
  1. <?php echo $this->htmlEscape($_product->getSku()) ?>

产品价格(price):

   
  1. <?php echo $_coreHelper->currency($_finalPrice,true,false) ?>

上面是magento商品几种常见的属性调用代码,把代码放在你想展示的合适位置即可。

当然,你也可以调用自定义的属性。下面介绍两种类型的属性调用:

1.你新增的属性为文本或文本域类型(Text Field or Text Area),那么你的代码应为:

   
  1. < ?php echo $_product->getAttributeName() ?>

例如,你新增了一个属性代码(Attribute Code)为 shoe_size的属性,那么你的调用代码应写成下面格式:

   
  1. < ?php echo $_product->getShoeSize() ?>

你应该把去掉下划线,并且第一字母大写,然后替代AttributeName ,如果你使用的是getshoesize() ,magento将无法工作。

2.你新增的属性为下拉菜单类型(Dropdown)和多项选择类型(Multiple Select),那么你的代码应写成下面格式:

   
  1. < ?php echo $_product->getAttributeText('shirt_size') ?>

在Magento目录的分类页面里,希望在左侧导航获取到父分类和子分类,可以打开app/your_package/your_themes/template/catalog/navigation/left.phtml

显示父分类分类名

   
  1. $currentCat = Mage::registry('current_category');
  2. //如果是根目录,则显示当前目录
  3. if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() )
  4. //显示当前目录名
  5. echo $this->getCurrentCategory()->getName() ;
  6. else
  7. {
  8. //显示当前目录的父分类名
  9. echo $this->getCurrentCategory()->getParentCategory()->getName() ;
  10. }

显示子分类分类名

显示的子分类是建立在当前的父分类的基础上

   
  1. $currentCat = Mage::registry('current_category');
  2. if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() )
  3. {
  4. // 当前分类是顶级分类
  5. $loadCategory = $currentCat;
  6. }
  7. else
  8. {
  9. // 当前分类是顶级分类的的一个子分类,载入当前分类的父分类
  10. $loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
  11. }
  12. $subCategories = explode(',', $loadCategory->getChildren());
  13. foreach ( $subCategories as $subCategoryId )
  14. {
  15. $cat = Mage::getModel('catalog/category')->load($subCategoryId);
  16. if($cat->getIsActive())
  17. {
  18. echo '<a href="%27.$cat-%3EgetURL%28%29.%27">'.$cat->getName().'</a>';
  19. }
  20. }
Get store data
Mage::app()->getStore();
Store Id
Mage::app()->getStore()->getStoreId();
Store code
Mage::app()->getStore()->getCode();
Website Id
Mage::app()->getStore()->getWebsiteId();
Store Name
Mage::app()->getStore()->getName();
Is Active
Mage::app()->getStore()->getIsActive();
Store Home Url
Mage::app()->getStore()->getHomeUrl();
 
$currentCat = Mage::registry('current_category');
if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() )
{
// 当前分类是顶级分类
$loadCategory = $currentCat;
}
else
{
// 当前分类是顶级分类的的一个子分类,载入当前分类的父分类
$loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
}
$subCategories = explode(',', $loadCategory->getChildren());

foreach ( $subCategories as $subCategoryId )
{
$cat = Mage::getModel('catalog/category')->load($subCategoryId);

if($cat->getIsActive())
{
echo '<a href="<?php echo $this->getCategoryUrl($cat) ?>">'.$cat->getName().'</a>';
}
}
 
 

1. 得到产品,以及过滤:

Php代码 复制代码 收藏代码
  1. getResourceModel('catalog/product_collection')
  2. $collection = Mage::getModel('catalog/product')->getCollection();
  3. ->Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
getResourceModel('catalog/product_collection')
$collection = Mage::getModel('catalog/product')->getCollection();
->Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection

2.取得属性集,属性过滤

Php代码 复制代码 收藏代码
  1. $attributes = Mage::getSingleton('catalog/config')
  2. ->getProductAttributes();
  3. $collection->addAttributeToSelect($attributes) //选择属性
  4. ->addMinimalPrice()
  5. ->addFinalPrice()
  6. ->addTaxPercents()
  7. ->addAttributeToFilter('test_product', 1, 'left') //属性过滤 具备该属性
  8. ->addStoreFilter(); //商店过滤
  9. Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
  10. //对产品的状态进行可见性过滤 Disable,EnableMage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection); //visibility过滤 Catalog,Search,Not Visible$this->_productCollection = $collection;
   $attributes = Mage::getSingleton('catalog/config')
    ->getProductAttributes();
   $collection->addAttributeToSelect($attributes) //选择属性
    ->addMinimalPrice()
    ->addFinalPrice()
    ->addTaxPercents()
    ->addAttributeToFilter('test_product', 1, 'left')  //属性过滤 具备该属性
    ->addStoreFilter();  //商店过滤

Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
 //对产品的状态进行可见性过滤 Disable,EnableMage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);  //visibility过滤 Catalog,Search,Not Visible$this->_productCollection = $collection;

3.

Php代码 复制代码 收藏代码
  1. protected function _prepareLayout() //面包屑
  2. {
  3. if ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs')) {
  4. $breadcrumbsBlock->addCrumb('home', array(
  5. 'label'=>Mage::helper('catalog')->__('Home'),
  6. 'title'=>Mage::helper('catalog')->__('Go to Home Page'),
  7. 'link'=>Mage::getBaseUrl()
  8. ));
  9. }
  10. parent::_prepareLayout();
  11. }
        protected function _prepareLayout()  //面包屑
        {
            if ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs')) {
                $breadcrumbsBlock->addCrumb('home', array(
                    'label'=>Mage::helper('catalog')->__('Home'),
                    'title'=>Mage::helper('catalog')->__('Go to Home Page'),
                    'link'=>Mage::getBaseUrl()
                ));
            }  
                          
            parent::_prepareLayout();
        }

4.

Php代码 复制代码 收藏代码
  1. protected function _beforeToHtml()
  2. {
  3. parent::_beforeToHtml();
  4. $toolbar = $this->getToolbarBlock(); //工具条
  5. $toolbar->removeOrderFromAvailableOrders('position'); //移除可用的排序
  6. return $this;
  7. }
 protected function _beforeToHtml()
 {
  parent::_beforeToHtml();
  $toolbar = $this->getToolbarBlock();   //工具条
  $toolbar->removeOrderFromAvailableOrders('position'); //移除可用的排序
  return $this;
 }

5. 设定使用的模板

Php代码 复制代码 收藏代码
  1. $this->setTemplate('catalog/product/edit.phtml'); //设置模板
$this->setTemplate('catalog/product/edit.phtml'); //设置模板

6. 后台修改加入后台的块内容

Php代码 复制代码 收藏代码
  1. $this->_addContent($this->getLayout()->createBlock('test/adminhtml_catalog_product_edit')); //实体的 不能是布尔的
$this->_addContent($this->getLayout()->createBlock('test/adminhtml_catalog_product_edit')); //实体的 不能是布尔的

7.图片的在php文件调用

Php代码 复制代码 收藏代码
  1. <img src="<?php echo $this->getSkinUrl('images/tweeticon.jpg');?>"/>
<img src="<?php echo $this->getSkinUrl('images/tweeticon.jpg');?>"/>

8. 得到当前的store的RootCategoryId

Php代码 复制代码 收藏代码
  1. $this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());
$this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());

9. 得到catelog

Php代码 复制代码 收藏代码
  1. $category = Mage::getModel('catalog/category')->load($this->getCategoryId());
$category = Mage::getModel('catalog/category')->load($this->getCategoryId());

10.

Php代码 复制代码 收藏代码
  1. $collection = Mage::getResourceModel('catalog/product_collection')
  2. ->setStoreId($this->getStoreId())
  3. ->addCategoryFilter($this); 
  4. Magento has a vast configuration table (core_config_data in your database) that is managed in the Magento admin under System > Configuration. Occasionally you might need to find the value of a core configuration variable to do something on the fronted of your Magento store. To do this you can use the Magento Mage::getStoreConfig() method.

    Here is an example where we get the value of the Logo Image Src found in System > Configuration > Design > Header:

    Php代码 复制代码 收藏代码
    1. // Get the logo from the current store config 
    2. $logoSrc = Mage::getStoreConfig('design/header/logo_src'); 
    // Get the logo from the current store config
    $logoSrc = Mage::getStoreConfig('design/header/logo_src');

     

    This will return something like "images/logo.gif" which you can then use to pull the logo wherever you want. This way if your logo is ever changed to say, ""images/logo.jpg", you don't have to hunt through all your templates to replace the .gif extension with .jpg. The value will be updated instantly when you save your configuration.

    The "design/header/logo_src" matches the path column in the core_config_data table in the database. You can use the path value to load the value of any config row.


    Example: we need to find out what language locale the current store is using. We can do this by getting the value for the general/locale/code path:

    Php代码 复制代码 收藏代码
    1. cale = Mage::getStoreConfig('general/locale/code'); 
    cale = Mage::getStoreConfig('general/locale/code');

    For English stores this will return something like: en_US.

    I hope this makes sense and is useful to someone. Any questions or problems, please post in the comments!

    Php代码 复制代码 收藏代码
    1. $configValue = Mage::getStoreConfig('sectionName/groupName/fieldName'); 
    $configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');

    实例1 Get store contact telephone

    That's a Core configuration, so it's saved in core_config_data table, and the phone information is the field: general/store_information/phone So, all you need is to read the configuration data as

    Php代码 复制代码 收藏代码
    1. $storePhone = Mage::getStoreConfig('general/store_information/phone'); 
    $storePhone = Mage::getStoreConfig('general/store_information/phone');

    For CMS pages insert the following variable:

    Xml代码 复制代码 收藏代码
    1. {{config path="general/store_information/phone"}} 

    You can find more info on this here, and you can always do the reverse programmatically

    实例2 magento get store configuration:

    How to get Magento system configuration value? It's easy:

    Php代码 复制代码 收藏代码
    1. Mage::getStoreConfig($path, $storeCode) // $storeCode is not required 
    Mage::getStoreConfig($path, $storeCode) // $storeCode is not required

    for example you need to get value set for store phone number from system config:

    Php代码 复制代码 收藏代码
    1. Mage::getStoreConfig('general/store_information/phone'); 
    Mage::getStoreConfig('general/store_information/phone');

    Also, you can get configuration value as true or false like this:

    Php代码 复制代码 收藏代码
    1. Mage::getStoreConfigFlag('general/store_information/phone'); // return true 
    2. Mage::getStoreConfigFlag('general/yes_no/choice'); // true or false based on selection 
    Mage::getStoreConfigFlag('general/store_information/phone'); // return true
    Mage::getStoreConfigFlag('general/yes_no/choice'); // true or false based on selection

    实例3 Get Store Email Addresses:

    General Contact

    Php代码 复制代码 收藏代码
    1. /* Sender Name */ 
    2. Mage::getStoreConfig('trans_email/ident_general/name');  
    3. /* Sender Email */ 
    4. Mage::getStoreConfig('trans_email/ident_general/email'); 
    /* Sender Name */
    Mage::getStoreConfig('trans_email/ident_general/name'); 
    /* Sender Email */
    Mage::getStoreConfig('trans_email/ident_general/email');

    Sales Representative

    Php代码 复制代码 收藏代码
    1. /* Sender Name */ 
    2. Mage::getStoreConfig('trans_email/ident_sales/name');  
    3. /* Sender Email */ 
    4. Mage::getStoreConfig('trans_email/ident_sales/email'); 
    /* Sender Name */
    Mage::getStoreConfig('trans_email/ident_sales/name'); 
    /* Sender Email */
    Mage::getStoreConfig('trans_email/ident_sales/email');

    Customer Support

    Php代码 复制代码 收藏代码
    1. /* Sender Name */ 
    2. Mage::getStoreConfig('trans_email/ident_support/name');  
    3. /* Sender Email */ 
    4. Mage::getStoreConfig('trans_email/ident_support/email'); 
    /* Sender Name */
    Mage::getStoreConfig('trans_email/ident_support/name'); 
    /* Sender Email */
    Mage::getStoreConfig('trans_email/ident_support/email');

    Custom Email 1

    Php代码 复制代码 收藏代码
    1. /* Sender Name */ 
    2. Mage::getStoreConfig('trans_email/ident_custom1/name');  
    3. /* Sender Email */ 
    4. Mage::getStoreConfig('trans_email/ident_custom1/email'); 
    /* Sender Name */
    Mage::getStoreConfig('trans_email/ident_custom1/name'); 
    /* Sender Email */
    Mage::getStoreConfig('trans_email/ident_custom1/email');

    Custom Email 2

    Php代码 复制代码 收藏代码
    1. /* Sender Name */ 
    2. Mage::getStoreConfig('trans_email/ident_custom2/name');  
    3. /* Sender Email */ 
    4. Mage::getStoreConfig('trans_email/ident_custom2/email'); 
    /* Sender Name */
    Mage::getStoreConfig('trans_email/ident_custom2/name'); 
    /* Sender Email */
    Mage::getStoreConfig('trans_email/ident_custom2/email');

     
$collection = Mage::getResourceModel('catalog/product_collection')
->setStoreId($this->getStoreId())
->addCategoryFilter($this);

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐

  • 浏览量 1225
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献18条内容