当前位置:  编程技术>php
本页文章导读:
    ▪V9父栏目调用子栏目的办法 - gzm2012      我们在做模板时有时候需要用到调用栏目的子栏目,下面这个文章将教大家实现目的,挺简单的。代码如下:在二级栏目列表页调用:<!--* 获取子栏目* @param $parentid 父级id* @param $type 栏目类.........
    ▪ecshop init.php文件分析 - huidaoli      1.  ecshop init.php文件分析 2.  <?php  3.   4.  /**  5.  * ECSHOP 前台公用文件  6.  * ============================================================================  7.  * 版权所.........
    ▪ECSHOP - 二次开发指南---购物车篇 - huidaoli      第一个问题 保存用户购物车数据ECSHOP的购物车数据,是以Session 方式存储在数据库里,并在Session结束后 ,Distroy 掉,解决方法是:1.购物车内容读取方式. 更改登陆后购物车.........

[1]V9父栏目调用子栏目的办法 - gzm2012
    来源:    发布时间: 2013-11-07

我们在做模板时有时候需要用到调用栏目的子栏目,下面这个文章将教大家实现目的,挺简单的。代码如下:

在二级栏目列表页调用:
<!--
* 获取子栏目
* @param $parentid 父级id
* @param $type 栏目类型
* @param $self 是否包含本身 0为不包含
* @param $siteid 站点id
-->
    <div>
    {php $j=1;}
    {loop subcat($parentid) $v}
    {php if($v['type']!=0) continue;}
        <a href="/blog_article/{$v[url]}/index.html">[{$v[catname]}]</a>
    {/loop}
    </div>

在一级栏目列表页调用 [或1级栏目的专题页面]:

<!--
* 获取子栏目
* @param $parentid 父级id
* @param $type 栏目类型
* @param $self 是否包含本身 0为不包含
* @param $siteid 站点id
-->
    <div>
    {php $j=1;}     {loop subcat($catid) $v}
    {php if($v['type']!=0) continue;}
        <a href="/blog_article/{$v[url]}/index.html">[{$v[catname]}]</a>
    {/loop}
   </div>
 
 PS:在二级栏目列表页调用时,还可以这样调用:
            {pc:content action="/blog_article/category/index.html" catid="$parentid" num="25" siteid="$siteid" order="listorder ASC"}
            {loop $data $r}
            <a href="/blog_article/{$r[url]}/index.html">{$r[catname]}</a><span>|</span>
            {/loop}
            {/pc}

参数如下表:

 

字段类型默认值 说明 catidsmallint 无 栏目IDsiteidtinyint(3)  0 站点IDmodulevarchar(15) 无 模块IDtypetinyint(1)  1 栏目类型IDmodelidtinyint(5)  5 模型IDparentidsmallint(5)  5 上级父栏目arrparentidvarchar(255) 无 所有父栏目childtinyint(1)  0 子栏目arrchildidmediumtext 无 所有子栏目catnamevarchar(30) 无 栏目名称imagevarchar(100) 无 栏目图片descriptionmediumtext 无 栏目描述parentdirvarchar(100) 无 父栏目目录catdirvarchar(30) 无 栏目目录urlvarchar(100) 无 栏目链接itemsmediumint(8)  0 栏目内容数hitsint(10)  0 点击数settingmediumtext 无 栏目设置listordersmallint(5)  0 排序ismenutinyint(1)  0 是否显示sethtmltinyint(1)  0 是否生成到根目录lettervarchar(30) 无 栏目拼音

本文链接:http://www.cnblogs.com/gzmg/p/3204347.html,转载请注明。


    
[2]ecshop init.php文件分析 - huidaoli
    来源:    发布时间: 2013-11-07

1.  ecshop init.php文件分析
2.  <?php 
3.  
4.  /** 
5.  * ECSHOP 前台公用文件 
6.  *
===========================================================================

7.  * 版权所有  2005-2008 上海商派网络科技有限公司,并保留所有权利。 
8.  * 网站地址: [url]http://www.ecshop.com[/url]; 
9.  * ---------------------------------------------------------------------------- 
10.  * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 
11.  * 使用;不允许对程序代码以任何形式任何目的的再发布。 
12.  *
===========================================================================

13.  * $Author: likai $ 
14.  * $Id: init.php 16132 2009-05-31 08:59:15Z likai $ 
15.  */ 
16.  
17.  // 禁止跨域引入文件. 
18.  if (!defined('IN_ECS')){ 
19.  die('Hacking attempt'); //  黑客企图 
20.  } 
21.  
22.  // 无用代码,后期功能复盖 
23.  error_reporting(E_ALL); 
24.  
25.  // 防止菜鸟将此变量从GET POST 或者新常量定义. 
26.  if (__FILE__ == ''){ 
27.  die('Fatal error code: 0'); 
28.  } 
29.  
30.  /* 取得当前ecshop所在的根目录  比discuz的复杂  */ 
31.  define('ROOT_PATH', str_replace('includes/init.php', '', str_replace('\', '/', __FILE__))); 
32.  
33.  // 判断data目录中的install文件不存在  && include中的安装锁文件不存在 并且没有定义
NO_CHECK_INSTALL常量,  就跳转到安装页. 
34.  if (!file_exists(ROOT_PATH . 'data/install.lock') && !file_exists(ROOT_PATH . 'includes/install.lock') 
35.  && !defined('NO_CHECK_INSTALL')) 
36.  { 
37.  header("Location: ./install/index.phpn"); 
38.  exit; 
39.  } 
40.  
41.  /* 初始化设置  */ 
42.  @ini_set('memory_limit', '64M'); 
43.  @ini_set('session.cache_expire', 180); 
44.  @ini_set('session.use_trans_sid', 0); 
45.  @ini_set('session.use_cookies', 1); 
46.  @ini_set('session.auto_start', 0); 
47.  @ini_set('display_errors', 1); //  开启报错. 
48.  
49.  //设置通用的引入目录. wind 是  .;  新的目录  linux是  .:  就是以什么为分隔. 
50.  if (DIRECTORY_SEPARATOR == '\'){ 
51.  @ini_set('include_path', '.;' . ROOT_PATH); 
52.  } 
53.  else 
54.  { 
55.  @ini_set('include_path', '.:' . ROOT_PATH); 
56.  } 
57.  // 引入配置文件.简单的配置. 
58.  require(ROOT_PATH . 'data/config.php'); 
59.  
60.  // 养成良好的习惯,  凡是常量定义,都判断一下是否已经定义过. 
61.  if (defined('DEBUG_MODE') == false){ 
62.  define('DEBUG_MODE', 0); //  定义为0 
63.  } 
64.  
65.  //版本判断,  如果版本低于5.1 并表$timezone不为空. $timezone来自  config.php文件 
66.  if (PHP_VERSION >= '5.1' && !empty($timezone)) 
67.  { 
68.  date_default_timezone_set($timezone); //  设置通用时区. 
69.  } 
70.  
71.  //获得当前文件,不包括GET; 
72.  $php_self = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] :
$_SERVER['SCRIPT_NAME']; 
73.  
74.  // 假如用户访问的是目录,  就自动添加index.php默认页. 
75.  if ('/' == substr($php_self, -1)){ 
76.  $php_self .= 'index.php'; 
77.  } 
78.  // 然后将当前页路径定义为常量,PHP_SELF;  没有域名导向的. 
79.  define('PHP_SELF', $php_self); 
80.  
81.  // 开始引入文件了.日后再一个一个分析. 
82.  require(ROOT_PATH . 'includes/inc_constant.php'); 
83.  require(ROOT_PATH . 'includes/cls_ecshop.php'); 
84.  require(ROOT_PATH . 'includes/cls_error.php'); 
85.  require(ROOT_PATH . 'includes/lib_time.php'); 
86.  require(ROOT_PATH . 'includes/lib_base.php'); 
87.  require(ROOT_PATH . 'includes/lib_common.php'); 
88.  require(ROOT_PATH . 'includes/lib_main.php'); 
89.  require(ROOT_PATH . 'includes/lib_insert.php'); 
90.  require(ROOT_PATH . 'includes/lib_goods.php'); 
91.  require(ROOT_PATH . 'includes/lib_article.php'); 
92.  
93.  /* 对用户传入的变量进行转义操作。*/ //通用转义方法.  没discuz优化. 
94.  if (!get_magic_quotes_gpc()) 
95.  { 
96.  if (!empty($_GET)) 
97.  { 
98.  $_GET = addslashes_deep($_GET); 
99.  } 
100.  if (!empty($_POST)) 
101.  { 
102.  $_POST = addslashes_deep($_POST); 
103.  } 
104.  
105.  $_COOKIE = addslashes_deep($_COOKIE); 
106.  $_REQUEST = addslashes_deep($_REQUEST); 
107.  } 
108.  
109.  /* 创建  ECSHOP 对象  */ 
110.  $ecs = new ECS($db_name, $prefix); 
111.  
112.  //定义数据目录及图片目录. 
113.  define('DATA_DIR', $ecs->data_dir()); 
114.  define('IMAGE_DIR', $ecs->image_dir()); 
115.  
116.  /* 初始化数据库类  */ 
117.  require(ROOT_PATH . 'includes/cls_mysql.php'); 
118.  $db = new cls_mysql($db_host, $db_user, $db_pass, $db_name); 
119.  // 设置不充许缓存的表,  比如用户动作,栏目. 
120.  $db->set_disable_cache_tables(array($ecs->table('sessions'), $ecs->table('sessions_data'),
$ecs->table('cart'))); 
121.  $db_host = $db_user = $db_pass = $db_name = NULL; 
122.  
123.  /* 创建错误处理对象  */ 
124.  $err = new ecs_error('message.dwt'); 
125.  
126.  /* 载入系统参数  */ 
127.  $_CFG = load_config(); 
128.  
129.  /* 载入语言文件  */ 
130.  require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php'); 
131.  if ($_CFG['shop_closed'] == 1) 
132.  { 
133.  /* 商店关闭了,输出关闭的消息  */ 
134.  header('Content-type: text/html; charset='.EC_CHARSET); 
135.  
136.  die('<div ><p>' . $_LANG['shop_closed'] .
'</p><p>' . $_CFG['close_comment'] . '</p></div>'); 
137.  } 
138.  
139.  if (is_spider()) 
140.  { 
141.  /* 如果是蜘蛛的访问,那么默认为访客方式,并且不记录到日志中  */ 
142.  if (!defined('INIT_NO_USERS')) 
143.  { 
144.  define('INIT_NO_USERS', true); 
145.  /* 整合UC后,如果是蜘蛛访问,初始化UC需要的常量  */ 
146.  if($_CFG['integrate_code'] == 'ucenter') 
147.  { 
148.  $user = & init_users(); 
149.  } 
150.  } 
151.  $_SESSION = array(); 
152.  $_SESSION['user_id'] = 0; 
153.  $_SESSION['user_name'] = ''; 
154.  $_SESSION['email'] = ''; 
155.  $_SESSION['user_rank'] = 0; 
156.  $_SESSION['discount'] = 1.00; 
157.  } 
158.  
159.  if (!defined('INIT_NO_USERS')) 
160.  { 
161.  /* 初始化session */ 
162.  include(ROOT_PATH . 'includes/cls_session.php'); 
163.  
164.  $sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data')); 
165.  
166.  define('SESS_ID', $sess->get_session_id()); 
167.  } 
168.  
169.  if (!defined('INIT_NO_SMARTY')) 
170.  { 
171.  header('Cache-control: private'); 
172.  header('Content-type: text/html; charset='.EC_CHARSET); 
173.  
174.  /* 创建  Smarty 对象。*/ 
175.  require(ROOT_PATH . 'includes/cls_template.php'); 
176.  $smarty = new cls_template; 
177.  
178.  $smarty->cache_lifetime = $_CFG['cache_time']; 
179.  $smarty->template_dir = ROOT_

    
[3]ECSHOP - 二次开发指南---购物车篇 - huidaoli
    来源:    发布时间: 2013-11-07

第一个问题 保存用户购物车数据ECSHOP的购物车数据,是以Session 方式存储在数据库里,并在Session结束后 ,Distroy 掉,解决方法是:

1.购物车内容读取方式. 更改登陆后购物车获取条件 "Session 单独方式"为 Session +用户名 ,该修改位于Lib_order 下 function get_cart_goods();

2. 购物车内容记录方式,未登陆方式依然是Session , 用户登陆后,自动UPdate Cart 一次,将同一UserID下购物车内数据不是当前Session的Update到当前Session , 并将当前Session 下UserID为0的部分(未登陆情况下,Userid是0),UpdateID到当前UserID ,该修改位于 Flow.php 下面function flow_update_cart($arr) 

3.更改退出时,自动Clear Cart的部分,将Distroy 当前Session 的内容,更改为Distroy 当前Session 下 User ID为0的部分。 该修改位于:Includes/cls_session.php ,     function destroy_session() 部分说明:这种情况下就是游客关闭浏览器后,购物车清空, 注册用户购物车永久保存, 可能会对服务器造成轻微压力,主要取决于用户的数量,如果数量较多数据服务器压力较大,可以通过程序,自动清理超过一定时间段未登陆的User Cart (或者是额外增加一个数据,来标示加入购物车的时间,根据此时间判断是否自动清理).

 

1.购物车内容读取方式. 

更改登陆后购物车获取条件 "Session 单独方式"为 Session +用户名 ,该修改位于Lib_order 下 function get_cart_goods();具体更改代码部分:

function get_cart_goods(){

/* 初始化 */

$goods_list = array();

$total = array(

       'goods_price'   => 0, // 本店售价合计(有格式)

       'market_price' => 0, // 市场售价合计(有格式)

       'saving'    => 0, // 节省金额(有格式)

       'save_rate' => 0, // 节省百分比

       'goods_amount' => 0, // 本店售价合计(无格式));

/* 循环、统计 */

$uid=$_SESSION['user_id']; 

if($uid==0){

$sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " .

         " FROM " . $GLOBALS['ecs']->table

  ('cart') . " " ." WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" .

         " ORDER BY pid, parent_id";}else{$sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " .

         " FROM " . $GLOBALS['ecs']->table('cart') . " " .

         " WHERE (user_id='".$uid."' OR session_id = '" . SESS_ID . "') AND rec_type = '" . CART_GENERAL_GOODS . "'" .&nbs

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3