magento 开发必备知识集锦

magento获取指定目录分类的子分类
if($category->hasChildren()) {  //判断是否有子目录
 $ids = $category->getChildren();   //提取子目录id清单
 $subCategories = Mage::getModel('catalog/category')->getCollection();
 $subCategories->getSelect()->where("e.entity_id in ($ids)");  //提取指定目录ids的上当清单
 $subCategories->addAttributeToSelect('name');  //指定查找目录名称
 $subCategories->load();
 foreach ($subCategories AS $item) {
 echo " - " ;
 echo '<a href="'. $item->getUrl() . '">';   //获取目录链接
 echo $item->getName();   //获取目录名
 echo "</a>(";
 echo $item->getProductCount();   //获取目录下的产品数量
 //echo $item->getChildrenCount();  //获取目录下子目录数量
 echo ")";
 echo "<br/>";
 }
 }


——————————————————————————————————————————————

获得当前分类ID,产品详细信息页面得到当前产品默认商店的的商品名称 .
1

产品详细信息页面得到当前产品默认商店的的商品名称 ---NAME,和链接

$storeId = Mage::app()->getStore()->getId();
if($storeId!=1){
    $product = Mage::getModel('catalog/product')
            ->setStoreId(1)
            ->load($_product->getId());
    $stringpos = $product->getProductUrl();
    $pos = strrpos($stringpos,"?");
    $stringpos =substr($stringpos,0,$pos);
    $productname = $product->getName();   

    echo "<a href='".$stringpos.$productname."'>".$productname."</a>"


}

2

产品分类页面得到当前分类ID:

$layer = Mage::getSingleton(‘catalog/layer’);
$_category = $layer->getCurrentCategory();
$currentCategoryId= $_category->getId();


——————————————————————————————————————————————
Magento 常用技巧与方法 .
1:获取session

$session = Mage::getSingleton('customer/session');
2:Request对象

Mage::app()->getRequest()
3:调用Model对象

Mage::getModel('infinity/model');
4:获取当前时间

Mage::getModel('core/date')->date();date("Y-m-d", Mage::getModel('core/date')->timestamp(time()));
5:session,cookie设置

5.1  Model:

Mage::getModel(‘core/cookie’);Mage::getModel(‘core/session’);
5.2 Set Method:

Mage::getSingleton(‘core/cookie’)->set(‘name’,'value’);Mage::getSingleton(‘core/session’)->set(‘name’,'value’);
5.3 Get method:

Mage::getSingleton(‘core/cookie’)->get(‘name’);Mage::getSingleton(‘core/session’)->get(‘name’);
6:输出配置文件

//header(‘Content-Type: text/xml’);header(‘Content-Type: text/plain’);echo $config = Mage::getConfig()->loadModulesConfiguration(‘system.xml’)->getNode()->asXML();exit;
7:Get URL for a Magento Category

Mage::getModel('catalog/category')->load(17)->getUrl();
8:build your URL with valid keys

Mage::helper("adminhtml")->getUrl("mymodule/adminhtml_mycontroller/myaction/",array("param1"=>1,"param2"=>2));
9:create key values

Mage::getSingleton('adminhtml/url')->getSecretKey("adminhtml_mycontroller","myaction");
10:disable security feature in the admin panel

admin panel -> System -> Configuration -> Admin section: “Add Secret key to Urls”.
11:后台模块跳转:

Mage::app()->getResponse()->setRedirect(Mage::helper('adminhtml')->getUrl("adminhtml/promo_quote/index"));
12:产品属性操作

$product = Mage::getModel('catalog/product')->getCollection()->getFirstItem();foreach($product->getAttributes() as $att){$group_id   = $att->getData('attribute_group_id');$group      = Mage::getModel('eav/entity_attribute_group')->load($group_id);var_dump($group);}$attrSetName = 'my_custom_attribute';$attributeSetId = Mage::getModel('eav/entity_attribute_set')->load($attrSetName, 'attribute_set_name')->getAttributeSetId();
13:get a drop down lists options for a mulit-select attribute

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'attribute_id');foreach ( $attribute->getSource()->getAllOptions(true, true) as $option){$attributeArray[$option['value']] = $option['label'];}
14:或取栏目图片

public function getImageUrl($category){return Mage::getModel('catalog/category')->load($category->getId())->getImageUrl();}public function getThumbnailUrl($category){$image=Mage::getModel('catalog/category')->load($category->getId())->getThumbnail();if ($image) {$url = Mage::getBaseUrl('media').'catalog/category/'.$image;}return $url;}
15:产品缩略图

$_thumb = Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(50, 50)->setWatermarkSize('30x10');
16:判断是否首页:$this->getIsHomePage()

