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下面的命名标签必须小写,如:

<global>
<!-- st 重写Block配置 -->
<blocks>
    <catalog>
            <rewrite>
                <!-- 标签符号大小写敏感,category_view必须小写  -->
                <category_view>Yebihai_CategoryList_Block_Category_View</category_view>
            </rewrite>
    </catalog>
</blocks>
<!-- end 重写Block配置 -->
       <blocks>
               <!-- categorylist只能用小写 -->
                <categorylist>
                     <class>Yebihai_CategoryList_Block</class>
                </categorylist>
       </blocks>  
</global>  

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('<br/><strong>订单备注:</strong> ' .$_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("<b>yebihai</b><span>
加油</span><div
style='display:block;font-size:18px;'>go</div>");
方法实际位置:Mage_Core_Helper_Abstract这个类里面。
ps:关于一些常用的操作方法都封装在core这个模块,大家有需要可以分析一下源码。

10.Magento动态创建block并且引用action?
下面是我一个模块的布局(Layout)配置文件,我现在需要通过Ajax动态的调用checkoutcart,直接调用肯定是不行的,改如何解决乃?

<block type="checkout/cart" name="checkout.cart" as="checkoutcart" template="quickbuy/cart/cart.phtml">
           <action
method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>quickbuy/cart/item/item_view.phtml</template></action>
           
</block>
第一步:通过ajax调用一个自定义控制器,如:

jQuery.post('<?php echo $this->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这个就是你操作的实体节点名称,我的实体配置如下:

<!-- st 数据库资源模型配置 -->
  <excelmanage_resource_mysql4>
     <class>Yebihai_ExcelManage_Model_Resource_Mysql4</class>      
<entities>    
  <excelkucunjiage>
      <table>excelkucunjiage</table>
  </excelkucunjiage>
</entities>
  </excelmanage_resource_mysql4>
<!-- end 数据库资源模型配置 -->

“/”后面的参数就是来源于表前面的实体名称。

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(); //获取返回的指定字段值

magento 常用的函数的更多相关文章

  1. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  2. php常用字符串函数小结

    php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...

  3. php常用数组函数回顾一

    数组对于程序开发来说是一个必不可少的工具,我根据网上的常用数组函数,结合个人的使用情况,进行数组系列的总结复习.里面当然不只是数组的基本用法,还有相似函数的不同用法的简单实例,力求用最简单的实例,记住 ...

  4. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  5. WordPress主题模板层次和常用模板函数

    首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...

  6. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  7. MySQL之MySQL常用的函数方法

    MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...

  8. Delphi常用系统函数总结

    Delphi常用系统函数总结 字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S : ...

  9. iOS开发数据库篇—SQLite常用的函数

    iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename,   // 数据库的文件路径 sqlite3 * ...

随机推荐

  1. NOI2014 随机数生成器

    随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...

  2. NSString 转换 float 的精度问题, 换double类型可以解决

    @"0.01" 转换成float时, 经常会变成  0.009999799 这种形式, 因为float类型无法精准保存, 系统会选一个接近的值来代替. 而double类型则可以有更 ...

  3. 多组 RadioButtonList 获取值

    <div class="row">    <table>        <thead><tr><th>操作</th ...

  4. C# Dynamic特性

    C# 4.0 dynamic:声明动态对象 dynamic关键字用于声明一个动态对象,然后通过该动态对象去调用方法或读写属性.这是C#4.0 添加的特性.官方解释:dynamic类型是帮助我们绕过编译 ...

  5. YUV转灰度

    转载自:http://blog.csdn.net/sxjk1987/article/details/7470545 标准的V4L2 API http://v4l.videotechnology.com ...

  6. c++学习_2

    这里承接上一篇文章,继续记录关于继承的那些事儿... NVI(non-Virtual Interface)和strategy模式 NVI模式和strategy模式是两种不同的方法,可以用来替代virt ...

  7. 问题记录:spark读取hdfs文件出错

    错误信息: scala> val file = sc.textFile("hdfs://kit-b5:9000/input/README.txt") 13/10/29 16: ...

  8. HDOJ-ACM1014(JAVA)

    这道题题意: 求最大公约数,最大公约数是1,则GOOD,否则BAD 注意: 输出时,如果是System.out.printf("%10d%10d    Good Choice\n\n&quo ...

  9. J2EE开发常用开源框架技术(转)

    主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层:1)Hiber ...

  10. Java读取文件夹大小的6种方法及代码

    (一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { publ ...