问题:在做站群的时候,在子站点下操作添加广告,发现添加后更新js出错,一开始我以为是在子站点添加路径出错了,后来切换到主站点的后台操作还是一样出问题,搜索了一下别人是否出现想同的问题,发现还真有,都一样后台报错乱码,看了解决办法,情况如下:
分析:V9正式版后台广告管理点重新生成js出现以下错误或类似错误.
- function PCMSAD(PID) {
- this.ID = PID; this.PosID = 0; this.ADID = 0; this.ADType = ""; this.ADName = ""; this.ADContent = ""; this.PaddingLeft = 0; this.PaddingTop = 0; this.Width = 0; this.Height = 0; this.I屏蔽词汇Count = "N"; this.UploadFilePath = ""; this.URL = ""; this.SiteID = 0; this.ShowAD = showADContent; this.Stat = statAD;
- }
- function statAD(id) {
- var sp = document_createElement_x_x_x_x("SCRIPT"); sp.type = "text/javascript"; sp.src = "http://localhost/index.php?m=poster&c=index&a=show&siteid="+this.SiteID+"&id="+id+"&spaceid="+this.PosID; document.body.a(sp);
- }
- function showADContent() {
- var content = this.ADContent;
- var isIE=!!window.ActiveXObject;
- var str = " ";
- var AD = eval_r('('+content+')');
- var count = 0;
- if(AD.ADText.length){
- count = AD.ADText.length;
- }
- for(var i=0;i<COUNT;I++){
- title='"+AD.ADText.textContent+"' (isIE){
- if (document.readyState='="complete"){
- ' document.onreadystatechange="function(){" if(document.readyState='="complete")' else { this.Stat(AD.ADText.textID); } str +=""+AD.ADText.textContent+""; } str += ""; //Vevb.com
- document.write(str);
- }
- var cmsAD_ = new PCMSAD('cmsAD_');
- cmsAD_.PosID = 2;
- cmsAD_.ADID = ;
- cmsAD_.ADType = "";
- cmsAD_.ADName = "";
- cmsAD_.ADContent = "{'ADText':[ {'textID':'2','textContent':'
看上面的代码,再看看系统里面的poster模版文件夹,发现代码是从那里来的,也就是更新js的时候更新不上去,因为模版没有设置,所以导致出错.
解决问题:官方的说法是操作是流程的问题,为什么他们不把流程控制好?,现在我们看一下正常流程如下:
1.在后台选择广告模块,然后点击 广告模块设置,默认如果看到都是英文的名称,再点右边的设置,开始为各个模块设置中文名称和各个参数,下面画红框的是我设置的中文名称.
例:设置的一个banner广告模版,类型根据不容位置的不同勾选不同,数量随便自己填写.
2.完成模版设置之后,然后在点击上面的添加版位,选择版位类型,就会看到你刚设置的名称的版位了.
3.设置好了版位,现在就可以添加广告了,添加广告的时候选择的广告类型就是你刚设置广告模块的时候的勾选的类型,图片、动画、文本,等.
到这里为止就可以添加广告了,大功告成.
附加:修改poster模版文件
说明一下,修改模版文件是为了让我们自己定义模版样式,也许我们只是需要它的最基本的内容,并不需要多余的div标签等。
如果你只是修改主站,默认修改网站模版文件夹的poster文件。我修改的是子站点的模版文件夹下的poster的文件,里面的内容是一样的。
1.把poster模版文件里面无关的div和其他标签删除,这样我们自己写样式,和代码更简洁一点。
2.把模版文件里面的{APP_PATH}去掉即可,因为我想统计的时候对每个子站点也实行统计,也就是自动根据当前的域名来统计。
3.同第二条原因一样,我们在后台生成js的时候,复制的地址,可以把{APP_PATH}这个地址去掉,因为我的是各个子站点目录下面已经复制了index.php这个入口文件过去,复制的时候记得修改文件里面的路径信息.
新闻热点
疑难解答