D-haha 的情侣博客 » 主题插件 » Haphic Feeds Gatherer Z-Blog 插件版 1.1 正式发布 (附详细说明文档)
我的友情链接页面 -Haphic Feeds Gatherer (现已撤除) - 许多人都见过.
弄这个友情链接程序的时候还是去年春天, 因为是自己用着玩儿, 又没多大价值, 这个程序就一直停留在靠 FTP 管理的层次. 后来陆续有些人问我要过这个东东, 不用说, 肯定觉得不好用到极点.
巴士飞扬写友链插件的时候想把我这个功能做进去, 估计是我的代码写得太滥, 移植起来太困难, 后来不了了之.
这次借着超新星爆发 (超新星的下场是什么来着? 白矮星? 中子星? 黑洞?) 的东风终于把这个插件改成了 Z-Blog 插件. 其实是根据这个友链程序重新制造了一个功能相似的 Z-blog 插件. 因为除了解析 XML 文件并替换模板函数经过修改可以使用以外, 其它部分全部重写. 但好在延用了 Haphic Feeds Gatherer 的运行机制, 又砍去了大批功能, 操作起来倒也轻车熟路. 只是在侧栏的友情链接如何处理的问题上费了些脑筋, 还走了些冤枉路.
如果说后台部分重写有八成的话, 前台部分则重写了九成九, 而了为了样式的适用性更广泛一些, 不停的在七八个主题间切来换去, 怎一个爽字了得. 即使是这样, 使用者怕也得根据自己的博客主题修改一下插件的显示风格才能取得好效果. 记得如果自己修改插件风格的话要把该插件风格文件夹重命个名, 免得升级时把自己修改给覆盖了. 而且这样的话, 换博客主题时更换插件风格题也方便.
具体关于显示效果的事以后再说, 现在只要保证插件大致齐就可以了. 总之, 至少花了十个小时折腾在模板和样式表上, 直到今天 (08年10月4日) 晚上插件终于基本定型.
插件的预览效果:
- 侧栏效果 - 我博客首页右下方
- 整页效果 - BlogRoll.asp
最后给出插件下载地址:
- 论坛留底贴
- 菠萝的海下载页 / 点此直接从菠萝的海下载 (ZPI 文件)
- (注: 插件已可通过菠萝的海在线安装和升级.)
附录1: 常见问题及解答.
Q: "系统运行自动更新的时间间隔" 与 "单个 Feed 更新时间间隔" 有何区别和关联, 应如何设置?
A: 系统每隔一定时间会运行一次自动更新, 但自动更新不会直接更新 Feed, 而是先验证该 Feed 的上次更新到现在的时间间隔是否大于对该 Feed 设定的时间间隔, 如果大于则更新, 否则跳过.
可以在 Feed 列表中对每个 Feed 指定更新时间间隔, 格式如下: http://www.esloy.com/blog/rss.xml|12. 含义是: 每隔12小时以上才对 http://www.esloy.com/blog/rss.xm 这个 Feed 地址进行一次更新. 间隔时间可以根据该博客的发文频率页定, 这样可以在资源消耗和时效上取得一个更好的平衡. 如果不特别指定单个 Feed 的更新时间间隔, 则此时间间隔为您在插件设置中设定的默认值.Q: 无论如何设置, 文章页/留言页 中, 侧栏都仅能显示静态友链?
A: 因为一般情况下这些页面中的友链是使用 JS 调用的形式, 如果将其改为 <#CACHE_INCLUDE_LINK#> 标签的形式则可正常显示, 但这样修改将导致这些页面的友链需要文件重建才能更新, 严重不推荐. 友链, 显示在主页便已足够.Q: 启用插件后, 首页侧栏中无法看到动态链接?
A: 停用插件再启用, 然后按以下步骤检查.
一, 看后台链接管理中是否有二级菜单, 如果没有, 则可能因为插件冲突, 或其它启用的插件中存在脚本错误. 请停用所有插件, 再单独启用此插件. 如果有二级菜单, 则往下看.
二, 检查博客安装目录下 → Include 目录中的 link.asp 看其中是否多出一些代码, 如果是, 则原因可能和上一个问题(文章/留言页无法显示动态友链)相同, 请检查模板 default.html, 并在其中友链部分使用 <#CACHE_INCLUDE_LINK#> 标签而不是 JS 调用. 如果不是, 问题可能很麻烦, 请与我联系.Q: 为什么我的 Feed 不能自动更新?
A: 侧栏友链区的那些灰色小字 Last Update 0 Success 0 Error. 非常重要, 它负责在页面被访问时驱动系统运行自动更新, 并作出报告. 这些文字可受插件风格控制, 可以通过 CSS 隐藏 (自带风格 default_NoStatus 便隐藏了这些文字), 但不可去掉, 否则自动更新不会被触发. BlogRoll.asp 页面中同样有这些文字.Q: 为什么明明我有许多 Feed 需要更新, 但自动更新每次只更新了其中几个便中止了?
A: 这其实是插件采取的一种保护机制, 为避免更新 Feed 这种消耗资源较大的行为持续时间过长, 自动更新每次最多更新 5 个 Feeds. 如果您的动态友链数确实很多, 请在插件设置中将 "系统运行自动更新的时间间隔" 适当调小. 不过最好还是控制动态友链数不要过多, 以免造成系统负担.Q: 如何在不过多牺牲时效的情况下控制插件的资源消耗?
A: 一, 控制 Feed 数量. 如果您的主机性能很好, 平均下来一秒种可以更新三个 Feed 甚至更多, 那么即使 Feed 列表里有百八十个也没什么不妥. 但如果你的主机性能很一般, 则要考虑减少 Feed 数量了.
二, 设置合理的 "系统运行自动更新的时间间隔". 这个间隔不要太短, 够用 (每天能把所有 Feed 都轮上二遍) 即可.
三, 及时清除无法更新或经常不稳定的 Feed. 尝试读取无法连接或连接很慢的 Feed 要比更新一个状态良好的 Feed 多花十几倍甚至几十倍的资源, 而且无法更新成功的 Feed 在此后的每一次自动运行更新时都要被尝试更新, 因此保证 Feed 列表里的地址可读性良好是节省资源的一个重要办法.Q: 如何了解 Feed 是不是读取稳定, 状态良好?
A: 一, 在编辑列表页面右侧, 显示了所有 Feed 的更新状态. 其中 "(2/6)" 表示该 Feed 默认 6 小时更新一次, 上次更新在 2 小时以前. 同样的, "(169/8)" 表示该 Feed 本应每 8 小时更新一次, 但却已经有 169 小时没能更新成功了...
二, 此外, 错误日志显示了最近读取失败的 Feed. 如果您发现某一个 Feed 在里面有很高的出镜率, 则该考虑把它变成静态友链了.Q: 为什么有些 Feed 可以打开但在插件中却无法读取?
A: 请确保 Feed 地址是实际存在的. 不能是 URL 转发或重定向前的地址. 另外, 本插件可读绝大多数 Feed, 但不是全部. Feed 格式不标准, 十分罕见的 Feed 版本都可能造成该 Feed 在插件中读取失败, 这里只能说抱歉.继续更新中...
附录2: 更多高级技巧.
一. 隐藏设置篇
插件目录下 config.asp 中有五个隐藏设置: 一个错误日志大小上限设置, 四个远程连接超时设置. 具体打开该文件可看到设置和注释.
如想在每次自动更新时尝试更新更多的 Feed, 请修改 update.asp 第 179 行. 将 5 改为更大值. 前提是您的主机性能不错且 Feed 们状态良好.
二. 其它技巧篇
选中 "首页仅显示有新文章的 Feed", 并将 "首页显示 Feed 数" 设为大于您的动态友链数. 则所有动态友链均有机会显示在首页. 更新勤的博客无疑拥有更多的机会.
三. 插件风格篇
为了使插件在前台的显示更好的配合主题, 插件设有更换风格的机制. 有更高要求的使用者可定制自己的插件风格 (模板和样式表). 所有风格存放在插件目录下的 theme 文件夹中, 里面每套风格为一个文件夹, 文件夹名为该风格名称.
因为插件用同一套模板的 HTML 代码, 配合样式表和 JS 文件, 实现了侧栏和友链页两种不同的效果. 且侧栏还伴有折叠功能. 所以制作模板需要有较高的 HTML+CSS 技巧并略微懂得 Javascript . 一般情况下还是建议简单的修改而不是重制.
定制自己的风格最好从您认为合适的自带风格建立一个副本作为新风格来修改, 而不是直接修改自带风格. 这样可以避免升级插件时将您的修改覆盖掉. 新建的风格会在重新进入插件设置页面时被自动读取.
更改模板需强制更新所有 Feed, 以使 Feed 缓存应用新模板建立. 所以更换风格也需要更新 Feed 才能生效. 但由于自带的风格只是应用了不同的样式表, 而模板代码相同, 所以在自带风格间切换可直接生效.
风格(目录下的)文件说明:
- xml_Batch.html - 每个 Feed 的模板.
- xml_multi_item.html - 每个文章标题的模板.
- common.js - 侧栏折叠 JS 脚本文件.
- style.css - 风格样式表文件.
- images - 模板和样式表中用到的图片.
模板中的标签说明 (假设 Feed 为博客):
- <#XML/num#> - Feed 在序号, 依次为 1, 2, 3, 4 ...
- <#XML/id#> - Feed ID, 供 JS 脚本使用. 侧栏为 s1,s2,s3 ... 链接页为 b1,b2,b3 ... 侧栏与链接页使和不同的 ID 以防止冲突.
- <#XML/subscibe#> - Feed 的订阅地址, 即该 Feed 源的地址.
- <#XML/title#> - 博客名称.
- <#XML/subtitle#> - 博客副标题, 描述.
- <#XML/link#> - 博客地址.
- <#XML/size#> - Feed 源的大小 (对有些 Feed 可能无法取得).
- <#XML/item/num#> - 文章标题序号.
- <#XML/item/title#> - 文章标题.
- <#XML/item/link#> - 文章链接地址.
- <#XML/item/author#> - 文章作者名称.
- <#XML/item/pubdate#> - 文章发布时间.
- <#XML/item/dateclass#> - 文章新旧, 新文章被替换为 date-new, 旧文章被替换为 date-old. 用于为新旧文章指定不同的样式.
- <#XML/batch#> - 用在 xml_Batch.html 中, 表示所有的文章标题.
- <#XML/LastUpdate#> - 该 Feed 的最后发文时间, 首页仅显示有新文章 Feed 的功能必须用到此标签.
- <#XML/Template#> - 当前风格名, 也就是目录名, 在模板中使用风格目录下图片时用得到.
- <#ZC_BLOG_HOST#> - 您的博客地址, 用绝对路径调用图片时绝对用得到.
- 最后注意: 中间带有一个 "/" 的标签可用于所有模板, 而中间带有两个 "/" 的标签只能用在 xml_multi_item.html 中.
制作模板需要注意的问题:
- 模板中使用图片 (比如那个订阅图标等) 时必须用绝对路径. 类似于这样: <img src="<#ZC_BLOG_HOST#>plugin/haphicfeedsgatherer/theme/<#XML/Template#>/images/feedicon.gif" align="absmiddle" alt="Subscibe This Feed" title="订阅 <#XML/title#>" /> 否则在前台可能出现图片路径错误.
- 模板 xml_Batch.html 中 <!--<lastupdate><#XML/LastUpdate#></lastupdate> This is important for function - Show New Update Only--> 这行被注释掉的代码必须存在, 否则 "首页仅显示有新文章的 Feed" 功能将不可用 (表现为首页一个 Feed 都不显页), 因为生成侧栏动态链接列表时需要从 <lastupdate><#XML/LastUpdate#></lastupdate> 取得最后发文时间来判断是否有新文章.
暂时写到这儿, 有机会再补充...
« 把 Z-Blog 附件改造为相册基于 Z-Blog 附件的相册插件 1.3 正式发布 »
你终于还是把它插出来了……
这个插件非常实用!!
单独写进一个文件,得怎么改动啊?
http://www.u3u3.com.cn/rss.xml,这样在这个插件识别rss的时候直接识别相对路径,导致友情链接无效...汗个...我才发现的东西...
链接像/html/。。。这种的应该怎么订阅啊?
企业e路通官方Blog-专业中小企业一站式建站服务!
能帮我看一下吗
这个一直不行。。还有就是评论回复那个。。哭。。
2、首页动态链,RSS的标题太长怎么弄? 有办法自定义标题么? 有些人链接名和RSS输出的名字相差很多。
我的博客动态友链不能自动更新了,要手动更新才行,看来得添加这行小子,可是这个网哪里添呢,在模板文件里呢,还是在友链管理中呢,还是在其他的什么地方,麻烦博主指点一下啊,QQ:908304766
发表评论: