Magento 常用方法和插件

简介:
得到路径E:\ddl\Trunk\3_Development\03_Sourcecode\test.com\www\app\design\ f rontend\default\ddl_v2\template
Java代码   收藏代码
  1. Mage::getDesign()->getBaseDir(array('_area'=>'frontend','_package'=>'default','_theme'=>'ddl_v2','_type'=>'template'))  

获得客户IP:

Java代码   收藏代码
  1. Mage::helper('core/http')->getRemoteAddr(true)  

截取字符串

Java代码   收藏代码
  1. <?php echo $this->htmlEscape(Mage::helper('core/string')->truncate($str,10,'…')) ?>  
在购物车中清除所有产品代码:
Java代码   收藏代码
  1. foreach( Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item ){  
  2.     Mage::getSingleton('checkout/cart')->removeItem( $item->getId() )->save();  
  3. }  
清除购物车所有session:
Java代码   收藏代码
  1. Mage::getSingleton('checkout/session')->clear();  

 

登录信息Customer

Java代码   收藏代码
  1. Mage::helper('customer')->isLoggedIn();  
  2. Mage::helper('customer')->getCustomer();  
  3. /* 获取后台用户登录信息 */  
  4. Mage::getModel('admin/Session')->getUser()->getUsername()  

controller,phtml中

Java代码   收藏代码
  1. echo $this->getLayout()->createBlock('core/template')->setTemplate('cms/jifen.phtml')->toHtml();  
  2. echo $this->getLayout()->createBlock('rebates/vendor')->setTemplate('cms/rebate.phtml')->toHtml();   
  3. $this->getLayout()->createBlock('clientnumber/inputform''number')->setTemplate('clientnumber/input.phtml')->toHtml();//不需要xml  
  4. $this->getLayout()->getBlock('xml_block_name')->toHtml(); //xml中配置了template  
  5. $this->getLayout()->getBlock('core/templete')->setTemplate('dianyin/'.$forwardpage.'.phtml')->toHtml();//xml 没有template  

magento中是怎样获得可配置商品的所有简单商品

Java代码   收藏代码
  1. if($_product->isConfigurable()){  
  2.     $allProducts=$_product->getTypeInstance(true)->getUsedProducts(null, $_product);  
  3.     foreach($allProducts as $simpleProduct){  
  4.         echo $simpleProduct->getSku();  
  5.     }  
  6. }  

magento获取产品的销售数量

Java代码   收藏代码
  1. $productOrderedQty = Mage::helper('catalog/product')->getQuantityOrderedBySku($pSku);  

magento如何得到产品的库存

Java代码   收藏代码
  1. (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();  

 magento 获取指定分类下的产品

Java代码   收藏代码
  1. $products= Mage::getModel('catalog/category')->load($category_id)->getProductCollection()  
  2. ->addAttributeToSelect('*')  
  3.     ->addAttributeToFilter('status'1)  
  4.     ->addAttributeToFilter('visibility'4);  

1:获取session

Java代码   收藏代码
  1. $session = Mage::getSingleton('customer/session');  

2:Request对象

Java代码   收藏代码
  1. Mage::app()->getRequest();  
  2. $post = Mage::app()->getRequest()->getParam();  
  3. Mage::app()->getRequest()->getControllerName();  
  4. Mage::app()->getRequest()->getActionName();  
  5. Mage::app()->getRequest()->getRouteName();  
  6. Mage::app()->getRequest()->getModuleName();   
  7. Mage::app()->getFrontController()->getAction();  
  8. Mage::app()->getFrontController()->getRequest()->getRouteName() ;  

3::获取当前时间

Java代码   收藏代码
  1. Mage::getModel('core/date')->date();  
  2. Mage::getSingleton('core/date')->gmtDate();  
  3. date("Y-m-d", Mage::getModel('core/date')->timestamp(time()));  

获得cache的值:

Java代码   收藏代码
  1. Mage::app()->loadCache('admin_notifications_lastcheck');  

保存cache中:

Java代码   收藏代码
  1. Mage::app()->saveCache(time(), 'admin_notifications_lastcheck');  

4:session,cookie设置
4.1 Set session,cookie:

Java代码   收藏代码
  1. Mage::getSingleton('core/cookie')->set('name','value');  
  2. Mage::getSingleton('core/session')->setData('name','value');  

4.2 Get session,cookie:

Java代码   收藏代码
  1. Mage::getSingleton('core/cookie')->get('name');  
  2. Mage::getSingleton('core/session')->getData('name');  

5.generate skin url

Java代码   收藏代码
  1. Mage::getDesign()->getSkinUrl('images/our_shops/shop_logo_default.jpg');  

11:后台模块跳转 :

Java代码   收藏代码
  1. Mage::app()->getFrontController()->getResponse()->setRedirect('http://your-url.com');  
  2. 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:或取栏目图片

Java代码   收藏代码
  1. public function getImageUrl($category){  
  2.     return Mage::getModel('catalog/category')->load($category->getId())->getImageUrl();  
  3. }  
  4. public function getThumbnailUrl($category){  
  5.     $image=Mage::getModel('catalog/category')->load($category->getId())->getThumbnail();  
  6.     if ($image) {  
  7.         $url = Mage::getBaseUrl('media').'catalog/category/'.$image;  
  8.     }  
  9.     return $url;  
  10. }  

15:产品缩略图

Java代码   收藏代码
  1. $_thumb = Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(5050)->setWatermarkSize('30x10');  

17:CMS/PAGE

Java代码   收藏代码
  1. $cms_id = Mage::getSingleton('cms/page')->getIdentifier();  
  2. $cms_title = Mage::getSingleton('cms/page')->getTitle();  
  3. $cms_content = Mage::getSingleton('cms/page')->getContent();  

21:当前路径referer加密

Java代码   收藏代码
  1. $currentUrl = $this->helper('core/url')->getCurrentUrl();  
  2. Mage::helper('core')->urlEncode($url);  
  3. Mage::helper('core')->getCurrentBase64Url()  

25:获取当前站点货币符号

Java代码   收藏代码
  1. //获取店铺对象  
  2.  Mage::app()->getStore();  
  3.    
  4. //获取当前店铺ID  
  5.  Mage::app()->getStore()->getStoreId();  
  6.    
  7. //获取当前店铺Code,该Code在创建店铺时填写  
  8.  Mage::app()->getStore()->getCode();  
  9.    
  10. //获取当前店铺所属的Website ID  
  11.  Mage::app()->getStore()->getWebsiteId();  
  12.    
  13. //获取当前店铺的Name  
  14.  Mage::app()->getStore()->getName();  
  15.    
  16. //获取当前店铺的状态  
  17.  Mage::app()->getStore()->getIsActive();  
  18.    
  19. //获取当前店铺的URL  
  20.  Mage::app()->getStore()->getHomeUrl();  
  21. //获取当前货币code  
  22. echo $currency_code = Mage::app()->getStore()->getCurrentCurrencyCode();  
  23. //获取当前货币符号  
  24. echo Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();  

26:获取产品属性集

Java代码   收藏代码
  1. $sets = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())->load()->toOptionHash();  

