Zoomla!逐浪CMS系统管理员与开发者线上操作指南

- 下载最新逐浪CMS程序
- 视频开发教程
- 开发者技术论坛

| ## 安装指引 快速安装 使用逐浪 下载Zoomla!逐浪CMS|最新版本号: 安装流程： 感谢您使用Zoomla!逐浪CMS，在安装时，您需要准备以下的环境： 1、服务器端脚本解释器最低要支持asp.NET4.0。 2、需要有开放db_ower权限的MSSQL数据库，版本为MSSQL2005或更高版本。 3、网站所在目录需要开放Users、aspnet用户的可读写权限 ### 安装遇到问题？ 问：为什么启动Install文件，不能进入安装程式？ 答：首先检查一下Config/AppSettings.config的Installed是否为False，只有当Installed值为False才代表系统未进行安装。 问：系统打开就报错是什么原因？ 答：一般出现这样的原因的是.net版本不对，比如win2008操作系统下，IIS中的asp.net版本选择4.0并设置应用程序池为集成模式才正确： 问：我用虚拟目录安装逐浪提示：Error!请在根目录下执行本系统安装! 答：是的，您应该安装在根目录下，而不是建立虚拟目录，如果是WIN2008及更高企业版操作系统，可以采用多端口配置，如下图： ↑回到顶部 Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 开发实例 引用实例 开发示范 线上实例更多指引 分步式商城购物车实例,支持多商品提交(推荐)： <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <form id="form" name="form" method="post" action="/UserCart.aspx"><br> 商品 ID ： <input name="id" type="text" id="id" value="1" /><br> 商品数量： <input name="Pronum" type="text" id="Pronum" value="1" /><br> 商品属性： <input name="Attribute" type="text" value="Color:Red" /><br> 商品 ID ： <input name="id" type="text" id="id" value="2" /><br> 商品数量： <input name="Pronum" type="text" id="Pronum" value="1" /><br> 捆绑商品(逗号隔开)： <input name="prolist" type="text" id="Text1" value="" /><br /> <input type="submit" name="button" id="button" value="提交" /><br> </form> 一步式商城购物车实例： <form id="form1" name="form" method="post" action="/UserCartOne.aspx"><br> <script></script><br> 商品ID <br> <input name="id" type="text" id="Text2" value="1" /><br> 商品数量<br> <input name="Pronum" type="text" id="Text3" value="1" /><br> 捆绑商品(逗号隔开)<br> <input name="prolist" type="text" id="Text4" value="" /><br /> <input type="submit" name="button" id="Submit1" value="提交" /><br> </form> 积分商城购物车实例 ： <form id="form" name="form" method="post" action="/shoppingcart.aspx"><br> 商品ID <br> <input name="id" type="text" id="id" value="1" /><br> 商品数量<br> <input name="Pronum" type="text" id="Pronum" value="1" /><br> 捆绑商品(逗号隔开)<br> <input name="prolist" type="text" id="Text1" value="" /><br /> <input type="submit" name="button" id="button" value="提交" /><br> </form> 代购一步实例： <form id="form" name="form" method="post" action="/doShopCar.aspx" runat="server"><br> <script type="text/javascript" language="javascript" ><br> function onkeychange()<br> {<br> var values = document.getElementById("ProUrl").value;<br> if(values.indexOf("http://")==0)<br> {<br> document.getElementById("ProUrl").value = values.replace("http://","");<br> }<br> }<br> </script></p> 商品页网址 <input type="text" id="ProUrl" name="ProUrl" class="but" onkeypress="onkeychange()" onchange="onkeychange()" onkeyup="onkeychange()" /><br> &nbsp;&nbsp;&nbsp;&nbsp;粘贴您要购买商品的网页地址,我们以此为依据帮您购买<br />购买 <br> 商品名称<input type="text" id="Proname" name="Proname"/>&nbsp;&nbsp;&nbsp;&nbsp;您要购买商品的详细名称<br /><br> 来源卖家<input type="text" id="ProSeller" name="ProSeller"/>&nbsp;&nbsp;&nbsp;&nbsp;店铺名称或掌柜旺旺账号<br /><br> 商品价格<input type="text" id="Wholesaleone" name="Wholesaleone" onKeyUp="value=value.replace(/[^\d\.]/g,'')" />&nbsp;&nbsp;&nbsp;&nbsp;不包括国内运费,国内运费会在结算时一并计算<br /><br> 商品数量<input type="text" id="Stock" name="Stock" onKeyUp="value=value.replace(/[^\d\.]/g,'')" />&nbsp;&nbsp;&nbsp;&nbsp;您要购买商品的数量<br /><br> 商品类型<input type="text" id="ProClass" name="ProClass" />&nbsp;&nbsp;商品类型：1为正常 2为特价 3 为积分<br /><br> 您的备注<input type="text" id="Proinfo" name="Proinfo" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> 手机号码<input type="text" id="Phone" name="Phone" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> 商品属性<input type="text" id="Attribute" name="Attribute" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> <input type="submit" name="button" id="button" value="提交" /><br> </form> 代购提交实例： <form id="form" name="form" method="post" action="/ShopCar.aspx" runat="server"><br> <script type="text/javascript" language="javascript" ><br> function onkeychange()<br> {<br> var values = document.getElementById("ProUrl").value;<br> if(values.indexOf("http://")==0)<br> {<br> document.getElementById("ProUrl").value = values.replace("http://","");<br> }<br> }<br> </script></p> <p>商品页网址 <input type="text" id="ProUrl" name="ProUrl" class="but" onkeypress="onkeychange()" onchange="onkeychange()" onkeyup="onkeychange()" /><br> &nbsp;&nbsp;&nbsp;&nbsp;粘贴您要购买商品的网页地址,我们以此为依据帮您购买<br />购买 <br> 商品名称<input type="text" id="Proname" name="Proname"/>&nbsp;&nbsp;&nbsp;&nbsp;您要购买商品的详细名称<br /><br> 来源卖家<input type="text" id="ProSeller" name="ProSeller"/>&nbsp;&nbsp;&nbsp;&nbsp;店铺名称或掌柜旺旺账号<br /><br> 商品价格<input type="text" id="Wholesaleone" name="Wholesaleone" onKeyUp="value=value.replace(/[^\d\.]/g,'')" />&nbsp;&nbsp;&nbsp;&nbsp;不包括国内运费,国内运费会在结算时一并计算<br /><br> 商品数量<input type="text" id="Stock" name="Stock" onKeyUp="value=value.replace(/[^\d\.]/g,'')" />&nbsp;&nbsp;&nbsp;&nbsp;您要购买商品的数量<br /><br> 商品类型<input type="text" id="ProClass" name="ProClass" />&nbsp;&nbsp;商品类型：1为正常 2为特价 3 为积分<br /><br> 您的备注<input type="text" id="Proinfo" name="Proinfo" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> 商品属性<input type="text" id="Attribute" name="Attribute" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> 商品图片地址<input type="text" id="Thumbnails" name="Thumbnails" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> 条形码<input type="text" id="BarCode" name="BarCode" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br> <input type="submit" name="button" id="button" value="提交" /><br> </form> 云购实例(推荐)： <form id="form" name="form" method="post" action="/CloudCart.aspx"><br> 商品ID <br> <input name="id" type="text" id="id" value="1" /><br> 商品数量<br> <input type="submit" name="button" id="button" value="提交" /><br> </form> 订阅实例： <script type="text/javascript"> function attention() { document.getElementById("OrderType").value = "0"; gopost(); } function subscribe() { document.getElementById("OrderType").value = "1"; gopost(); } function gopost() { document.forms[0].submit(); } </script> <form action="GoMySubscription.aspx" method="post"><br /> 内容ID：<input type="text" name="ReferenceID" /><br /><br /> 订阅时间(月份为单位)：<input type="text" name="Period" /><br /><br /> 开始订阅日期：<input type="text" name="StartDate" /><br /><br /> <!--订阅人：<input type="text" name="UserName" /><br /--><br /> 接收电话：<input type="text" name="Tel" /><br /><br /> 接收邮箱：<input type="text" name="Email" /><br /><br /> <input type="hidden" name="OrderType" id="OrderType" /><br /> <input type="button" onclick="attention()" value="关注" /><br /> <input type="button" onclick="subscribe()" value="直接定阅" /><br /> </form> 店铺订单提交实例： <form id="form" name="form" method="get" action="/Store/StoreCart.aspx"><br> <script></script><br> 商品ID： <input name="id" type="text" id="id" value="3" /><br> 商品数： <input name="Pronum" type="text" id="Pronum" value="1" /><br /> 商品ID： <input name="id" type="text" id="id" value="3" /><br /> 商品数： <input name="Pronum" type="text" id="Pronum" value="2" /><br> 商品属性：<input name="Attribute" type="text" id="Attribute" value="color:白色,size:M|color:紫色,size:L" /><br /> 捆绑商品(逗号隔开) <input name="prolist" type="text" id="Text1" value="" /><br /><br> 送货类型 <input name="FareID" type="text" id="FareID" value="0" />（0为快递,1为平邮,2为EMS）<br> 商品类型 <input name="types" type="text" id="types" value="0" />（0为一般商品,1为鲜花商品）<br> 店铺用户ID <input id="SID" runat="server" name="SID" value="1" />(该商品所属店铺的用户ID)<br> <input type="submit" name="button" id="button" value="提交" /><br> </form> 添加收藏夹实例： <!-- get/post都可以,加链接形式也行 --><br> <form id="form1" runat="server" action="/User/Content/AddToFav.aspx" method="get" ><br> <div align="center"><br> <table style="font-size:12px"><br> <tr><td colspan="3" align="center">添加收藏夹</td></tr><br> <tr><br> <td>收藏内容ID：</td><td><input id="itemid" name="itemid" /></td></tr><br> <tr><td>收藏内容URL：</td><td><input id="Url" name="Url" /></td></tr><br> <tr><td>收藏内容类型：</td><td align="left"><select id="type" name="type" style="font-size:12px"><br> <option value="1">内容收藏</option> <br> <option value="2">商品收藏</option> <br> <option value="3">网店收藏</option> <br> </select></td></tr> <p><tr><td>收藏相关内容ID：</td><td><input id="Content" name="Content" /></td><td>(多个ID以逗号隔开)</td></tr><br> <tr><td colspan="3" align="center"><input type="submit" value="提交" /></td></tr><br> </table><br> </div><br> </form><br> 酒店预计实例(对接同程网API接口)： <form id="form1" name="from1" action="/Prompt/ShopCart/HotelCarInfo.aspx" method="post"><br> <table align="center" width="70%"><br> <tr><br> <td colspan="3" align="center">酒店预订</td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">酒店名称:</td><br> <td> <input id="Proname" name="Proname" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">价格:</td><br> <td><input id="Wholesaleone" name="Wholesaleone" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">入住时间:</td><br> <td><input id="comedate" name="comedate" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">到店时间:</td><br> <td> <input id="outdate" name="outdate" type="text" value="早上 6:00-8:00"/></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">入住人数: </td><br> <td><input id="Stock" name="Stock" type="text" /></td><br> <td align="left"></td><br> </tr><br> <tr align="center"><br> <td align="right">入住人姓名: </td><br> <td><input id="GuestName" name="GuestName" type="text" /></td><br> <td align="left">与入住人数相同(多个人以 , 隔开)</td><br> </tr><br> <tr align="center"><br> <td align="right">联系人姓名:</td><br> <td><input id="ContractName" name="ContractName" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">联系人手机号码:</td><br> <td><input id="GuestMobile" name="GuestMobile" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td align="right">所在城市:</td><br> <td><input id="cityname" name="cityname" type="text" /></td><br> <td></td><br> </tr><br> <tr align="center"><br> <td colspan="3"><input id="btnup" type="submit" value="提交"/></td><br> <td></td><br> </tr><br> </table><br> <br> </form> (Post传递无法实时运行演示) 机票预计实例(对接同程网API接口)： <form id="form1" name="from1" action="/Prompt/ShopCart/FeightCarInfo.aspx" method="post"><br> <table align="center" width="70%"><br> <tr><br> <td colspan="2" align="center">机票预订</td><br> </tr><br> <tr align="center"><br> <td align="right">航班号:</td><br> <td> <input id="Proname" name="Proname" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">价格:</td><br> <td><input id="Wholesaleone" name="Wholesaleone" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">起飞时间:</td><br> <td><input id="comedate" name="comedate" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">到达时间:</td><br> <td> <input id="type" name="ArrivalDate" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">保险价格:</td><br> <td><input id="Insurance" name="Insurance" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">燃油/机建:</td><br> <td><input id="AirOilTax" name="AirOilTax" type="text" style="height:20px;" size="10" /> / <input id="AirPortTax" name="AirPortTax" style="height:20px;" type="text" size="10" /></td><br> </tr><br> <tr align="center"><br> <td align="right">折扣数(如80为8折):</td><br> <td><input id="countRate" name="countRate" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">数量:</td><br> <td><input id="Stock" name="Stock" type="text" /></td><br> </tr><br> <tr align="center"><br> <td align="right">达到城市:</td><br> <td><input id="cityname" name="cityname" type="text" /></td><br> </tr><br> <tr align="center"><br> <td colspan="2"><input id="btnup" type="submit" value="提交"/></td><br> </tr><br> </table><br> <br> </form> (Post传递无法实时运行演示) JQuery登录实例： 引入： <script type="text/javascript" src="/js/jquery.js"></script> <script type="text/javascript" src="/js/jqueryajax.js"></script> Ajax登录 ZoomLa.ajaxlogin(username, password,callback); 实例： ZoomLa.ajaxlogin('admin','t_admin888',function(){ alert("登录成功"); //Do Something 登录成功回调函数 }); Ajax退出 ZoomLa.ajaxlogout(callback); 实例： ZoomLa.ajaxlogout(function(){ //Do Something 退出成功回调函数 }); Iframe嵌入式登录： iframe嵌入登录： 样式参数Style（1 为纵向，2 为横向） 默认为纵向 横向实例：<iframe src="/login.aspx?Style=2" frameborder="0" width="600" height="30"></iframe> 纵向实例：<iframe src="/login.aspx?Style=1" frameborder="0" width="600" height="150"></iframe> 获取商品推广url实例： <script> //surl商品地址 var xmlHttp = new XMLHttpRequest(); function updatePage() { //readState == 4，表示请求成功完成 if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var response = xmlHttp.responseText; //HTTP请求返回的文本内容 document.write("<a href='"+response+"' id='temp'>"+response+"</a>"); } else if (request.status == 404) { //HTTP状态码为404，无法找到资源 alert ("404 Not Found"); } else if (request.status == 403) { //HTTP状态码为403，资源不可用 alert ("403 Forbidden"); } else if (request.status == 401) { //HTTP状态码为401，未经授权 alert ("401 Unauthorized"); } } } function callServer(url) { //联系服务器，打开连接 xmlHttp.open("GET", url, true); //"true"代表该请求是异步的 //设置请求完成时的响应函数,注意这里是请求完成时，并不是响应完成时 xmlHttp.onreadystatechange = updatePage; //发送请求,因为已经在请求URL中添加了要发送给服务器的数据(city和state)，所以请求中 无需再发送其他数据. xmlHttp.send(null); } callServer("/api/ShopUrl.aspx?surl=http://win100/shop.aspx?ItemID=3"); </script> 根据商品ID、团定人数获得团购价格： <script src="JS/jquery.js"></script> <script> window.onload = loadtxt; var jiage = ""; function loadtxt() { $.get("/Common/GetGroupMoney.aspx?proid=1&groupnum=11", '', function (data) { jiage = data; document.write(jiage); }, ""); } //其中proid 为商品ID，groupnum为当前团定人数，jiage为返回当前的团购价格 </script> Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 模板标签 快速构建 精彩网页与应用 线上模板共享专区 Zoomla!逐浪CMS模板风格基本约定： 1、模板与风格分别存于Template与Skin文件夹下。 2、遵循标准的HTML规则。 3、官方模板统一采用HTML5规范与UTF-8语境规则 标签开发引导： 1、Zoomla!逐浪CMS标签查询为系统所有表，开发者可以根据需要自由组装字段。 2、动态标签的调用格式为{ZL.Label id="标签名" NodeID="0" /}心。 3、标签支持在任意动态页面输出，如<%Call.Label("{ZL.Label id=\"标签名称\" NodeID=\"91\" /}"); %>方法则能在非模板引擎页输出(即在任何动态页输出标签)。 4、系统采用智能多库算法，数据库名请不要采用数字开头并夹带小数点等特殊符号，如[2009data.1]格式则是非法数据库名格式，不符合数据库联查标准。 ↑回到顶部 ### 标签模板开发技巧 问：如何更改模板？ 答：后台-系统设置-网站信息配置，将模板目录更改为目标模板目录即可。 问：如何使标签运行更具效率？ 答：仅查询您所需要的字段，而不要每个标签都查询所有字段，这样可以使系统内存得到有效利用。 更多相关帮助>> Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 工具技巧 自由开发 技术之美 开发论坛专区 没错，您也可以在逐浪CMS中使用快捷健来操作后台！快捷键列表： ALT+Q 锁定后台屏幕，使当前未完成的操作不被中断，类似windows的“切换用户”功能。 ALT+U 快速从后台进入会员中心(user) ALT+I 进入网站首页(index) ALT+J 启动智能计算器 ALT+D 万年历（day） ALT+C 云模板(Cloud) ALT+M 模型管理(Model) ALT+T 模板方案管理(Template) ALT+S 风格管理(Skin) ALT+L 标签管理(Lable) ALT+N 启动新选项卡-快速切换新应用程式 ALT+H 启动系统帮助(help) ### 快速开发工具 启动数据库快速工具？ 1、管理员进入命令行：cd %windir%\system32\inetsrv 2、然后运行：appcmd set config /section:staticContent /+"[fileExtension='.sql',mimeType='text/x-sql']" 3、打开文件：在Chrome浏览器下点击这里获取DB_tool开发工具(IE为下载模式) 4、删除MIME：appcmd set config /section:staticContent /-"[fileExtension='.sql',mimeType='text/x-sql']" 命令行建立站点？ 1、管理员进入命令行：cd %windir%\system32\inetsrv 2、创建站点：appcmd add site /name:"网站名称" /bindings:http://网址:端口 /physicalpath:"D:\目录" 3、建立进程池：appcmd.exe add apppool /name:"进程池名称" 4、分配进程池：appcmd.exe set app "网站名/" /applicationpool:"进程池名称" 5、列出所有站点：appcmd list site，查找与指定的 url 关联的站点：appcmd list site http://localhost/app1。 点此启用智能建站工具http://www.zoomla.cn/tool Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 数据字典 高效运营 数据之美 在线完整版数据字典 关键表定义 用户主表：ZL_User 用户详情表：ZL_UserBase 内容主表：ZL_CommonModel 商城主表：ZL_Commodities ### 数据库操作释疑 问：Zoomla!逐浪CMS支持哪些数据库版本？ 答：MSSQL2000及更高版本的微软SQL Server数据库都支持，而Oracle(甲骨文)数据版我们仅对高级商业订制用户开放。 问：主表和内容表间如何关联 答：主表ItemID和副表ID是关联字段，如： zoomla_cn.dbo.ZL_CommonModel left join zoomla_cn.dbo.ZL_C_Article on zoomla_cn.dbo.ZL_CommonModel.ItemID=zoomla_cn.dbo.ZL_C_Article.ID Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 名词解释 模型模板 概念解析 线上文档 系统关键目录定义 Config:系统配置目录 Install：安装程式目录 Skin：风格目录 Template：模板目录 API：接口数据文件夹 Config文件关键定义 AppSettings.config：系统安装控制配置阀 ConnectionStrings.config：数据库连接配置文件 Site.config：网站配置信息文件 根目录文件定义 Default.aspx：首页解释文件 Login.aspx：预留登陆文件 web.config：全局配置文件(一般情况不需要定义此文件) Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 快速链接 诚信进取 大道逐浪 软件免费、服务收费--永久免费申明，欢迎更多的用户加入逐浪CMS开发阵营。 Zoomla!逐浪CMS官网的快速接链： 官方网址:www.hx008.com 开发社区:bbs.zoomla.cn 帮助中心:www.zoomla.cn/help 帮助文档:help.zoomla.cn 建站学园:edu.zoomla.cn 商业认证:www.zoomla.cn/biz 数据字典:help.zoomla.cn/data ↑回到顶部 Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号 ## 生成Word 诚信进取 大道逐浪 软件免费、服务收费--永久免费申明，欢迎更多的用户加入逐浪CMS开发阵营。 Zoomla!逐浪CMS官网的网页生成Word： 将做好的Word模版转成XML格式存放在网站的/UploadFiles/Template目录下 在需要生成的页面中调用扩展函数中的"生成Word"标签 页面中input的id名要与Word模版进行匹配，如：id名为zoomla则在Word需要读取该input数据的地方填写$zoomla 页面通过a链接或按钮调用方法outToWord()。如：用按钮调用<input type="button" onClick="outToWord()" value="生成Word"> 生成Word： //将当前页面TextBox中的值发往OutToWord.aspx页面处理,插入doc模板后返回.(模板为xml格式) <script src="/JS/jquery.js"></script> <script type="text/javascript"> var template; $().ready(function () { template = getParam("template"); }); function outToWord() { if(!template){template='测试模板';}//从Url中获取,如未指定，则默认值 arr = $("input[type=text]"); param = ""; for (i = 0; i < arr.length; i++) { $input = $(arr[i]); param += $input.attr("id") + ":" + $input.val() + ","; } window.open("/OutToWord.aspx?template=" + escape(template) + "&jsonData=" + param); } function getParam(paramName) { paramValue = ""; isFound = false; if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) { arrSource = decodeURI(this.location.search).substring(1, this.location.search.length).split("&"); i = 0; while (i < arrSource.length && !isFound) { if (arrSource[i].indexOf("=") > 0) { if (arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase()) { paramValue = arrSource[i].split("=")[1]; isFound = true; } } i++; } } return paramValue; } </script> <br /> 文本1:<input type="text" id="Year" />文本2:<input type="text" id="Month" /> <br /> <input type="button" id="testBtn" onclick="outToWord()" value="生成Word" /> Zoomla!逐浪软件 版权所有 2015 沪ICP备09077823号