概念:

iwebshop定义:

iWebShop基于iweb SI框架开发,在获得iweb SI技术平台的库支持的条件下,iWebShop可以轻松满足用户量级百万至千万级的大型电子商务网站的性能要求。

特性:

1、创新技术构架:可连接iWebSI支持库,轻松实现千万会员同时在线;
2、领先模板引擎:自主研发编译型模板引擎,购物过程、订单处理更顺畅;
3、出色商品管理:强大的商品分类、展示、促销管理功能,满足更多商业需求;
4、内置分析报表:流量分析、订单统计等多种报表,清晰掌握运营真实情况;
5、便捷一键模式:软件升级,轻点鼠标,一步到位;
6、完善后台权限:灵活的权限分配机制,方便店员、店长、经理等不同人员协作;

技术优势:

1、iWebSI平台支持
iWebSI的web层、db层负载均衡,基于内存的分布式缓存系统、分布式文件系统、分布式数据存储系统可以支持站点拥有服务于百万甚至千万级庞大用户群的能力
2、编译型模板引擎
这是一款由Jooyea技术团队自主研发的编译型引擎,可以以很少的系统资源来获得最大的运行效率,与传统解析型模板相比速度提高2-3倍
3、缓存技术
iWebShop领先的高速文本缓存极大减轻数据库压力,此外当缓存文件达到一定数量时,iwebcache缓存存储引擎会还将文件进行有序目录散列,提高缓存读取效率
4、良好的兼容扩展
结合iWebExchanger,iWebShop不仅可以与iWebAX家族产品组合建站,也可以与其他建站程序方便整合。
5、方便二次开发
iWebShop采用php5的mvc程序架构,代码结构清晰,注释明确,易于理解,并提供完整的开发文档,便于二次开发和学习交流
6、灵活插件机制
iWebShop提供非常灵活易用的插件机制,并支持热插拔,用户不仅能从第三方获取资源,利用开放的API接口还可自行开发插件
7、语言包机制
iWebShop将页面文本语言与系统分离,只需上传语言包即可轻松实现不同语种的“翻译”,结构式自动拼接设计也丝毫不会影响系统效率
8、一键式操作
通过网站后台,iWebShop可以进行一键升级、一键换模板皮肤、一键安装插件等便捷功能。
9、防恶意软件
iWebShop使用开放的底层安全规范架构,由于底层架构的安全规范设计,能够有效地保护您的网站和网络用户免受恶意软件的侵害,确保网络用户数据免遭破坏
10、附加组件的安全机制
iWebShop事先设定了应用组件、皮肤的编写安全规范,在该安全规范的约束下,应用组件和皮肤您可以放心使用,不会对网站后台数据以及前台社会化网络用户造成任何损失

具体操作:

主要路径:lib/web/iweb.php 中可以查看一些系统内核所有类文件的详细路径


开启错误调试:config/config.php 中'debug'==true ,使用完成之后最好关闭(首页会报错)

建立 后台控制器:
建立控制器
init 方法保留 是初始化的意思   可以取出user信息 {$this->user
['username']};
建立方法  //类名和方法名不能一致
首先在classes/themeroute.php 中添加控制器方法

控制器中:

IReq::get(email)   get接值

IFilter::act()过滤前台特殊字符 为了防止sql注入

如果对文件名进行了修改eg:iwebshop4.1修改为iwebshop 时 :

为了避免缓存文件导致js文件不能使用 我们将runtime文件下的所有文件删除

前台应用jquery{js:jquery}  同类下还有很多   {js:cookie}  {js:form}

1、iwebshop模板开发

iWebShop 前端文件统一放置在程序根目录下的views 目录下,层次模型图:

根据上述两张树状图我们可以很清晰了解整个shop的前端文件存放位置,shop系统中默认的主题和皮肤名称都是default。主题的组成:布局模板,普通模板,主题相关的javascript,皮肤。皮肤的组成:CSS,图片,皮肤相关的javascript。如果要新建主题或皮肤只需要在指定的目录位置中新建文件夹即可(文件夹名称就是方案的名称),系统允许存放多个主题,且每个主题又可以拥有多套皮肤,在网站运行时可以从中选择一种主题和一种皮肤进行使用。

由于网站的控制器功能模块没有区分网站的前台和后台,所以主题和皮肤必须同时对应前后台,这也就是意味着用户可以自由修改网站后台的样式。新shop的模板分为两种类型:布局模板(layouts)和普通模板。可以简单的理解为共性化的公共模板和个性化的局部模板,对于一个网站来说,很多页面的head(网站头部,包括导航,广告,引入的js,css等)和foot(网站底部,包括备案信息)往往都是相同的,不同的是页面的主体部分,针对这种情况,shop的页面在绝大部分情况下采取布局模板和普通模板拼接组合而成(有些特殊情况可以没有布局)。布局模板的创建有利于模板代码共用,更便于模板的升级与维护,所以合理的使用布局是很重要的。