27:设置meta信息

Java代码   收藏代码
  1. $this->loadLayout();  
  2. $this->getLayout()->getBlock('head')->setTitle('Title');  
  3. $this->getLayout()->getBlock('head')->setKeywords('Keywords');  
  4. $this->getLayout()->getBlock('head')->setDescription('Description');  
  5. $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()

Java代码   收藏代码
  1. $obj = Mage::getBlockSingleton('rewards/Checkout_Rewardspent');  

Mage::helper($name)
作用:获取帮助类对象,一般形如catalog/类名 ,返回帮助类对象,这个也可以直接用catalog,默认返货helper文件下的data类。
参数:catalog或者catalog/类名

好了,mage静态类中这几个是我经常用到的,其他的在各方面各方面可能用到,这里就不再多说了。

 

当我们在设计开发Magento 主题模板 时候,有个函数一定要知道,那就是getBaseUrl 函数,用getBaseUrl 函数我们可以在.phtml里调用JS、image、File.

1getBaseUrl 基本参数调用路径

Java代码   收藏代码
  1. // http://magentonotes.com/  
  2. echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);  
  3.    
  4. // http://magentonotes.com/js/  
  5. echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);  
  6.    
  7. //http://magentonotes.com/index.php/  
  8. echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);  
  9.    
  10. //D:\wamp\www\magento\media  
  11. echo Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA);  
  12.    
  13. //http://magentonotes.com/skin/  
  14. echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);  

按照上面这个类,我们可以使用简化代码来实现路径 的调用

Java代码   收藏代码
  1. echo Mage::getBaseUrl('skin');  

 2Mage_Core_Helper_Url类调用路径

Mage_Core_Helper_Url类在 ./app/code/core/Mage/Core/Helper/Url.php文件里

Java代码   收藏代码
  1. //获取首页  
  2. echo Mage::helper('core/url')->getHomeUrl();  
  3. str_replace(Mage::getBaseUrl(),'',Mage::helper('core/url')->getCurrentUrl());  

 还有种显示图片的方法:

Java代码   收藏代码
  1. <?php echo $this->getSkinUrl('images/ddbtn.gif');?>  
  2. $this->getJsUrl('varien/accordion.js')  
  3. <?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

相关文章
|
开发者
Google浏览器中扩展插件方法
Google浏览器中扩展插件方法
299 0
Google浏览器中扩展插件方法
|
资源调度
插件类……
插件类……
|
移动开发 JavaScript 前端开发
100多个经典常用的PHP功能插件大全实例演示和下载
推荐特效 PHP功能插件  更多 > 09-07 PHP合成多图片 08-28 百度地图根据经纬度获取国家、州市等地址相关信息 08-06 PHP读取身份证姓名和身份证号码AP...
3330 0
thinkphp5常用模板标签使用方法
thinkphp5常用模板标签使用方法
240 0
|
Android开发
用Links方式安装Eclipse插件真方便
使用Eclipse一年多了,一直都是把所有插件直接安装在plugins和features目录下,虽然目录变得比较乱但也不怎么影响使用。最近因为工作需要,经常更换Eclipse和一些插件的版本,我发现每新装一个Eclipse就要花不少时间来装那几个常用插件,印象里有一种方法可以让插件以链接的方式存在,就在网上查了一下,请看这篇文章,讲得很明白。
1339 0