在ShopEx中,增加产品的规格时,如颜色、尺寸、是否送货等配置信息,默认情况下,这些内容是需要手动计算的,若只有几个属性值还容易计算,如果每一个属性值比较多,通过手动计算将是一个灰常巨大的工作量,这里通过修改模板及控制器文件,实现了自动计算销售价的功能。 首先,先看一下修改此功能时,涉及到了哪几个文件 控制器文件:core\admin\controller\ctl.spec.php 模板文件:涉及到的比较多 core\admin\view\product\spec.html 编辑商品时规格列表显示的模板文件,通过这里实现了销售价格的计算

找到 <input type="text" size=8 name="price[]" value="<{$price}>"/> 这一行,修改为如下内容:
<{assign var='price' value=$pro.price}>
<{if $fromType == 'create'}>
<{assign var='price' value=0}>
<{foreach from=$pro.sel_spec item=sitem }>
<{assign var=price value=$price+$sitem.spec_attr_price}>
<{/foreach}>
<{/if}>
<input type="text" size=8 name="price[]" value="<{$price}>"/>

core\admin\view\product\spec_addspectab.html 这是增加规格时,标题头内容,跳转到本文件的结尾,在自己认为适当的位置,加入以下内容

<th><{t}>价格<{/t}></th>

这里,我加在了如下位置

<table class="gridlist" cellspacing="0" cellpadding="0" border="0" width="100%">
<thead>
<tr>
<th style="width:15%"><{t}>系统规格<{/t}></th>
<th><{t}>自定义规格值<{/t}></th>
<{if $spec.spec_type == 'image'}>
<th style="width:20%"><{t}>自定义规格图片<{/t}></th>
<{/if}>
<th style="width:25%"><{t}>关联商品相册图片<{/t}></th>
<th><{t}>价格<{/t}></th>
<th style="width:25%"><{t}>操作<{/t}></th>
</tr>
</thead>
<tbody class='spec-body'></tbody>
</table>

core\admin\view\product\spec_addspecvalue.html 这个是增加一个规格属性的文本框,内容为:

<td class=''>
<input type="text" name="goods[spec_desc][<{$specId}>][<{$pSpecId}>][spec_attr_price]"
class='spec-value' style="width: 80px;" value="<{$spec_attr_price|escape:'html'}>"/>
</td>

到这里,文件的修改已经完成,对于销售价格的自动添加已经实现,看看这样是不是方便了很多~ 同时,这里还需要注意的是变量间的运算,不多说,直接看看吧,不难理解:

<{assign var=price value=$price+$sitem.spec_attr_price}>

ShopEx 中规格属性增加时,自动计算其对应的销售价格,同时注意模板中的变量间的计算相关推荐

  1. 面试总结(CSS 的盒模型?、CSS 中选择器的优先级以及 CSS 权重如何计算?、CSS 中哪些属性可继承,哪些不可以?、CSS 单位中 px、em 和 rem 的区别?、rem 适配....)

    CSS 的盒模型?         盒子模型(Box Modle)可以用来对元素进行布局,包括内边距,边框,外边距,和实际 内容这几个部分                 第一种是 W3C 标准的盒子 ...

  2. java属性错误_在java中读取属性文件时发生文件未找到错误

    我在resources / common / configure /包下创建属性文件 然后我创建代码 Properties prop = new Properties(); try { //load ...

  3. junit集成Hamcrest测试集合中某个属性是否包含特定值

    junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有 <dependency> <groupId>junit< ...

  4. Tip#66:你知道吗?如何在输入属性值时自动插入双引号

    如果你愿意在HTML Editor中输入属性值时自动加入双引号. 设置选项菜单 Tools->Options. 选 Show all settings. 从左边框中选择 Text Editor ...

  5. C# 控件开发中常用属性整理

    Browsable 适用于属性和事件,指定属性或事件是否应该显示在属性浏览器中. Category 适用于属性和事件,指定类别的名称,在该类别中将对属性或事件进行分组.当使用了类别时,组件属性和事件可 ...

  6. JS原型链中的属性问题

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  7. Vue项目中background-image属性设置方法

    vue项目中background-image属性设置方法 方式一:直接访问 在vue-cli项目中的放在public目录下的资源会被直接复制,不会经过webpack的打包处理. <span cl ...

  8. oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认

    转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...

  9. eclipse中使用git提交时忽略不必要的文件

    @ eclipse中使用git提交时忽略不必要的文件 我们在eclipse中使用git提交代码时,如果没有添加任何过滤条件,那么会把所有文件都提交.但是实际上有些文件/目录并不需要提交,比如targe ...

最新文章

  1. CCS5.5 中报错 Does not match the target type,not loaded 的一种情况
  2. sshpass连接主机以及执行命令
  3. python【力扣LeetCode算法题库】21- 合并两个有序链表
  4. 约数个数定理约数和定理
  5. JSON特殊字符处理
  6. 信息学奥赛一本通(1163:阿克曼(Ackmann)函数)
  7. Spring框架声明式事务管理
  8. 用localStorage来存储数据的一些经验
  9. Linux服务器的eth,linux做服务器安装两块网卡问题????
  10. 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解
  11. Android View框架总结(四)View布局流程之Measure
  12. 关于chrome上的网银安全控件开发技术(chrome 调用本地dll)
  13. 输出100以内所有的素数
  14. JavaScript 全栈工程师培训教程 - 阮一峰
  15. Golang go mod 使用
  16. 如何解决“Cannot be opened because the developer cannot be verified”
  17. 【LaTeX在线编译器】
  18. lesson5画表情包
  19. Python实现当中秋遇上国庆
  20. 软件项目开发,交付文档(全)

热门文章

  1. diy nas配置推荐2019_在Windows Server 2019上配置NAS的方法
  2. linux 优雅重启进程,apache2 重启、停止、优雅重启、优雅停止
  3. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
  4. 容器技术之二.Docker的安装和常见问题
  5. 一对多 多对一 多对多 多条语句只出现一条的问题
  6. 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现
  7. python 字符串格式符
  8. pytorch打印模型参数_Pytorch网络压缩系列教程一:Prune你的模型
  9. Vue学习(动态组件、组件路由缓存keepalive)-学习笔记
  10. python pickle模块:数据序列化和反序列化