在ShopEx中,添加产品的规格时,如颜色、尺寸、是否送货等配置信息,默认情况下,这些内容是须要手动计算的,若仅仅有几个属性值还easy计算,假设每个属性值比較多,通过手动计算将是一个灰常巨大的工作量,这里通过改动模板及控制器文件。实现了自己主动计算销售价的功能。

首先。先看一下改动此功能时,涉及到了哪几个文件

控制器文件: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. 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||

    换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...

  2. Android及java中list循环添加时覆盖的问题-20171021

    鉴于新浪博客太渣,转到这来. 最近在工程设计时,使用list循环添加map对象发现,最终全部变为最后一个map的值,但是list的数值还是正确的,也就是说添加了N(list长度或者说循环的次数)个相同 ...

  3. Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项

    本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...

  4. VMware虚拟机中为Linux 添加虚拟硬盘(VirtualBox方法类似)

    修改1:2014-06-24 11:38:21 Linux添加硬盘是在原来安装的硬盘空间不够或者需要使用其他硬盘上的东西时候的解决办法,因为大多数初学者习惯使用虚拟机,这里以在Vmware虚拟机中实现 ...

  5. meta 中的属性viewport

    粘贴自:https://blog.csdn.net/u012402190/article/details/70172371 <meta name="viewport" con ...

  6. 模板中的 TemplateBinding 问题

    昨天一个朋友向我求助一个自定义水印控件绑定的问题,问题出在文本框中输入的文本,不能绑定到 相应的依赖属性上(自定义的依赖属性 PassText),他纠结了很久找不出问题所在.问题帮他解决后,这里稍 做 ...

  7. Thinkphp模板中函数的使用

    1.在模板中使用php函数 在thinkphp的html中,我们经常会遇到一些变量难以直接从php控制端直接处理,这些变量只有在模板中循环输出的时候处理比较合适,这个时候,我们就要在模板中使用函数 1 ...

  8. fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? 解决方法

    错误描述: fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 错误分析:     此错误发 ...

  9. 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?

    在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 右键选择该文件.cpp格式的->属性->预编译头,→ 不使用预编译 ...

随机推荐

  1. POJ 1895 分层图网络流+输出路径

    题意: 题目描述:在公元3141年人类的足迹已经遍布银河系.为了穿越那巨大的距离,人类发明了一种名为超时空轨道的技术.超时空轨道是双向的,连接两个星系,穿越轨道需要一天的时间.然而这个轨道只能同时给一 ...

  2. cf 864 F. Cities Excursions

    F. Cities Excursions There are n cities in Berland. Some pairs of them are connected with m directed ...

  3. centos中mysql 安装以及配置,建库

    1.检测系统内部有没有安装其他的mysql数据库 rpm -qa | grep mysql 然后如果有的话删除这些mysql yum remove 查出来的所有名字 2.彻底删除系统中mysql的目录 ...

  4. scrapy框架中间件配置代理

    scrapy框架中间件配置代理import random#代理池PROXY_http = [ '106.240.254.138:80', '211.24.102.168:80',]PROXY_http ...

  5. Swift学习笔记(5)--数组

    数组的下标从0开始计数,相关方法属性涉及到下标时也从0开始计数 1.定义: //1.可变数组 var cityArray = ["Portland","San Franc ...

  6. openssl之EVP系列之5---EVP_Encrypt系列函数具体解释(二)

    openssl之EVP系列之5---EVP_Encrypt系列函数详细解释(二)    ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.t ...

  7. Android官方文档翻译——Fragment生命周期

    网上有的博客写得太乱 不如自己翻译官方文档 Lifecycle 生命周期 Though a Fragment's lifecycle is tied to its owning activity, i ...

  8. 39.Node.js域名解析---DNS模块

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var ...

  9. vue prpos

    匹配某些值中的一个 type: { validator: function(value) { return ["success", "warning", &qu ...

  10. [置顶] Docker学习总结(3)——Docker实战之入门以及Dockerfile(三)

    应用镜像 csphere/wordpress:4.2 # cd docker-training/wordpress/ # ls -a . license.txt wp-config-sample.ph ...