你现在的位置:首页 > PHP网站建设知识库 > magento > 正文

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('30×10');
 
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 cache try { $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();