您好,欢迎访问一九零五行业门户网

magento 常用的函数,magento常用函数_PHP教程

magento 常用的函数,magento常用函数1.magento eav_attribute表中source如何指定自定义数据来源
  如果你引用的类名为yebihai_usermanage_model_entity_school你必须完整的给出地址,不能usermanage/entity_school,这样默认是在mage下面去找的。
  如:
$setup->addattribute('customer', 'school', array('type' => 'int','input' => 'select','label' => 'school','global' => 1,'visible' => 1,'required' => 0,'user_defined' => 1,'default' => '0','visible_on_front' => 1,'source'=> 'yebihai_usermanage_model_entity_school', //数据来源,text留空即可));
2.magento getprice()的结果小数点位数的处理
echo mage::helper('core')->currency($_product->getprice()); 
输出格式:888.673 => 888.67
3.magento config.xml中global节点中的block重写与blocks下面的命名标签必须小写,如:
yebihai_categorylist_block_category_view                                                                           yebihai_categorylist_block                           
4.magento获取列表当前排序方式asc or desc?
获取当前排序:$this->getavailableorders()
获取当前分页:$this->getcurrentpage()
列表页的各种内容获取都在:mage_catalog_block_product_list_toolbar这个类里面,有需要直接去这里面找。
5.magento collection添加排序?
$subcategories = mage::getmodel('catalog/category')->getcollection();$subcategories->setorder('position', 'asc');
6.magento collection where里面的或条件如何实现?
$result = $selfread->select()->from( $table, array('id')) ->where( 'reid = '.$reid,'topid ='.$reid);//reid=$reid 或 topid=$reid
7.magento操作某条数据下面的多个字段,使用场景如下:
本人在做订单备注的时候在监听类里面通过magento系统的addstatushistorycomment方法把订单内容能成功写入sales_flat_order_status_history表,但是我的需求是还要修改is_visible_on_front此字段的值,让内容在前台可见。头痛的问题来了,想了各种方法最后按下面的方式解决了。
监听类全部源码:
class yebihai_customerordercomments_model_observer  {public function setcustomerordercomments(varien_event_observer $observer){$_order = $observer->getevent()->getorder();$_request = mage::app()->getrequest();$_comments = strip_tags($_request->getparam('customerordercomments'));if(!empty($_comments)){$_order->setcustomernote('
订单备注: ' .$_comments);$_order->addstatushistorycomment('订单备注: ' .$_comments)->setisvisibleonfront(1);}return $this;}}8.magento个人中心左侧菜单控制
关于个人中心的主要功能都是在customer这个模块进行,需要修改相应的功能,直接去你的模板customer文件夹去修改。
左侧菜单模板路径:customer/account/navigation.phtml
9.magento把html转换为转义字符,用什么方法?
core助手里面有一个escapehtml方法,使用如下:
mage::helper('core')->escapehtml(yebihai加油
go
);
方法实际位置:mage_core_helper_abstract这个类里面。
ps:关于一些常用的操作方法都封装在core这个模块,大家有需要可以分析一下源码。
10.magento动态创建block并且引用action?
下面是我一个模块的布局(layout)配置文件,我现在需要通过ajax动态的调用checkoutcart,直接调用肯定是不行的,改如何解决乃?           simplecheckout/cart_item_rendererquickbuy/cart/item/item_view.phtml            
第一步:通过ajax调用一个自定义控制器,如:
jquery.post('geturl('gouwuche/cart/updatequickshoppingcar') ?>', function(data){jquery('#shopping-cart-table thead').after(data);});第二步:在控制器的方法中动态创建block,如:public function updatequickshoppingcaraction(){$block = $this->getlayout()->createblock('checkoutrewrite/quickcart')->settemplate('quickbuy/cart/cart.phtml');echo $block->tohtml();}
第三步:新建一个block文件(quickcart),在这文件中的construct方法中初始化配置文件中的action内容,如:
public function __construct(){parent::__construct();$this->additemrender('simple', 'checkout/cart_item_renderer', 'quickbuy/cart/item/item_view.phtml');}ps:在进行第二步的时候,cart.phtml模板已加载完成,第三步只是为了加载cart block下面的action。
11. magento gettable方法参数注意那些事项?
实例,查询数据库指定表和条件的方法如下:
public function getexcelkucunjiage($id,$status){$selfread = $this->_getconnection('excelmanage_read');$table = $this->gettable('excelmanage/excelkucunjiage');$result = $selfread->select()->from( $table )->where( 'excel_id=?', $id)->where( 'is_active=?', $status);return $selfread->fetchrow($result);}其中gettable方法的参数设置需要注意如下,excelmanage就是你的模块名称,excelkucunjiage这个就是你操作的实体节点名称,我的实体配置如下:
       yebihai_excelmanage_model_resource_mysql4                  excelkucunjiage
“/”后面的参数就是来源于表前面的实体名称。
12.如何更新数据表指定id信息?    
   $excelmodel = mage::getmodel('excelmanage/excelkucunjiage')->load(1);
   $excelmodel->setexceladddate(mage::getmodel('core/date')->timestamp(time()));
   $excelmodel->setisactive(0);
   $excelmodel->save();
上面的代码就是修改id为1的数据表信息。
扩展:magento如何添加修改指定表信息?
13.如何更改产品列表默认排序字段?
设置路径在:系统-->目录-->高级产品管理-->默认列表状态
14.获取一个数据集的条数?
获取_productcollection数据集条数,案例如下:
$this->setstoreid($storeid);
$this->_productcollection = mage::getresourcemodel('catalog/product_collection');   //获取数据集
$this->_productcollection = $this->_productcollection->addattributetoselect('*')
->addattributetoselect('manufacturer')  //添加查询属性
->setstoreid($storeid)  //设置商店
->addattributetofilter('cuxiaobiaoqian',array('eq'=>39))   //属性过滤指定
->addstorefilter($storeid)  //添加商店过滤条件
->setpagesize(6);   //获取条数
15. 通过select()方法查询指定数据表,如何控制读取条数?
代码应用背景如下:
$selfread = $this->_getconnection('yafo_bbs_setup'); //数据库连接对象
$table = $this->zixuntableprefix.forum_post; //待查询表
$result = $selfread->select()->from( array('a'=>$table), array('tid','subject')) //指定表和要查询的字段
->limit($size) //读取指定条数
->order(a.dateline desc) //指定排序条件
->where( $selfwhere ); //添加筛选条件
return $selfread->fetchall($result); //返回查询结果
16.修改指定产品价格和分组价格(代码操作)?
$selfprc = mage::getmodel('catalog/product')->load(614);$selfdata = $selfprc->getdata();$selfdata['price'] = 25;$selfdata['group_price'] = array(0 => array(                                                       website_id => 0,                           all_groups => 0,                           cust_group => 0,                           price => 97.0000,                           website_price => 97.0000                       ),                    1=> array                       (                           website_id => 0,                           all_groups => 0,                           cust_group => 1,                           price => 27.0000,                           website_price => 27.0000                       ),                    2=> array                       (                           website_id => 0,                           all_groups => 0,                           cust_group => 2,                           price => 17.0000,                           website_price => 17.0000                       ),                    3=> array                       (                          website_id => 0,                           all_groups => 0,                           cust_group => 3,                           price => 67.0000,                           website_price => 67.0000                       ),                    4=> array                       (                           website_id => 0,                           all_groups => 0,                           cust_group => 4,                           price => 66.0000,                           website_price => 66.0000                       ));$selfprc->setdata($selfdata);$selfprc->save();
17.修改指定产品库存(代码操作)?
$selfprc = mage::getmodel('catalog/product')->load(614);$aa = mage::getmodel(cataloginventory/stock_item)->loadbyproduct($selfprc);$selfaa = $aa->getdata();$selfaa['qty'] = 23;$aa->setdata($selfaa);$aa->save();
18.如何输出sql语句
$result = $selfread->select()->from(array('ft'=>$flattable),array())
->join(array('pc'=>$prccategory),'ft.entity_id=pc.entity_id',array('pc.value'))->where( 'ft.attribute_set_id=?', $attsetid)->where( 'pc.attribute_id=?', $attid)->group(pc.value);// echo $result; exit;//输出sql语句
19.后台表单配置,如何在代码里面添加备注?
$fieldset->addfield('dict_grade', 'select', array('name'  => 'dict_grade','label' => mage::helper('catalogsearchrewrite')->__('advanced search ciku manage grade'),'title' => mage::helper('catalogsearchrewrite')->__('advanced search ciku manage grade'),'type'  => 'options','options' => mage::getsingleton('catalogsearchrewrite/cikumanage')->getcikugradeoptionarray(),'after_element_html' => mage::helper('catalogsearchrewrite')->__('keywords grade description.'),  //after_element_html此属性就是用来添加备注'required' => true,));
20.实例化model,通过load方法如何获取指定字段指定内容的值?
$dictmodel=mage::getmodel('catalogsearchrewrite/cikumanage')->load($dictname,'dict_name');  //参数1:指定值,参数2:指定字段
$dictmodel->getdictname(); //获取返回的指定字段值
http://www.bkjia.com/phpjc/1135808.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1135808.htmltecharticlemagento 常用的函数,magento常用函数 1.magento eav_attribute表中source如何指定自定义数据来源 如果你引用的类名为yebihai_usermanage_model_entity_school你...
其它类似信息

推荐信息