iwebshop首页位置   /views/default/layouts/site.html

2.显示sql语句

query 方法

3.生成日志

1、sql语句生成

找到 query 方法写入:

2、数组日志生成

eg:

找到classes/log.php,自定义一个日志类型

找到controllers/site.php

在商品详情方法中加入代码,运行前台商品详情页面即可生成日志

3.数据在前台页面的展示

控制器中

传值方式1、$this->setRenderData($goods_info);  //传值 必须是一个数组     前台显示 用其下标当变量就可以  eg:价格:{$price}  ;

传值方式2、$this->test='小明'      //前台显示 为    姓名:{$this->test}

$this->redirect('products');   //跳转前台页面      views/default      后台页面   views/sysdefault

foreach在前台使用:

{foreach:items=$breadGuide}

    <a href="{url:/site/pro_list/cat/$item[id]}">{$item['name']}</a>

{/foreach}

if的使用:

{if:$promo == 'time'}

     内容

{else:}

     内容

{/if}


前台接值

{set:$type = IReq::get('type') == 'checkbox' ? 'checkbox' : 'radio'}
{set:$cate_id = IReq::get('cate_id') ? base64_decode(IReq::get('cate_id')):0}

前台页面js传值

1、如在a.html页js 中设置'li'

art.dialog.data("li",'xiaohj');
2、在b.html页面js中取出li
var li=art.dialog.data('li');
console.log(li);


该功能的实现是运用了art.dialog插件这里只是其数据读写的功能而已,它还有很多功能

{query}{/query}标签在前台运用

eg:

{set:$user_id = $this->user['user_id']}
<p class="text">您当前的邀请人数为:{query:name=user where=invite eq $user_id}{/query}<b class="brown">{set:$count=count($items)}{$count}</b>人</p>

//分页

<thead><tr><th>被邀请人用户名</th><th>注册时间</th></tr></thead>
<tbody>
{set:$page= (isset($_GET['page'])&&(intval($_GET['page'])>0))?intval($_GET['page']):1;}
{query:
name=user as u
join=left join member as m on m.user_id eq u.id
where=u.invite eq $user_id fields=u.username,m.time
page=$page
pagesize=1
}
<tr><td>{$item['username']}</td><td>{$item['time']}</td>
</tr>
{/query}
<tr><td colspan='3'>{$query->getPageBar()}</td></tr>
</tbody>

4.前台url示例

引用当前主题

eg:

<script type="text/javascript" src="{theme:javascript/awardRotate.js}"></script>
位置文件:default/javascript/awardRotat.js

引用当前皮肤下文件

eg:

<link rel="stylesheet" href="{skin:css/demo.css}" type="text/css" />

位置文件:views/skin/default/css/demo.css


5.控制器的建立

****注意:类名不能与方法名一致******

在controllers/建立 eg:test.php

必须使用init方法   初始化方法  其方法中设置了user信息     前台可以直接取 {$this->user['username']}

显示页面和ci用法基本一致 前台在default/下建立 views/test/index.html

//此时该控制器下的方法还不能显示页面 必须在classes/themeroute.php 中添加控制器方法中添加该控制器名:

*****************数据写读**************************

sql语句方法

1、IModel 简单的写读  //位置  lib/web/model/model_class.php

2、IQuery  比较复杂的sql语句 比如:两表联查 having  、 group by       //位置   lib/core/query_class.php

增、删、改、查

IMdel 操作

1、查询:

1.单挑数据查询

2.查询多条数据

2、添加数据

返回是自增id

3、修改数据

4、删除数据

IQuery 操作

两表联查:

配置文件新建:

打开config/文件 eg:建立cate_config.php

再打开config/config.php,添上以下代码

'configExt'=> array('site_config'=>'config/site_config.php',
       'cate_config'=>'config/cate_config.php'
   ),

iwebshop配置文件的写读

写eg:

$arr=array();
array_push($arr,$name);
$newtypename=serialize($arr);
$inputArray=(array('parentType'=>$newtypename));
$siteObj = new Config('site_config');
$siteObj->write($inputArray);

iwebshop中会默认给该字符串添加‘/’ 过滤  此时我们要在

classes/config.php的$safeKey中添加一个键值,使其不添加转义符。

eg:

//不需要过滤的键名
private static $safeKey = array('index_slide','service_online','parentType');

读eg:

