ECSHOP编码命名规范
ECSHOP
编码规范
1.编辑器设定
1.1. 缩进
所有的缩进使用空格取代Tab制表符。PHP文件采用4个空格的缩进,HTML文件以及HTML文件中嵌入的Javascript代码采用2个空格的缩进;单独的Javascript以及CSS文件采用4个空格的缩进。
1.2. 字符编码
所有PHP、HTML文件均保存为No Bom UTF-8的字符编码。
变量名应当全部小写,并且词语之间以单个下划线分隔。
例如:$current_user 是正确的,但是$currentuser 和$CurrentUser 就不正确。
名称应当是描述性的,并且简明。我们自然不希望使用冗长的句子作为变量名,但是多输入几个字符总好于疑惑于某个变量到底是干什么用的。
1.3. 循环计数器
允许使用一个单字符变量名的唯一情形是当它作为一个循环计数器的时候。在这种情况下,外层循环的计数器应当始终是$i。如果有一个循环处于这个循环的内部,它的计数器应当是$j,进而是$k,等等。如果循环的计数器是一个已经存在并且名字有意义的变量,本规范并不适用。
例如:
for ($i = 0; $i < $outer_size; $i++)
{
for ($j = 0; $j < $inner_size; $j++)
{
foo($i, $j);
}
}
1.4. 函数名称
函数也应该描述性地命名。这里我们并非在用C 编程,我们不希望写出诸如“stristr()”此类的函数来。同上,使用单词间用单下划线分隔的小写名称。函数名称中某处最好有一个动词。较好的函数名称如print_login_status(),get_user_data(),等等。
1.5. 函数参数
参数遵循和变量名字相同的约定。我们不希望一堆这样的函数:do_stuff($a, $b, $c)。在大部分情况下,我们希望仅仅看看函数的声明,就知道怎样使用它。
1.6. 类的名称
类的名称首先必须是一个有意义的英文单词或者词组。同时在书写格式上为了使类名和函数、变量有一个区别,我们要求类的名称全小写的写法,并且加上cls_作为前缀。
例如:
/* 错误的写法 *
class image_handle {}
class imagehandle {}
class imageHandle {}
/* 正确的写法 *
class cls_imagehandle {}
1.7. 总结
这里的基本哲学是不要为了偷懒而伤害了代码的清晰。但是,必须由一些常识来掌握这种平衡;例如,print_login_status_for_a_given_user() 做得就过火了——这个函数命名为print_user_login_status() 更好些,或只是print_login_status()。
2.代码布局
这里是一个头部的模板,所有的PHP文件的开始都必须包含下面的内容:
/**
* ECSHOP 升级程序之控制器
*
================================================================= ===========
* 版权所有 (C) 2005-2007 康盛创想(北京)科技有限公司,并保留所有权利。
* 网站地址: https://www.360docs.net/doc/375446476.html,
*
----------------------------------------------------------------------------
* 这是一个免费开源的软件;这意味着您可以在不用于商业目的的前提下对程序代码 * 进行修改、使用和再发布。
*
================================================================= ===========
* $Author$
* $Date$
* $Id$
*/
2.1. 注释的写法
根据流行的注释写法我们要求对于代码段的注释采用以下的方式来书写:
/* 注释内容 */
对于单行的注释则使用下面的注释形式,注意在//之后有一个空格:
define(…IN_ECS?, ture); // 注释内容
2.2. 始终包含大括号
这是因为懒于多敲两个字符而给代码清晰带来问题的又一个情形。尽管有些结构的主体部分只有一行,千万不要丢掉大括号。绝对不要。
例如:
/* 这些都错了 */
if (condition) do_stuff();
if (condition)
do_stuff();
while (condition)
do_stuff();
for ($i = 0; $i < size; $i++)
do_stuff($i);
/* 这些是对的 */
if (condition)
{
do_stuff();
}
while (condition)
{
do_stuff();
}
for ($i = 0; $i < size; $i++)
{
do_stuff();
}
2.3. 大括号放在哪儿
这一点是网络上争论比较多的一部分,但是我们将使用一种可以用一句话总结的风格:大括号始终独占一行。终止大括号还应当与起始大括号处在同一列上。
例如:
if (condition)
{
while (condition2)
{
...
}
}
else
{
...
}
for ($i = 0; $i < $size; $i++)
{
...
}
while (condition)
{
...
}
function do_stuff()
{
...
}
2.4. 符号之间使用空格
这是不用太费事就可以保持代码可读性的另一个简单,容易的步骤。无论何时你写一个赋值,表达式,等等,始终在符号之间保留一个空格。基本上,把代码当作英语来写。在变
量名和运算符之间插入空格。不要在起始括弧后或者终止括弧前加空格。不要在逗号或者分号之前加空格。一些例子很好地展示了这一点。
例如:
/* 每一对给出了错误方式,紧跟正确方式。 */
$i=0;
$i = 0;
if($i<7) ...
if ($i < 7) ...
if ( ($i < 7)&&($j > 8) ) ...
if (($i < 7) && ($j > 8)) ...
do_stuff( $i, "foo", $b );
do_stuff($i, "foo", $b);
for($i=0; $i<$size; $i++) ...
for($i = 0; $i < $size; $i++) ...
$i=($j < $size)?0:1;
$i = ($j < $size) ? 0 : 1;
2.4.1.字符串连接符
当使用字符串连接符时必须在句点(.)两侧加上空格。
// 错误的写法
$str = …?;
$str = …?;
// 正确的写法
$str = …?;
2.5. 运算符优先级
你知道PHP 中所有运算符的详细的优先级吗?我也不知道。不要猜。始终用括号强制一个表达式的优先级可以使优先级明显,这样你知道它会做些什么。
例如:
/* 结果是什么?谁知道? */
$bool = ($i < 7 && $j > 8 || $k == 4);
/* 现在你确定这里我在做什么了。 */
$bool = (($i < 7) && (($j < 8) || ($k == 4)))
2.6. 空行的使用
谁也不愿意看到挤在一堆的无序的代码。我们在写代码的时候总是会利用一些空行来增加代码可读性。合理的利用空格来区分代码段会使代码的逻辑思路更加明确。我们强行规定的空行有以下两种情况:
1、
2、?> 之前必须有且只有1个空行
3、两个函数之间必须有1个空行。
4、return、die、exit之前如果有其他语句的情况下应加上一个空行。
在代码中我们不允许仅有空格的空行,并且不允许在行尾有多余的空格。
3.SQL 语句
3.1. SQL 代码布局
既然我们都在使用不同的编辑器设置,不要尝试去做诸如在SQL 代码中实现列对齐此类的麻烦事。要做的是,不管用何种方法,把语句断行到它们单独的行上去。这里有一个SQL 代码看上去应该是什么样子的示例。注意在哪里断行,大写,和括号的用法。
例如:
SELECT field1 AS something, field2, field3
FROM `table` a, `table` b
WHERE (this = that) AND (this2 = that2)
3.2. 表名和字段值
SQL语句中的表名必须使用`符号包含起来;同时所有字段值的变量名必须包含在单引号之内,即便是整数值也必须有单引号。
例如:
// 这是错误的
INSERT INTO mytable (col1, col2, col3)
VALUES ($val1, $val2, $val3)
// 这是正确的
INSERT INTO `mytable` (col1, col2, col3)
VALUES (…$val1?, …$val2?, …$val3?)
3.3. SQL select 语句
在已知需要查询的字段的前提下,不允许使用如下的代码:
SELECT * FROM `mytable`
取而代之的写法是将每一个字段名写上去,请不要偷懒。
SELECT col1, col2, col3 FROM `mytable`
在需要获得已知记录数量情况下,请使用LIMIT offset, count 的方式,尽量不要使用无LIMIT 的SELECT 语句。
在需要或者满足条件的记录数量的情况下,请使用SELECT count(*|expr) FROM 的方式,尽量不要使用SELECT expr FROM 的方式。
需要进行逻辑运算的时候,尽量不要使用不等于,可以使用大于或者小于的方式。
3.4. SQL insert 语句
SQL INSERT 语句可以写成两种不同方式。或者你明确指明要插入的列,或者你已经知道数据中各列的顺序,不用详细指定它们。我们希望使用前一种方法,也就是详细说明插入哪些列。这意味着应用程序代码不会依赖于数据库中字段的顺序,也不会因为我们增加另外的字段而崩溃(当然,除非它们被指定为NOT NULL)。
例如:
# 这不是我们想要的
INSERT INTO `mytable`
VALUES ('something', 1, 'else')
# 这是正确的。
INSERT INTO `mytable` (column1, column2, column3)
VALUES ('something', 1, 'else')
3.5. SQL语句中的单引号
在SQL语句中字段值如果是变量必须是用单引号包围起来,无论这个变量是字符串还是数字。
例如:
$str = …ecshop?;
$n = 1;
$sql = “INSERT INTO table (string, number) VALUES (…$str?, …$n?)”; 需要注意的是,如果字段的值是一个常量的数字,则不能使用单引号。
4.Smarty语法
4.1. 双引号、单引号
为了避免dreamweaver将Smarty语句中的双引号改写为",我们要求在Smarty的花括号中不允许使用双引号,而是使用单引号。
错误的写法:
{if $user_name eq “”}匿名用户{/if}
{insert name=”query_info”}
正确的写法:
{if $user_name eq …?}匿名用户{/if}
{insert name=?query_info?}
4.2. 有条件设置HTML属性值
当需要在模板中有条件的设置HTML元素属性值的时候,我们要求所有语句均包含在双引号之内。
错误的代码:
{if $promote_price>0}”promote_goods”
{else}”nomarl_goods”{/if}
>{$goods.goods_name}
正确的写法:
4.3. 条件修饰符
在smarty中可以用eq、neq、gt、lt等来分别表示==、!=、>、<。那我们到底该使用哪种呢?
当Smarty语句出现在HTML标签内时不允许使用==、!=这类修饰符,如果使用了这类修饰符有可能导致该符号或者其他的HTML相关符号被Dreamweaver自动转义。
总之,尽量使用eq、gt等这类条件修饰符,避免直接使用==、>。
5.一般规范
5.1. 引用字符串
在PHP 中有两种不同的方式引用字符串——使用单引号或使用双引号。主要区别是:解析器在双引号括起的字符串中执行变量替换,却不在单引号括起的字符串中执行。因此,应当始终使用单引号,除非你确实需要对字符串进行变量替换。这样,我们可以避免让解析器解析一堆不需要执行替换的字符串的麻烦。同样,如果你使用字符串变量作为函数调用的一部分,你不需要用引号把那个变量括起来。同样,那只会给解析器增加不必要的工作。无论如何,要注意几乎所有双引号中的转义序列在单引号中都不会起作用。如果这条规范使你的代码难以阅读的话,要小心,并且放心地打破它。
例如:
/* 错误 */
$str = "This is a really long string with no variables for the parser to find.";
do_stuff("$str");
/* 正确 */
$str = 'This is a really long string with no variables for the parser to find.';
do_stuff($str);
5.2. 关联数组的键名
在PHP 中,使用一个不用引号括起来的字符串作为一个关联数组的键名是合法的。我们不想这样做——为了避免混乱,这个字符串应当用引号括起来。注意,这只是当我们使用字符串时的情况,不是当我们使用变量时的情况。
例如:
/* 错误 */
$foo = $assoc_array[blah];
/* 正确 */
$foo = $assoc_array['blah'];
5.3. 注释
每个函数之前应当有注释,告诉一个程序员使用这个函数所需要知道的事情。一个最小化的注释应包括:每个参数的意义,期望的输入,函数的输出。注释还应当给出在错误条件下(还有具体是什么错误条件)这个函数的行为。(注释应该确保)其他人不必察看这个函数的代码,就可以自信地在自己的代码中调用这个函数。
另外,为任何技巧性的,晦涩的或者并非显而易见的代码添加注释,无疑是我们应该做的事情。对文档尤其重要的是你的代码所做的任何假设,或者它正确运转的前提。任何一个开发者应该能够查看应用程序的任意部分,并且在合理的时间内断定(代码的执行中)发生了什么。
5.4. 幻数(常数)
不要使用它们。除非有明显的特殊情况,对任何一个精确值都应该使用命名常量。基本上,用字面的0 检查一个数组是否有0 个元素是OK 的。而给一个数字以特殊意义并且到处直接使用它是不OK 的。这会影响可读性和可维护性。按照本规范,我们应当使用常量TRUE 和FALSE 来代替字面上的1 和0——尽管它们有着相同的值,当你使用命名常量时逻辑会更加明显。
5.5. 简化运算符
简化自增($i++)和自减($i--)运算符是导致可读性问题的仅有的简化运算符。这些运算符不应当被用作表达式的一部分。然而,他们可以独占一行使用。在表达式中使用它们(带来的便利)还不够调试时头痛的(代价)。
例如:
/* 错误 */
$array[++$i] = $j;
$array[$i++] = $k;
/* 正确 */
$i++;
$array[$i] = $j;
$array[$i] = $k;
$i++;
5.6. 条件表达式
条件表达式只应该用来做简单的事情。它们只适合拿来做赋值用,根本不是用来做函数调用或者任何复杂的事情的。如果使用不当,它们会影响可读性,所以不要沉迷于使用它们来减少打字。
例如:
/* 不应该使用它们的地方 */
(($i < $size) && ($j > $size)) ? do_stuff($foo) : do_stuff($bar);
/* 使用它们的合适地方 */
$min = ($i < $j) ? $i : $j;
不要使用未初始化的变量:我们打算使用更高级别的运行时错误报告。这将意味着使用未初始化的变量不再会作为错误被报告。这个问题最容易在检查HTML 表单传递了什么变量时出现。这些错误可以通过使用内嵌的isset() 或者empty()函数检查一个变量是否被设置来避免。
例如:
/* 老办法 */
if ($forum) ...
/* 新办法 */
if (!empty($forum)) ...
if (isset($forum))…
5.7. if 以及else if的写法
当条件语句中的条件存在多个,并且有变量值的判断的时候,需要把变量的判断语句放在其他的条件语句之前。
正确:
if ($val == 1 && function_exists(…ob_gzhandler?))
{}
错误
if (function_exists(…ob_gzhandler?) && $val == 1)
{}
虽然在PHP 中else if 和elseif 的作用基本上是一样的。但是为了代码的统一性(也有传言else if 会出现不稳定的情况),我们要求将elseif 之间不保留空格:
if ($bool == 2)
{
}
elseif ($n = 1)
{
}
5.8. 输入变量的初始化
无论是函数的参数还是通过URL传递的变量,在调用之前均必须对其进行预处理以及设定默认值。
字符串必须进行trim的处理,并且如果变量的值是在我们预计的范围之内,需要对变量的非法值做出相应的处理;对于数字型的变量则需要进行intval或者floatval的处理。
5.9. require和include
在程序中需要使用包含文件的时候我们要求使用require_once或者include_once,不允许使用require或者include。
对于程序必须包含的文件只能采用require_once,而对于某些有条件包含的文件在引用时只能使用include_once。
5.10. 语言项
为了避免在其他语言环境下出现问题,在程序中应尽量少使用或者不使用语言项与语言项或者变量拼接的处理方式。如:
$_LANG[…add?] . $_LANG[…goods?]
$_LANG[…add?] . $goods[…goods_name?]
正确的方法应该是采用sprintf函数来处理。
ecshop数据库表结构
Ecshop 2.7.0数据库表结构 绿色:ecshop2.7.0当中的数据库。86个数据表 蓝色:ecshop2.7.0没有的! 蓝色:ecshop2.5.0在ecshop 2.7.0中没有的。。(追加进去的) ===================================================================================== ecs_account_log//用户账目日志表(log_id user_id user_money froz en_money rank_points pay_points change_time change_desc change_type) ecs_activity//活动表(代码,名称,开始,结束,描述) ecs_ad//广告表(广告序号,广告位置,媒体类型,名称,链接,上传广告图片,开始,结束,广告联系人信息,点击,是否显示) ad_id position_id media_type ad_name ad_link ad_code start_time end_time link_man link_email link_phone click_count enabled ecs_admin_action//管理权限分配(父类ID,权限代码) action_id parent_id action_code ecs_admin_log//管理日志(登陆时间,登陆管理员ID,操作描述,IP) log_id log_time user_id log_info ip_address ecs_admin_message//管理员留言(发送者ID,接收者ID,发送日期,阅读日期,是否 已读,是否删除,标题,内容) ecs_admin_user//管理员管理(用户名,email,密码,加入时间,最后登陆时间,最后 登陆IP,权限等) ecs_adsense//广告相关统计(来源广告,来源位置,点击) ecs_ad_custom//广告客户(ad_id,ad_type,ad_name,add_time,content,url,ad_status)ecs_ad_position//广告位(名称,宽,高,描述,样式) position_id position_name ad_width ad_height position_desc position_style ecs_affiliate_log//?(名称,宽,高,描述,样式) ecs_agency//?(名称,宽,高,描述,样式)
C#编码规范(完整资料).doc
【最新整理,下载后即可编辑】 1程序结构 所有源代码的结构均采用以下顺序布局,对于没有的部分可以省略,便于阅读代码。 //============================================== ================================================ #region Constant #endregion Constant //---------------------------------------------------------------------------------------------- #region Members #endregion Members //---------------------------------------------------------------------------------------------- #region Defaults #endregion Defaults //---------------------------------------------------------------------------------------------- #region Properties #endregion Properties //============================================== ================================================ #region Constructors #endregion Constructors //---------------------------------------------------------------------------------------------- #region InterfaceMethods #endregion InterfaceMethods //---------------------------------------------------------------------------------------------- #region StaticMethods #endregion StaticMethods //---------------------------------------------------------------------------------------------- #region OverrideMethods #endregion OverrideMethods //---------------------------------------------------------------------------------------------- #region PrivateMethods #endregion PrivateMethods //---------------------------------------------------------------------------------------------- #region ProtectedMethods #endregion ProtectedMethods //---------------------------------------------------------------------------------------------- #region PublicMethods #endregion PublicMethods //============================================== ================================================ #region Events #endregion Events //============================================== ================================================ 2命名规则和风格 ⑴类、方法、常量采用Pascal风格命名 public class SomeClass { const int DefaultSize = 100;
ECshop模板制作教程
ECshop模板制作教程 我是一个EC新手,EC就算做再多的模板,肯定也满足不了我们的需要,更何况各行有各行的门道,EC统一做出来的模板也不一定合适于我们这个行业用,因此,只有我们真正掌握了自己做模板,修改模板的功夫,才能真正的打造适合自己的电子商务平台,真正打造符合自己行业内的客户习惯的电子商务平台。 首先欢迎各位浏览本教程,恭喜大家使用 ECshop,!EC有多好,ECshop是PHP 构建的,PHP的应用我也不想多说了(亚马逊:https://www.360docs.net/doc/375446476.html,,雅虎:https://www.360docs.net/doc/375446476.html,,百度:https://www.360docs.net/doc/375446476.html,淘宝:https://www.360docs.net/doc/375446476.html,新浪:https://www.360docs.net/doc/375446476.html,,腾讯:https://www.360docs.net/doc/375446476.html,),(ps: ECshop成功了!在这一刻,他是伟大电子商务的传承,他不是一个人在战斗,他不是一个人 -_-!!! ) 我也不多讲了大家都知道,不过有时候热爱潜水的我真的时是实在忍不住要跳出来说两句. 本教程适用于了解 ECshop 和 ECshop模板DIY 以及它们的日常使用,在查看前阁下需要至少会使用一种编辑器(exp:Dreamweaver, editplus, emacs, vi, ee …意思就是可视化的HTML编辑器或者直接文本编辑器,我在讲的时候用Dreamwaver来讲,这样比较适合初学者和设计师)。这个教程目前由我一个人维护,但我相信,过不了多久就会有多人持续地维护。其中的内容需要不断地更新。如果您有兴趣参加,嘿嘿,PM我。我们一起为大家服务啊. 通过对本教程的学习,只要您边看边跟着做,一定能够学会自己做模板的。:) 下列章节的适用于ECshop程序。同时这里许多内容和一些 Smarty相关。假如您已经熟悉这些内容可跳过不阅读。假如您是ECshop新手并且想diy一下自己的店铺,那您应该认真详细地从头到尾读一遍这些章节。( ps: 大家不要紧张,我会尽量用人类的语言和大家交流,实在万不得已才会用机器语言展示给大家 ) 希望大家能够通过本教程,想要什么模板都能自己做出来。哈哈!一起加油吧! 第一章节: 读取这些内容,您将了解: 每个前台页面所对应的模板页面,模板文件的目录结构。 一些最基本的ECshop模板修改方法。 模板的路径以及相关包含文件的方法(深入了解Dreamweaver模板制作)。 一些常用模板例子讲解. 模板存放路径: ecshop/themes/xxxxx 其中的xxxxx就是某一套模板,如系统一般会自带的
项目开发及编码规范
项目开发规范文档修订历史记录
1.简介 目的 1、用于规范指导开发组进行开发 2、便于成员间的沟通与交流。 3、有助于项目质量和稳定。 4、为后期维护提供支持 2. 项目开发流程 项目开发过程归纳分为以下步骤: 1. 建立SVN项目版本控制。包括文档,源码,Lib包等。 2. 了解需求,并对需求文档的书写。(见文档结构规则附录)。 3. 详细设计文档。(见文档结构规则附录)。 功能模块设计,重要模块的算法设计。 数据库设计等。 根据需求定义开发平台及环境。 4. 编码。 搭建开发平台,配置开发环境。 编码。 单元测试案例。 5. 书写软件安装手册文件,数据库脚本文件,以及注意事项(release notes)。 6. 交互测试组测试。根据测试组测试结果是否回归第4步(测试回归最好不要超过2 次)。 7. 测试通过,交付上线使用。 维护手册 使用手册
3. 代码规范 Java 代码规范 3.1.1 Java类名 类名可由:英文字母,数字,下划线组成。(数字,下划线不能够开头) 类名由一个或者多个单词组成。单词通常要求简洁明了达意。能够通过类名能够大致了解此类的作用和用途。 类名要求首字母大写,多个单词组成类名时,单词的首字母要求大写。 建议:类名不要过于简单或者太长。可以对单词采用简化的名称:入: Number 简化为:num 。 3.1.2 Java类结构 类仅作为数据结构,没有行为,他封装了一组或者相似的一些行为方法。所以一个类尽量功能单一,或者功能类似共有行为的。一个类不要过于庞大。 通常情况下: 一般逻辑类中应该有构造方法和main方法,main方法中应该有测试代码。 每个类应该有 toString() 方法。 3.1.2.1 包和引入语句 在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。 报名的定义全部是小写字母。具体定义依据项目而定。 引入包时候,同一类型的归纳到一块,用空行隔开。例如: import 3.1.2 类注释 Java类开头应该有相应的注释:类版本描述,作者签名,日期时间,公司备注,类的功能作用相关描述等。(详细查看:注释) 3.1.2.2 类成员变量 a) 类变量要求放在类的开始声明。一行声明一个。 b) 变量名称首字母要求小写。其他命名规则类似与类名。 c) static , final 类型的变量,字母要求全部大写。 d) 尽量在声明局部变量的同时初始化。 e) 避免局部变量和成员变量同名,覆盖了成员变量。 f) 尽量变量私有化,缩小变量的作用域。 3.1.2.3 类成员方法 a) 方法名命名规则类似于成员变量命名规则。 b) 成员方法尽量私有化。
ECSHOP模板头部修改
今天开始从头部进行修改,头部的话针对的是所有的页面,你可以把头部做成一个公用文件,不过由于调用的JS和一些样式的不同也可以分开来做,如果要做成公共头文件的话,要把所有页面都会调用的JS和CSS加载上,不过东西也不多的,下面我就做成一个公共文件来用。 先讲一下每个页面的关键字:{$keywords},这是使用的smarty模板变量用来输出。“{}”是用来规定标签的开始与结束位置,有些类似于PHP中的“”,原理是一样的,中间的变量$keywords是从后台PHP文件中传输过来的变量,里面存储有值,{$keywords}就是把里面的值进行输出,由于{$keywords}和{$page_title}(页面标题的输出,在title标签间输出)是包含在head标签中的,所以我们可以不用动它们,不必把它们写进公共头文件。在head 标签中还有一个{insert_scripts files=','},它是用来调用JS文件的,如所见,它调用了,两个JS文件,head内的我们都不做为公共头文件,不过一会在公共头文件中我们会用到这个调用JS的方式,把所有要用到的JS文件调用进来。 首先新建一个公共头文件与其它*.dwt文件放一起,在第一行我们调用所有的JS文件:{insert_scripts files=',,auto_,,,,,,shopping_,,,,,'} JS文件很多,但不是每个页面都会用到所有的JS文件,或都有的页面已经在head中调用了一些需要使用的JS文件,有与我们写的JS文件重复的,没有关系,我们只是为了做一个公共文件,不用在每个页面都单独再去调用,有重复不会有任何影响。 下来我们来确定一下的字符集设置: 我使用的是gbk字符集,如果你使用的是utf-8的话,就要把字符集进行相应设置。 下面是一段JS代码: 设置它是为了防止有些页面调用JS页面时出现加载错误而无法正常运行程序。 下面是对LOGO图片的设置:
ecshop模板结构说明及标签(二次开发使用)
ECSHOP 模板结构说明(适用版本v2.1.5+) 名称类型备注(作用或意义)文件(目录)名可否更改images 目录存放模板图片目录不可更改 library 目录存放模板库文件目录不可更改 screenshot.png 图片用于“后台管理-> 模板管理-> 模板选择”显示 模板缩略图。 不可更改 style.css css样式表不可更改 备注:模板文件共32个(格式:.dwt)。 提醒: 1, 更改模板文件里面库文件的内容是无效的,页面刷新时,程序自动重新载入库文件内容到模板文件里(以库文件内容为准)。 2, 模板内所有id值为ECS_ 开头的都必须保留(和ajax相关)。 3, 非库文件内容不可放置到可编辑区域内,否则设置模板时,非库文件内容将被覆盖删除。 activity.dwt 模板文件活动列表页不可更改 article.dwt 模板文件文章内容页不可更改 article_cat.dwt 模板文件文章列表页不可更改 article_pro.dwt 模板文件文章内容页(如免责声明等) 不可更改 auction.dwt 模板文件拍卖商品详情页不可更改 auction_list.dwt 模板文件拍卖商品页不可更改 brand.dwt 模板文件商品品牌页不可更改 brand_list.dwt 模板文件商品品牌列表页不可更改 catalog.dwt 模板文件所有分类页不可更改 category.dwt 模板文件商品列表页不可更改 compare.dwt 模板文件商品比较页不可更改 flow.dwt 模板文件购物车和购物流程页不可更改 gallery.dwt 模板文件商品相册页不可更改 goods.dwt 模板文件商品详情页不可更改 group_buy_goods.dwt 模板文件团购商品详情页不可更改 group_buy_list.dwt 模板文件团购商品列表页不可更改 index.dwt 模板文件首页不可更改message.dwt 模板文件信息提示页不可更改 message_board.dwt 模板文件留言板页不可更改 myship.dwt 模板文件我的配送页不可更改
https://www.360docs.net/doc/375446476.html,c#开发规范
https://www.360docs.net/doc/375446476.html, C#开发规范 第一部分 第一章ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。 静态文件编码分Script编码和HTML编码两部分。 服务器端编码则分为服务器脚本、客户端脚本、HTML脚本三部分。 编码规范采用如下约定: 所有客户端脚本一律使用JavaScript 所有服务器端脚本一律使用c# 静态页面输出一律使用HTML脚本 本规范不适用于由服务器端脚本所产生的客户端脚本代码。 第二章静态文件编码规范: 静态文件脚本部分采用JavaScript编写。输出部分采用HTML标记语言。 1. HTML标记语言编码规范 1.1 标记的换行规范: * 一个标记必须占用一行。不得出现两个标记在同一行的情况(同一标记的关闭标记除外),如: