Magento 常用方法和插件

得到路径E:\ddl\Trunk\3_Development\03_Sourcecode\test.com\www\app\design\ f rontend\default\ddl_v2\template
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 常用方法和插件_第1张图片

分类列表 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 可以根据品牌或各种属性来筛选产品
Magento 常用方法和插件_第2张图片
 购物车预览 Extension Key:magento-community/cartview
Magento 常用方法和插件_第3张图片
 

你可能感兴趣的:(agent)