你喜爱的第三方 Joomla 扩展有没有在网站前台留下版权链接(back link)?有些软件作者允许用户在后台参数中将“显示作者版权链接”选为“否”,例如 SOBI2 就是这样。不过,大多数作者并没有这么做。因此,在本论坛也不时看到有会员询问:如何去掉**扩展的版权链接?以前,我们总是告诉会员:这就必须修改 PHP 源文件了。当然也有会员找到了应该修改(hack)哪个文件的哪一行。但是,这些方法毕竟操作起来不那么容易,甚至有些初级用户都不知道用什么软件来修改 .php 格式文件,当他在 Windows XP 操作系统上双击 .php 格式文件时,很可能找不到合适的软件来打开它。

今天介绍一款由 Abivia.net 开发的名为 Redaction Utility 的系统插件,它可以帮助用户轻松滤除这些版权链接。之所以说“滤除”而不用“去除”,是因为 Redaction 插件并不直接修改这些第三方扩展的源文件,而是在 Joomla 进行 HTML 代码输出时,拦截用户指定的那些代码。Redaction 插件不仅能滤除刚刚提到的这些版权链接,还能滤除任何你不想在前台看到的 HTML 输出。只要你给 Redaction 插件指定相应的滤除规则即可。

 

用 Redaction 插件滤除版权链接是否合法?

如果 Joomla 扩展或模板是遵照 General Public License(GPL) 协议发行,那么你就可以放心修改其源代码去掉版权链接。因为 GPL 允许用户修改软件代码。

如果某个 Joomla 扩展的授权协议不是 GPL,那就意味着我们不能修改它的源代码。这时我们通过 Abivia Redaction 插件来滤除它的版权链接,应该是合法的。

Redaction 插件用法介绍

以往的做法是,我们将 Joomla 扩展的安装包解压缩,然后在全部文件中搜索前台那个版权链接的字串,找到之后,注释掉(comment out)或删除那段代码即可。不过,有些软件作者并没有直接以明文写出那段代码,而是用加密的方式(例如 Artio JoomSEF),这时“查找/替换”方式就无效了。

而 Redaction 插件的最大方便之处是:你无需关心软件作者是如何在源代码中定义那个版权链接的,我们只要在前台找到这个链接,并编写符合 Redaction 插件工作原理的滤除规则,就能将这个版权链接在网页输出时隐藏。

Redaction 插件的后台只有一个参数,就是要求用户输入“滤除规则”。这个滤除规则的语法比较特殊,是通过一种“正则表达式”(Regular Expression)来匹配并过滤。我们并不打算去学习这种语法,因为本教程是面向 Joomla 初级用户的。我希望你通过本文的示范来学会如何自己编写简单的规则。

下面,我们以 Artio JoomSEF 组件为例,来介绍一下 Redaction 插件的用法。

Joomla 1.5 用户安装 Artio JoomSEF 组件并启用之后,在前台的每一个页面底部都会以小号字显示一个“Joomla SEF URLs by Artio”链接(如下图所示),指向 Artio JoomSEF 官方网站。

Artio JoomSEF back link at frontend
Artio JoomSEF back link at frontend

Joomla! 之门网站的会员 bogardan 曾经介绍过如何去除 Artio JoomSEF 版权链接的修改方法。而我们采用 Redaction 插件来做更容易。

在含有这个版权链接的页面上点击鼠标右键,选择“查看源代码”,然后在源代码中搜索“Joomla SEF URLs by Artio”,就能迅速找到页面源代码中的这段,如下图所示:

 

Artio JoomSEF back link in page source code
Artio JoomSEF back link in page source code

以“Joomla SEF URLs by Artio”这句话为中心逐渐向前后看,首先是 HTML 的 A 元素(那是必须的,因为 a 元素定义超级链接),然后是 DIV 元素。同时,我们注意到 A 元素的链接目标是 http://www.artio.net 。

那么,我们针对 Artio JoomSEF 的滤除规则就是:

   div a,/artio\.net/

简单分析一下:英文逗号之前依次是 div 和 a 这两个 HTML 元素,中间用一个空格分隔;artio 之前的斜线(/)表示链接目标;.net 之前的反斜线(\)是正则表达式中对句点(.)符号的特殊写法。

这个规则相当于说:如果页面源代码中有指向含 artio.net 字样网址的链接(a),同时这个链接又包含在某个 DIV 中(div),那么就拦截该 DIV 中的全部 HTML 输出。

将上面的规则输入到 Redaction 插件的后台参数中,并启用该插件,现在刷新前台页面,就会发现 Artio JoomSEF 的版权链接已经消失了:

Artio JoomSEF back link filtered
Artio JoomSEF back link filtered

为了方便初级用户使用 Abivia Redaction 插件,在本文末尾我们提供了常见的几款 Joomla 扩展的版权链接滤除规则。如果你想滤除某个扩展或 Joomla 模板的版权链接,而不知道该怎样编写滤除规则,可以到本站论坛发帖,我们共同来研究。

温馨提示:如果需要用 Abivia Redaction 插件来滤除多个扩展或模板的链接,那么在后台插件参数中输入这些规则时,每行只能输入一个规则。也就是说,输完一个规则后,按回车换行,然后输入另一个规则。

Redaction 插件的高级用法

Abivia Redaction 插件还能识别 CSS 类及 HTML 元素的 ID 标签。这时编写滤除规则时,采用类似 CSS 的语法。例如:

div.credits a,/nqcogpl\.com/

上面这个规则表示:只有当 DIV 元素的 CSS 类为“credits” 时,才生效。如果某个 DIV 的 CSS 类不是 credits,即使该 DIV 中含有指向 nqcogpl.com 的链接,也不会被滤除。

另外,Redaction 插件还允许用户使用 * 或 ? 或 + 符号作为通配符来表示任意字符。例如:

*.credits a,/nqcogpl\.com/i

这个规则表示:无论包含 A 元素的容器是 DIV 还是 span,还是 P,只要其 CSS 类是“credits”同时含有这个链接,就可以生效。

像 Artio JoomSEF 及 AceSEF 这些软件,都提供了两个版本:免费版和收费版。其主要区别就是收费版不显示版权链接。那么,用户借助 Abivia Redaction 插件就能轻松滤除这些版权链接,不就是省了钱吗?

 

 

附:常见的几款 Joomla 扩展前台版权链接滤除规则

 

扩展名称

版权链接滤除规则

AceSEF

div span a,/joomace\.net/

Artio JoomSEF

div a,/artio\.net/

AlphaContent

div span a,/alphaplug\.com/

Eventlist

p a,/schlu\.net/

Agora Forum

p span a,/jvitals\.com/

Phoca gallery

div a,/phoca\.cz/

Remository

div a,/remository\.com/

VirtueMart

div a,/virtuemart\.net/i

 

{quickdown:63}