ecshop 二次开发

ecshop

15-10-4 10:06:54

define('IN_ECS', true);                            //定义常量
require(dirname(__FILE__) . '/includes/init.php');         //加载核心文件



db类

---------------------------------------------------------------------------------------------

select_database  选择数据库

set_mysql_charset 设置编码

setMaxCacheTime 设置缓存最大时间 秒

getMaxCacheTime  获取缓存最大时间 秒



getAll($sql)   获取多条

getRow($sql, $limited = false)  如果是ture  追加 limit 1    返回数据库中一行数据

getOne($sql, $limited = false)   如果是ture  追加 limit 1   返回查询的第一个字段

getCol($sql)   获取该sql所有记录的第一个字段

autoExecute(表,数据,类型,条件)     类型有insert update 数据数组是键值和内容

insert_id() 最新插入id值

query($sql):执行数据库命令。


getAllCached($sql)   获取多条带缓存的数据

getOneCached()  获取有缓存的单条数据

getRowCached($sql)

getColCached($sql)

----------------------------------------

例子

 1.获取单条记录
      $GLOBALS['db']->getRow($sql);
      getRow方法用来从数据库中获取满足条件的单行记录,或者说是第一条记录。getRowCached是它的缓存版本,cache key是该方法的第二个参数,如果缓存有效,直接返回缓存结果,否则重新执行数据库查询。缓存功能依此类推。
      例如查询数据库表中的某个字段
      $sql = "SELECT level FROM " . $ecs->table('users') . " WHERE user_name = '$vipaccount' ";
      $row = $GLOBALS['db']->getRow($sql);
      $level = $row['level'];
 2.获取单一字段
      $GLOBALS['db']->getOne($sql);
      例如查询产品总数:
      echo $GLOBALS['db']->getOne(‘SELECT COUNT(*) FROM ‘ . $GLOBALS['ecs']->table(‘goods’) ;
      查询单一数据:
      $sql = "SELECT order_amount FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE order_id = '$order_id'";
      $order_amount = $GLOBALS['db']->getOne($sql);
 3.获取所有记录
      $sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('suppliers') . ' ORDER BY suppliers_name ASC';
      $GLOBALS['db']->getAll($sql);
 4.获取单行记录
       getCol方法用来从数据库中获取满足条件的某个栏位的所有值
      $sql = "SELECT pay_id FROM " . $GLOBALS['ecs']->table('payment');
      $GLOBALS['db']->getCol($sql);
      getCol()得到是一个一维数组,而  getAll()得到的经常是一个二维数组。
 5.执行sql语句
      $GLOBALS['db']->query($sql);  //执行删除(DELETE),插入(INSERT),更新(UPDATE)等操作可用此方法
 6.把数组元素插入数据库
      $parent['goods_number'] = ’1′;
      $parent['parent_id'] = 0;
      $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table(‘cart’), $parent, ‘INSERT’);//table里面是要插入的表,第二个参数是数组
 7.更新数据(数组形式)
      $user = array(“username” => “ego”);
        $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('users'), $user, 'UPDATE', "user_id = '$user_id'");    
      执行的SQL: UPDATE ecs_users SET username = ‘ego’ WHERE user_id = $user_id 。如果$user 中有两个元素,则 sql中的set 也写两个。



define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
print_r($db->getRow("SELECT *  FROM  `ecs_ad`  where ad_id=1 ")); //获取一条
print_r($db->getall("SELECT * FROM  `ecs_ad` LIMIT 0 , 30")); //获取多条
print_r($db->getcol("SELECT ad_name FROM  `ecs_ad` LIMIT 0 , 30")); //获取多条的第一馆字段
print_r($db->getone("SELECT count(*) as num FROM  `ecs_ad`"));  //获取单条的第一个字段


$smarty

----------------------------------------------------------------------------------------------------------------------------------------------

 $smarty->assign(‘action’, $action);  //传值给模板文件(*.dwt)中的’action’变量,模板文件可用{$action}来输出此值。
 $smarty->display(‘user_passport.dwt’); 使用display方法来指定当前的模板文件并输出到该文件显示到客户端


如何在ecshop后台增加左侧导航栏

---------------------------------------------------------------------------------------------

在languages\zh_cn\admin\common.php中增加
$_LANG['99_meicheng'] = ‘批量管理’;

$_LANG['01_meicheng_user'] = ‘批量添加用户’;

admin\includes\inc_menu.php中增加

$modules['99_meicheng']['01_meicheng_user'] = ‘mc_user.php’



后台的操作

-----------------------------

跳转

$link[] = array('href' => 'goods.php', 'text' => '返回');  //可以多地址
sys_msg('操作成功',0,$link);