问答消
5.1升级SP1后出现自由标记Arclist不能列表副栏目的问题
分析如下DEDECMS的标签代码:
<!–{dede:arclist row=5 titlelen=100 orderby=’id’ typeid=’19′ type=’image.’ imgwidth=’106′ imgheight=’140′} –>
<!–{/dede:arclist} –>
其中typeid=” 变量的值19 如果是主栏目的话, 这里的5行数据 会正常的读库出来, 但是如果 这个id的值是附属栏目,(这里还是举例说明吧,以手机主题为例子,我们将手机主题分为 诺基亚手机主题 摩托手机主题 索爱手机主题 …… 但是又按主题的类型再分为 非主流手机主题 炫酷手机主题 …. 这里问题就出来了. 我们添加主题的时候,将可爱的rabbit兔兔 这个主题 放到索爱M608C系列 ID是4 但是我又要将他放到附属栏目"卡通可爱手机主题" ID 为19 中去. 这样一来. 如果我的ID19的栏目中 全部都只有这样的附属进来的数据,没有直接添加数据. 那么上面的DEDECMS标签就将无法返回数据.)
这里就清楚了 这个bug所在的问题了.,该Bug出现在SP1的include/inc/inc_fun_SpGetArcList.php文件中.
还得自己解决问题:将include/inc/inc_fun_SpGetArcList.php文件的103行的代码 { $ridnum = count($reids); if($ridnum>1) { $sonids = ”; for($i=0;$i<$ridnum;$i++){ $sonids .= ($sonids==” ? TypeGetSunID($reids[$i],$dsql,’arc’,0,true) : ‘,’.TypeGetSunID($reids[$i],$dsql,’arc’,0,true)); } $orwhere .= " And arc.typeid in ($sonids) "; }else{ $sonids = TypeGetSunID($typeid,$dsql,’arc’,0,true); $orwhere .= " And arc.typeid in ($sonids) "; } unset($reids); }
替换为下列代码 { $ridnum = count($reids); if($ridnum>1) { $sonids = ”; for($i=0;$i<$ridnum;$i++){ $sonids .= ($sonids==” ? TypeGetSunID($reids[$i],$dsql,’arc’,0,true) : ‘,’.TypeGetSunID($reids[$i],$dsql,’arc’,0,true)); } $orwhere .= " And ( arc.typeid in ($sonids) Or arc.typeid2 in ($sonids) ) "; }else{ $sonids = TypeGetSunID($typeid,$dsql,’arc’,0,true); $orwhere .= " And ( arc.typeid in ($sonids) Or arc.typeid2 in ($sonids) ) "; } unset($reids); }
问题解决。
版权说明
本文章为ImFantasy 原创, 可随意转载, 但请注明出处, 并给连接! 谢谢 http://www.imfantasy.com.cn/post/dedecms-fulanmu-diaoyong.shtml
博客是9-24号建立的, 今天10-15号,基本上快有一个月了,百度才收录. GG YAHOO早就收录. 但是我看iis日志,发现百度并不是不知道有这个博客,每天都在爬,而且比Google的爬得更凶, 也许百度收录新站的策略是一个市场策略,而不是技术方面的原因,我想如果他们要发现一个新站,并收录这个新站应该很容易的, 他们只是在考验新站,为网友提供更好的搜索用户体验, 毕竟现在的垃圾站越来越来.百度的技术也是有限的,收录的站多了,他的关键词检索的相关性必然会更低, 这个是事实了, 在Google里面搜一个词,你打开一个站 很少会发现这个站并不是你要的这个词相关性的内容,而百度则经常出现类似的情况,由此分析,百度还需进步. 我们还需努力, 做站要坚持,做新站更要坚持. 坚持更新, 坚持伪原创吧.
继续加油.
最近跟小魁策划做个几个站,好好学习一下, 前期定位还在探讨,希望我们兄弟俩能够成功,最重要的是能学到东西, 起码得要对得起那百独带宽的服务器. 和俺们兄弟俩忙到凌晨四点的斗志.
跟小魁学学linux环境下的 服务器管理, 共同研究一下服务器, 网站就由我主要负责建设起来,环境就靠小魁兄弟了. 呵呵 我们一定要做好, 奶奶的个胸呀. 不做好,我们就是"范跑跑"!
小魁,加油! 周冲,加油! COME ON!
这几天比较忙 ,呵呵 ,要写毕业论文, 要制作新站的模板,哎,焦头烂额的了. JavaScript的学习只有等下星期继续了. 坚持 坚持!
好多页面的设计都需要JavaScript来完成相应的功能, css虽然强大,但是没有JavaScript 的页面还是不行. 呵呵.
到现在还不能自己写JavaScript,我决定要好好看看,http://www.w3school.com.cn 的教程了,顺便做个学习笔记在我的博客里面!
呵呵! 事先申明:JavaScript我纯属初学,接下来的所有JavaScript的学习资料,将大部分出自http://www.w3school.com.cn, 我只是做适合我自己的整理,与相应的心得. JavaScript教程版权 所有权规原作者所有.
先说说这个js的作用吧, 做站的过程中,我们无疑都会放一些广告, Google ads baidu ads alimama ads … 广告联盟都是以js方式提供的广告代码, 我们在布局网站的时候,就遇到一个问题了,JavaScript的加载速度比我们服务器端的asp .net php 等文件的加载速度慢一些,比html静态文件就更慢了, 但是往往一个广告 或许他又在正文之前, 按照浏览器的解析顺序,浏览器会先加载这个js 加载完毕再来加载我们的内容,这样似乎对用户体验并不好,如何让浏览器先加载内容 再加载广告呢! 这个解决方法研究很久,一直没有结果, 我自己弄的一个,只支持ie浏览器,在火狐下面就无法加载那个js了. 也是用的innerhtml技术 我的那个代码简单些,当然功能也是垃圾多了.呵呵.
下面我们就看看
先看看innerhtml.js这个文件. 我也不是很懂这个js,就无法做什么说明了, 凑合着用吧. 呵呵. 浏览器兼容是没有问题的.
-
-
-
-
-
-
-
-
- var global_html_pool = [];
- var global_script_pool = [];
- var global_script_src_pool = [];
- var global_lock_pool = [];
- var innerhtml_lock = null;
- var document_buffer = "";
-
- function set_innerHTML(obj_id, html, time) {
- if (innerhtml_lock == null) {
- innerhtml_lock = obj_id;
- }
- else if (typeof(time) == "undefined") {
- global_lock_pool[obj_id + "_html"] = html;
- window.setTimeout("set_innerHTML(’" + obj_id + "’, global_lock_pool['" + obj_id + "_html']);", 10);
- return;
- }
- else if (innerhtml_lock != obj_id) {
- global_lock_pool[obj_id + "_html"] = html;
- window.setTimeout("set_innerHTML(’" + obj_id + "’, global_lock_pool['" + obj_id + "_html'], " + time + ");", 10);
- return;
- }
-
- function get_script_id() {
- return "script_" + (new Date()).getTime().toString(36)
- + Math.floor(Math.random() * 100000000).toString(36);
- }
-
- document_buffer = "";
-
- document.write = function (str) {  
;
- document_buffer += str;
- }
- document.writeln = function (str) {
- document_buffer += str + "\n";
- }
-
- global_html_pool = [];
-
- var scripts = [];
- html = html.split(/<\/script>/i);
- for (var i = 0; i < html.length; i++) {
- global_html_pool[i] = html[i].replace(/<script[\s\S]*$/ig, "");
- scripts[i] = {text: ”, src: ” };
- scripts[i].text = html[i].substr(global_html_pool[i].length);
- scripts[i].src = scripts[i].text.substr(0, scripts[i].text.indexOf(‘>’) + 1);
- scripts[i].src = scripts[i].src.match(/src\s*=\s*(\"([^\"]*)\"|\‘([^\']*)\’|([^\s]*)[\s>])/i);
- if (scripts[i].src) {
- if (scripts[i].src[2]) {
- scripts[i].src = scripts[i].src[2];
- }
- else if (scripts[i].src[3]) {
- scripts[i].src = scripts[i].src[3];
- }
- else if (scripts[i].src[4]) {
- scripts[i].src = scripts[i].src[4];
- }
- else {
- scripts[i].src = "";
- }
- scripts[i].text = "";
- }
- else {
- scripts[i].src = "";
- scripts[i].text = scripts[i].text.substr(scripts[i].text.indexOf(‘>’) + 1);
- scripts[i].text = scripts[i].text.replace(/^\s*<\!–\s*/g, "");
- }
- }
-
- var s;
- if (typeof(time) == "undefined") {
- s = 0;
- }
- else {
- s = time;
- }
-
- var script, add_script, remove_script;
-
- for (var i = 0; i < scripts.length; i++) {
- var add_html = "document_buffer += global_html_pool[" + i + "];\n";
- add_html += "document.getElementById(’" + obj_id + "’).innerHTML = document_buffer;\n";
- script = document.createElement("script");
- if (scripts[i].src) {
- script.src = scripts[i].src;
- if (typeof(global_script_src_pool[script.src]) == "undefined") {
- global_script_src_pool[script.src] = true;
- s += 2000;
- }
- else {
- s += 10;
- }
- }
- else {
- script.text = scripts[i].text;
- s += 10;
- }
- script.defer = true;
- script.type = "text/javascript";
- script.id = get_script_id();
- global_script_pool[script.id] = script;
- add_script = add_html;
- add_script += "document.getElementsByTagName(’head’).item(0)";
- add_script += ".appendChild(global_script_pool['" + script.id + "']);\n";
- window.setTimeout(add_script, s);
- remove_script = "document.getElementsByTagName(’head’).item(0)";
- remove_script += ".removeChild(document.getElementById(’" + script.id + "’));\n";
- remove_script += "delete global_script_pool['" + script.id + "'];\n";
- window.setTimeout(remove_script, s + 10000);
- }
-
- var end_script = "if (document_buffer.match(/<\\/script>/i)) {\n";
- end_script += "set_innerHTML(’" + obj_id + "’,
document_buffer, " + s + ");\n";
- end_script += "}\n";
- end_script += "else {\n";
- end_script += "document.getElementById(’" + obj_id + "’).innerHTML = document_buffer;\n";
- end_script += "innerhtml_lock = null;\n";
- end_script += "}";
- window.setTimeout(end_script, s);
- }
这个js来定义广告 ads.js
var ad250×250 = "<script type=\"text\/javascript\"><!–\n\rgoogle_ad_client = \"pub-1574025608211710\";\n\rgoogle_ad_slot = \"8781672493\";\n\rgoogle_ad_width = 250;\n\rgoogle_ad_height = 250;\n\rgoogle_language = ‘zh-CN’;\n\r\/\/–><\/script>\n\r<script type=\"text\/javascript\"\n\rsrc=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">\n\r<\/script>";
set_innerHTML(’ad250_250′,ad250×250);
html页面给图层加一个id就可以了.
<div id="ad250_250"></div>
最后将innerhtml.js 和ads.js两个文件放在网站的最底部就可以实现,全站先加载内容,再加载Google的广告了.
<div id="ad250_250"></div>这个图层你还可以加入你自己的说明 比如说"广告正在加载…"之类的,也可以是一个gif动画 ,也就做一个精度条. 呵呵
我也慢慢摸索来着. 等下在自己的站上去试验.

最近忙着做好几个新站, 哎.老站被百度K了. 没有任何理由的K掉. 我靠. 没有办法 ,努力做新站.
手机主题站 手机主题下载 就来视泡手机主题网. 呵呵
手机电子书 txt电子书 就来191txt电子书
首先来看看百度蜘蛛Baiduspider爬行后返回代码代表的具体含义
2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。 203 正常;部分信息 — 返回的信息只是一部分。 204 正常;无响应 — 已接收请求,但不存在要回送的信息。 3xx 重定向 301 已移动 — 请求的数据具有新的位置且更改是永久的。 302 已找到 — 请求的数据临时具有不同 URI。 303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。 304 未修改 — 未按预期修改文档。 305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。 306 未使用 — 不再使用;保留此代码以便将来使用。 4xx 客户机中出现的错误 400 错误请求 — 请求中有语法问题,或不能满足请求。 401 未授权 — 未授权客户机访问数据。 402 需要付款 — 表示计费系统已有效。 403 禁止 — 即使有授权也不需要访问。 404 找不到 — 服务器找不到给定的资源;文档不存在。 407 代理认证请求 — 客户机首先必须使用代理认证自身。 410 请求的网页不存在(永久); 415 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。 5xx 服务器中出现的错误 500 内部错误 — 因为意外情况,服务器不能完成请求。 501 未执行 — 服务器不支持请求的工具。 502 错误网关 — 服务器接收到来自上游服务器的无效响应。 503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。
下面是今天我博客的IIS日志里面截取的部分蜘蛛爬行记录(呵呵,我博客没有流量,IIS日志里面基本都是蜘蛛的记录)
2008-10-01 00:58:09 W3SVC975353005 58.49.59.140 GET /guestbook.asp – 80 – 61.135.168.22 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 0
2008-10-01 01:07:32 W3SVC975353005 58.49.59.140 GET /catalog.asp tags=设计 80 – 61.135.168.22 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
2008-10-01 01:02:12 W3SVC975353005 58.49.59.140 GET /catalog.asp tags=%E6%9D%82%E8%B0%88 80 – 202.160.178.88 Mozilla/5.0+(compatible;+Yahoo!+Slurp+China;+http://misc.yahoo.com.cn/help.html) 200 0 0
2008-10-01 03:41:21 W3SVC975353005 58.49.59.140 GET /catalog.asp cate=5 80 – 202.108.7.212 Mozilla/5.0+(compatible;+YodaoBot/1.0;+http://www.yodao.com/help/webmaster/spider/;+) 200 0 0
下面是普通用户的浏览记录
2008-10-01 01:04:31 W3SVC975353005 58.49.59.140 HEAD /Default.asp – 80 – 58.30.18.49 SiteStatusChecker+(x86_64-centserver-linux-gnu,http://www.vdoing.com) 200 0 0
来具体分析一下百度蜘蛛的这个返回码!
比如说:
2008-10-01 01:07:32 W3SVC975353005 58.49.59.140 GET /catalog.asp tags=设计 80 – 61.135.168.22 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 64
这个意味着百度蜘蛛在今天1点7分的适合爬过www.imfantasy.com.cn/catalog.asp tags=设计这个页面,200 0 0 21089中的200协议代码代表了请求已完成也就是它发现这页并以入库了。根据这个我们可以多查看iis日志,研究蜘蛛爬行的路径,找出自己网站存在的问题,进而改正。
|