发新话题
打印

如何在AKCMS中HOOK(钩子)执行自己的代码?

如何在AKCMS中HOOK(钩子)执行自己的代码?

本功能为二次开发者设计,站长看不懂不影响正常使用,绕行即可。

在二次开发中常常遇到这样的情况,希望自己的代码在页面打开之前有机会执行。比如这种需求:判断是搜索引擎的蜘蛛,就做出一定的动作。这样的代码就需要在页面打开之前执行。

不需要修改AKCMS的代码即可实现这样的功能,不修改AKCMS代码的好处是保持以后升级的时候不需要把修改过的文件,修改过的代码merge到新的版本中,始终保持独立。

AKCMS 2.7以上版本在动态执行时会检查(/plugins/runtime/)中是否有_before.php结尾的文件,如果有就在页面打开之前执行他们。页面打开完毕后检查(/plugins/runtime/)中是否有_after.php结尾的文件,如果有就执行他们。

例如这个需求:把所有访问的网址都记下日志以便分析。
拷贝以下代码:
<?php
error_log($_SERVER['REQUEST_URI']."\n", 3, AK_ROOT.'./logs/log.txt');
?>
保存为/plugins/runtime/log_after.php即可。

注意:生成静态页之后,直接就是HTML文件的显示,当然不能执行任何代码,所以本文所说的功能都是针对AKCMS动态执行时而言。

请参见本文的最新版本:http://www.akcms.com/manual/hook.htm

TOP

呵呵,老大最近很勤快啊。嘿嘿。。
好东西啊,支持,希望新版本早点出来。

TOP

馒头哥  果然新年新变化啊~~

等小弟换了工作  稳定后   小弟来参加ak的发展大计  哈哈
争做akcms的活跃分子(破坏^_^)
只惜技术不济...

TOP

引用:
原帖由 kevin 于 2010-2-24 09:44 发表
馒头哥  果然新年新变化啊~~

等小弟换了工作  稳定后   小弟来参加ak的发展大计  哈哈
欢迎

TOP

发新话题