Mage::getSingleton('cms/page')->getIdentifier() == 'home'  &&Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms')
17:

$cms_id = Mage::getSingleton('cms/page')->getIdentifier();$cms_title = Mage::getSingleton('cms/page')->getTitle();$cms_content = Mage::getSingleton('cms/page')->getContent();
18 :

$attributes = $_product->getAttributes();$themeColor = $attributes['theme_color']->getFrontend()->getValue($_product);
19:获取configurable产品simple product

if($_product->getTypeId() == "configurable"):$ids = $_product->getTypeInstance()->getUsedProductIds();foreach ($ids as $id) :$simpleproduct = Mage::getModel('catalog/product')->load($id);$simpleproduct->getName()." - ".(int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($simpleproduct)->getQty();$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);
20:   get the attributes of Configurable Product.

$attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
21:当前路径

$currentUrl = $this->helper('core/url')->getCurrentUrl();
22:通过资源配置方式创建目录

$installer = $this;$installer->startSetup();// make directory for font cachetry {$domPdfFontCacheDir = join(DS, array('lib', 'Symmetrics', 'dompdf', 'fonts'));$domPdfFontCacheDir = Mage::getBaseDir('var') . DS . $domPdfFontCacheDir;if (!file_exists($domPdfFontCacheDir)) {mkdir($domPdfFontCacheDir, 0777, true);}} catch(Exception $e) {throw new Exception('Directory ' . $domPdfFontCacheDir . ' is not writable or couldn\'t be '. 'created. Please do it manually.' . $e->getMessage());}$installer->endSetup();
23:

<reference name="top.links"><block type="wishlist/links" name="wishlist_link"/><action method="addLinkBlock"><blockName>wishlist_link</blockName></action></reference><reference name="top.links"><action method="addLink" translate="label title" module="customer"><label>Home</label><url></url><title>Home</title><prepare>true</prepare><urlParams/><position>0</position></action><action method="addLink" translate="label title" module="customer"><label>Help</label><url>help</url><title>Help</title><prepare>true</prepare><urlParams/><position>90</position></action><action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action></reference><reference name="top.links"><action method="addLink" translate="label title"><label>example</label><url>example</url><title>example</title><prepare>true</prepare><urlParams helper="core/url/getHomeUrl"/><position>100</position><liParams/><aParams>class="top-link-example"</aParams><beforeText></beforeText><afterText></afterText></action></reference>
24:在controllers 实现跳转

Mage::app()->getFrontController()->getResponse()->setRedirect('http://your-url.com');
25:获取当前站点货币符号

$storeId = (int) $this->getRequest()->getParam('store', 0);$store=Mage::app()->getStore($storeId);$currencyCode=$store->getBaseCurrency()->getCode()$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);$attributeData = $attribute->getData();$frontEndLabel = $attributeData['frontend_label'];$attributeOptions = $attribute->getSource()->getAllOptions();
26:获取产品属性集

$sets = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())->load()->toOptionHash();
27:magento使用sql

$resource = Mage::getSingleton('core/resource');$read= $resource->getConnection('core_read');$tempTable = $resource->getTableName('infinity_contacts');$_storeid = Mage::app()->getStore()->getId();$wheres = "`status`=1 AND ( FIND_IN_SET(0, `store_id`)>0 OR FIND_IN_SET($_storeid, `store_id`)>0 )";$select = $read->select()->from($tempTable, array('count(*) as num'))->where($wheres);
28:设置meta信息

$template = Mage::getConfig()->getNode('global/page/layouts/'.Mage::getStoreConfig("featuredproducts/general/layout").'/template');$this->loadLayout();$this->getLayout()->getBlock('root')->setTemplate($template);$this->getLayout()->getBlock('head')->setTitle($this->__(Mage::getStoreConfig("featuredproducts/general/meta_title")));$this->getLayout()->getBlock('head')->setDescription($this->__(Mage::getStoreConfig("featuredproducts/general/meta_description")));$this->getLayout()->getBlock('head')->setKeywords($this->__(Mage::getStoreConfig("featuredproducts/general/meta_keywords")));$this->renderLayout();

——————————————————————————————————————————————

Magento连接数据库查询想要的数据 .

<?php 
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
$select = $connection->select()
->from('catalog_product_entity', array('*')) // 选择查询所有字段,如果只想查询一个字段,把*改成字段名
->where('entity_id=?',1);               // where id =1
//->group('name');         // group by name
$rowsArray = $connection->fetchAll($select); // 返回所以行
$rowArray =$connection->fetchRow($select);   //返回行
var_dump($rowArray);
echo $rowArray[sku];
?>


 

你可能感兴趣的:(magento 开发必备知识集锦)