本功能为二次开发者设计,站长看不懂不影响正常使用,绕行即可。
在二次开发中常常遇到这样的情况,希望自己的代码在页面打开之前有机会执行。比如这种需求:判断是搜索引擎的蜘蛛,就做出一定的动作。这样的代码就需要在页面打开之前执行。
不需要修改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