$siteConfigObj = new Config("site_config");
$siteConfigObj->sms_platform;
$this->AccountSid =$siteConfigObj->sms_accountSid;(配置文件中的键值)
$this->AccountToken =$siteConfigObj->sms_accountToken;
$this->AppId =$siteConfigObj->sms_appId;

邮箱使用:

163邮箱:

qq邮箱:


前台脚本ajax应用:

{js:jquery}

<script type='text/javascript'>$(function(){$("#sub").click(function(){var ajaxUrl = '{url:/ucenter/invitePro}';var email=$("#mail").val();$.getJSON(ajaxUrl,{'email':email},function(msg){//console.log(msg);
                alert(msg.message);})})})
</script>iwebshop的后台菜单为固定的三级菜单,定义菜单的类在/classes/menu.php文件中,由$menu变量定义

如下图所示:

[php] view plaincopy
  1. public static $menu = array(
  2. //交流QQ:82530662
  3. '商品'=>array(
  4. '商品管理'=>array(
  5. '/goods/goods_list' => '商品列表',
  6. '/goods/goods_edit' => '商品添加'
  7. ),
  8. '商品分类'=>array(
  9. '/goods/category_list'  =>   '分类列表',
  10. '/goods/category_edit'  =>   '添加分类'
  11. ),
  12. '品牌'=>array(
  13. '/brand/category_list'  =>   '品牌分类',
  14. '/brand/brand_list'     =>   '品牌列表'
  15. ),
  16. '模型'=>array(
  17. '/goods/model_list'=>'模型列表',
  18. '/goods/spec_list'=>'规格列表',
  19. '/goods/spec_photo'=>'规格图库'
  20. ),
  21. '搜索'=>array(
  22. '/tools/keyword_list' => '关键词列表',
  23. '/tools/search_list' => '搜索统计'
  24. )
  25. ),
  26. )

以商品列表为例说明路径的意义: goods是控制器(即 url中的 controller参数), goods_list是动作(即 url中的 action参数)调用菜单初始化函数( init)的入口点在: /views/layouts/admin.html模板中,且看下图:

Iwebshop 详细介绍相关推荐

  1. HTML页面加载和解析流程详细介绍

    浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...

  2. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  3. php比较运算符案列,PHP实例:PHP比较运算符的详细介绍

    <PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...

  4. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  5. linux路由介绍,Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...

  6. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

  7. 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...

    渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...

  8. C++11 unordered_map详细介绍

    整理的算法模板合集: ACM模板 目录: 1.介绍 1.1 特性 2. 模版 2.1 迭代器 3. 功能函数 3.1 构造函数 3.2 容量操作 3.2.1 size 3.2.2 empty 3.3 ...

  9. autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)

    这片文章中我们详细讲解下每个模块的功能,上图是vector的autosar方案,每个模块的详细介绍后续会有单独文章进行讲解,请关注.以下是各个模块的简介 1.VHSM hardware Securit ...

最新文章

  1. 5G NGC — UDR 统一数据存储库,UDSF 非结构化数据存储功能
  2. python股票涨势_stock
  3. C++学习之路: 单例模板
  4. SocketIO---bio2---带线程池处理任务
  5. owa_util.get_cgi_env 函数参数说明.
  6. 代码审查:程序员内炼之道
  7. 计算机辅助设计与图像学学报 改后发表,几种常见图像二值化方法的结果对比与分析...
  8. c语言递归解决汉诺塔问题
  9. python并发编程方法_一文了解Python并发编程的工程实现方法
  10. 【FPGA】RGMII接口
  11. 做网站搭建服务器,个人服务器搭建做网站
  12. SQL server中模式的定义和删除
  13. 视频动作识别调研(Action Recognition)
  14. (原創) 如何設計除頻器? (SOC) (Verilog) (MegaCore)
  15. 【EXCEL】解决因为删除、移动、隐藏行后序号不连续的问题
  16. 四、Docker安装 Portainer 可视化工具
  17. Unity3D的Json篇:LitJson.dll插件
  18. Pytorch高级训练框架Ignite详细介绍与常用模版
  19. 正确解决:坑爹的0xc000007b——应用程序无法正常启动
  20. 16进制unicode转字符串

热门文章

  1. 艾永亮:产品决策是不是应该老板来做?
  2. 巨量千川(放量投放)也可以玩出 ROI10 ?
  3. 听我说北京之开篇寄语
  4. Python学习之封装、继承、多态详解
  5. 什么是 LTV / CAC?
  6. MySQL 之 多表查询
  7. CSharp(C#)语言_第五章(类和继承)
  8. 创建软链接(symbolic link)
  9. C51单片机 波特率选择 和 串口的工作方式
  10. 雷达侦察matlab,对MIMO雷达信号侦察和识别