Mage::getDesign()->getBaseDir(array('_area'=>'frontend','_package'=>'default','_theme'=>'ddl_v2','_type'=>'template'))
获得客户IP:
Mage::helper('core/http')->getRemoteAddr(true)
截取字符串
<?php echo $this->htmlEscape(Mage::helper('core/string')->truncate($str,10,'…')) ?>在购物车中清除所有产品代码:
foreach( Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item ){ Mage::getSingleton('checkout/cart')->removeItem( $item->getId() )->save(); }清除购物车所有session:
Mage::getSingleton('checkout/session')->clear();
登录信息Customer
Mage::helper('customer')->isLoggedIn(); Mage::helper('customer')->getCustomer(); /* 获取后台用户登录信息 */ Mage::getModel('admin/Session')->getUser()->getUsername()
controller,phtml中
echo $this->getLayout()->createBlock('core/template')->setTemplate('cms/jifen.phtml')->toHtml(); echo $this->getLayout()->createBlock('rebates/vendor')->setTemplate('cms/rebate.phtml')->toHtml(); $this->getLayout()->createBlock('clientnumber/inputform', 'number')->setTemplate('clientnumber/input.phtml')->toHtml();//不需要xml $this->getLayout()->getBlock('xml_block_name')->toHtml(); //xml中配置了template $this->getLayout()->getBlock('core/templete')->setTemplate('dianyin/'.$forwardpage.'.phtml')->toHtml();//xml 没有template
magento中是怎样获得可配置商品的所有简单商品
if($_product->isConfigurable()){ $allProducts=$_product->getTypeInstance(true)->getUsedProducts(null, $_product); foreach($allProducts as $simpleProduct){ echo $simpleProduct->getSku(); } }
magento获取产品的销售数量
$productOrderedQty = Mage::helper('catalog/product')->getQuantityOrderedBySku($pSku);
magento如何得到产品的库存
(int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
magento 获取指定分类下的产品
$products= Mage::getModel('catalog/category')->load($category_id)->getProductCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('status', 1) ->addAttributeToFilter('visibility', 4);
1:获取session
$session = Mage::getSingleton('customer/session');
2:Request对象
Mage::app()->getRequest(); $post = Mage::app()->getRequest()->getParam(); Mage::app()->getRequest()->getControllerName(); Mage::app()->getRequest()->getActionName(); Mage::app()->getRequest()->getRouteName(); Mage::app()->getRequest()->getModuleName(); Mage::app()->getFrontController()->getAction(); Mage::app()->getFrontController()->getRequest()->getRouteName() ;
3::获取当前时间
Mage::getModel('core/date')->date(); Mage::getSingleton('core/date')->gmtDate(); date("Y-m-d", Mage::getModel('core/date')->timestamp(time()));
获得cache的值:
Mage::app()->loadCache('admin_notifications_lastcheck');
保存cache中:
Mage::app()->saveCache(time(), 'admin_notifications_lastcheck');
4:session,cookie设置
4.1 Set session,cookie:
Mage::getSingleton('core/cookie')->set('name','value'); Mage::getSingleton('core/session')->setData('name','value');
4.2 Get session,cookie:
Mage::getSingleton('core/cookie')->get('name'); Mage::getSingleton('core/session')->getData('name');
5.generate skin url
Mage::getDesign()->getSkinUrl('images/our_shops/shop_logo_default.jpg');
11:后台模块跳转 :
Mage::app()->getFrontController()->getResponse()->setRedirect('http://your-url.com'); Mage::app()->getResponse()->setRedirect(Mage::helper('adminhtml')->getUrl("adminhtml/promo_quote/index"));
12:产品属性操作
$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');
17:CMS/PAGE
$cms_id = Mage::getSingleton('cms/page')->getIdentifier(); $cms_title = Mage::getSingleton('cms/page')->getTitle(); $cms_content = Mage::getSingleton('cms/page')->getContent();
21:当前路径referer加密
$currentUrl = $this->helper('core/url')->getCurrentUrl(); Mage::helper('core')->urlEncode($url); Mage::helper('core')->getCurrentBase64Url()
25:获取当前站点货币符号
//获取店铺对象 Mage::app()->getStore(); //获取当前店铺ID Mage::app()->getStore()->getStoreId(); //获取当前店铺Code,该Code在创建店铺时填写 Mage::app()->getStore()->getCode(); //获取当前店铺所属的Website ID Mage::app()->getStore()->getWebsiteId(); //获取当前店铺的Name Mage::app()->getStore()->getName(); //获取当前店铺的状态 Mage::app()->getStore()->getIsActive(); //获取当前店铺的URL Mage::app()->getStore()->getHomeUrl(); //获取当前货币code echo $currency_code = Mage::app()->getStore()->getCurrentCurrencyCode(); //获取当前货币符号 echo Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
26:获取产品属性集
$sets = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())->load()->toOptionHash();
27:设置meta信息
$this->loadLayout(); $this->getLayout()->getBlock('head')->setTitle('Title'); $this->getLayout()->getBlock('head')->setKeywords('Keywords'); $this->getLayout()->getBlock('head')->setDescription('Description'); $this->renderLayout();
Mage类中属register,unregister,registry,getBaseUrl,getUrl,getModel,getSingleton,getResourceModel,helper.我比较常用,其他的都要看情况了。
Mage::register($key, $value, $graceful = false)
作用:注册变量,这个一般都是传值,比如controller控制器传值到Block,或者Model或者Helper.
参数:$key,键名,随便一个不存在的键名。
$value,键值。既是要保存的值。
$graceful,这个是标志是否要覆盖原有的值,默认是false.如果键名存在,而$graceful又是false,则抛出异常。
Mage::unregister($key)
作用:销毁已经注册的变量值。
参数:$key,键名,任何已经注册了的键名。
Mage::registry($key)
作用:获取注册了的变量。既是获取了已经用Mage::register方法注册了的变量,如没有则返回null,在magento中,如果获取了没有注册的变量,那么可能会出现异常。
参数:$key,键名,任何已经注册了的键名。
Mage::getBaseUrl()
作用:获取网站的根url,也就是url地址。
参数:一般不涉及复杂操作都用默认变量。
Mage::getUrl($route = ”, $params = array())
作用:获取网站的URL路劲,也就是路由。
参数:$route路由名称,类似于cms/index/index/,CMS属于模块名称,该名称由config.xml的frontName标签指定。
$params(),参数,形如index.php?ss=mm的参数。格式为数组
Mage::getModel($modelClass = ”, $arguments = array())
作用:获取数据模型实例对象。
参 数:$modelClass 参数形式:’catalog/product’,前面的catalog是模块名,也就是分组的意思,在magento 中,block,model,helper的类都是分组的,而product,也就是catalog模块的model文件夹下的product文件。
$arguments 获取该类所需要的参数
Mage::getSingleton($modelClass=”, array $arguments=array())
作用:该方法与getModel取同样的模型,只是该方法会注册变量
参数:与getModel无异。
Mage::getResourceModel($modelClass, $arguments = array())
作用:获取资源模型。一般都会形如catalog/product_collection的,返回数组集合,项目属于Mage::getModel所产生的对象。
参数:与getModel无异。
调用block中的方法; Mage::getBlockSingleton()
$obj = Mage::getBlockSingleton('rewards/Checkout_Rewardspent');
Mage::helper($name)
作用:获取帮助类对象,一般形如catalog/类名 ,返回帮助类对象,这个也可以直接用catalog,默认返货helper文件下的data类。
参数:catalog或者catalog/类名
好了,mage静态类中这几个是我经常用到的,其他的在各方面各方面可能用到,这里就不再多说了。
当我们在设计开发Magento 主题模板 时候,有个函数一定要知道,那就是getBaseUrl 函数,用getBaseUrl 函数我们可以在.phtml里调用JS、image、File.
1getBaseUrl 基本参数调用路径
// http://magentonotes.com/ echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); // http://magentonotes.com/js/ echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); //http://magentonotes.com/index.php/ echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK); //D:\wamp\www\magento\media echo Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA); //http://magentonotes.com/skin/ echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
按照上面这个类,我们可以使用简化代码来实现路径 的调用
echo Mage::getBaseUrl('skin');
2Mage_Core_Helper_Url类调用路径
Mage_Core_Helper_Url类在 ./app/code/core/Mage/Core/Helper/Url.php文件里
//获取首页 echo Mage::helper('core/url')->getHomeUrl(); str_replace(Mage::getBaseUrl(),'',Mage::helper('core/url')->getCurrentUrl());
还有种显示图片的方法:
<?php echo $this->getSkinUrl('images/ddbtn.gif');?> $this->getJsUrl('varien/accordion.js') <?php echo $this->helper('core/js')->includeScript('varien/accordion.js') ?>
magento插件手动下载 http://freegento.com/ddl-magento-extension.php
magento 一步支付插件 OneStepCheckout
图片上传 magento-community/MultiBanner_Module
magento订单删除插件key:magento-community/BoutikCircus_DeleteOrders
magento 支付宝key:magento-community/Cosmo_Community_AlipayPaymentGateway
后台管理产品显示图片 KEY:magento-community/TBT_Enhancedgrid
多列的下拉菜单key:magento-community/Raptor_ExplodedMenu
产品图片放大镜key:magento-community/Moo_CloudZoom
推荐分类key: magento-community/SFC_FeaturedCategories
进入magento后台,点击Catalog > Manage Categories 选择你要推荐的分类进入,通过"Featured Category?" 及 "Featured Sub-Category?" 两个选项就可以设置你的推荐分类了
分类列表 magento-community/CategoryModule
分类中的畅销产品 magento-community/Arboresys_BestSeller_per_category
熱销产品magento-community/Luxe_Bestsellers
每一个开发magento模板的程序员手中必备的blank主题,相对默认的magento主题,blank进行了大瘦身并且清除了不必要的XML,和模板中的多余代码,对性能的提供也是有很大帮助的。
Magento blank theme:
magento-core/Interface_Frontend_Default_Blank
magento-core/Interface_Frontend_Default_Modern
magento-community/Free_Mage_Theme
magento-community/Basic_Template
magento-community/templatemonster_theme
magento-community/DC_Catalog 可以根据品牌或各种属性来筛选产品
购物车预览 Extension Key:magento-community/cartview