站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
AKCMS的二次开发
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[AKCMS|返回上一页]]</span> <div style="clear:both;"></div> [[AKCMS]]的二次开发流程: ==AKCMS目录结构== 注意:本文仅供开发者参考,站长绕行无需关注。 AKCMS目录结构: #cache:存放一些缓存数据,比如getitems如果指定了expire属性,就会作为文件缓存在这里 #data:[[MySQL]]版本[[备份]]恢复数据的文件存放在这里,[[SQlite]]版本的数据文件默认放在这里 #dic:词库在这里 #editor:阉过的所见即所得编辑器FCKeditor在这里 #fore:前端调用的接口程序在这里 #images:图片文件在这里,水印文件也在这个文件夹 #include:公用的一些[[程序]]文件 #install:需要复制到根目录的文件存放在这里 #language:语言包 #logs:日志文件存放的地方 #smarty:阉过的[[smarty]]相关程序在这里 #templates:后台模板文件夹 #templates/ak:或者是别的前台模板文件夹 #templates_c smarty:模板生成的临时文件在这里 #themes:[[下载]]的风格放在这个文件夹里可以导入 #tools:工具程序放在这里 #update:升级程序放在这里 ==AKCMS二次开发常见问题== ===如何在AKCMS中的HOOK(钩子)执行自己的代码=== 本功能为二次开发者设计,站长看不懂不影响正常使用,绕行即可。 在二次开发中常常遇到这样的情况,希望自己的代码在页面打开之前有机会执行。比如这种需求:判断是[[搜索引擎]]的[[蜘蛛]],就做出一定的动作。这样的代码就需要在页面打开之前执行。 不需要修改AKCMS的代码即可实现这样的功能,不修改AKCMS代码的好处是保持以后升级的时候不需要把修改过的文件,修改过的代码merge到新的版本中,始终保持独立。 AKCMS 2.7以上版本在动态执行时会检查(/plugins/runtime/)中是否有_before.php结尾的文件,如果有就在页面打开之前执行他们。页面打开完毕后检查(/plugins/runtime/)中是否有_after.php结尾的文件,如果有就执行他们。 例如这个需求:把所有动态执行的每一次访问的访问地址都记下日志以便分析。 拷贝以下代码: <pre> <?php error_log($_SERVER['REQUEST_URI']."\n", 3, AK_ROOT.'./logs/log.txt'); ?> </pre> 保存为/plugins/runtime/log_after.php即可。 注意:生成静态页之后,直接就是[[HTML]]文件的显示,当然不能执行任何代码,所以本文所说的功能都是针对AKCMS动态执行时而言。 ===如何在AKCMS菜单中增加项目=== [[网站]]维护中经常有一些常用的网址,可以放到[[浏览器]]的收藏夹,缺点是换一台[[电脑]]这些网址就找不到了,AKCMS 2.7开始,允许您自己将常用网址自己增加到菜单中。 您可以按照这样的格式写一个文件: <pre> 搜狐,http://www.sohu.com 百度,http://www.baidu.com </pre> 保存为:/plugins/menu.lst 再刷新后台即可看到左侧菜单中增加了[[百度]]、[[搜狐]]两个项目。 <div> [[Image:akcms09.jpeg]] </div> ==利用AKCMS的公用函数编写单独的PHP程序== 只要包含/akcms/include/common.inc.php即可引用AKCMS的公用函数。引用之后会初始化一系列变量供后面的程序使用: *$os:操作系统(windows或linux) *$lr:不同操作系统下默认的换行符 *$__dbtype:数据库类型(mysql或sqlite) *$__callmode:调用类型(web或command) *$onlineip:IP地址 *$thetime:程序开始执行时的时间戳 *$db:数据库对象(创建数据库链接需要时间,如果程序中不需要数据库查询,为节省时间,可以在引用common.inc.php之前初始化一个$nodb = 1;即可) *$systemurl:系统地址 *$homepage:首页地址 当服务器配置自动为GET、POST等注册全局变量时,common.in.php会unset掉这些全局变量。 '''可使用的功能函数''' :debug($variable, $exit = 0, $type=0);//输出一个变量的内容,当第二个参数不为空则exit,$type决定了输出的类型,默认0是虚线框显示;1是alert弹出来;2 也是alert,不过前后不加<script>标签,适用于本身就在标签中;3是直接输出,适用于命令行程序中显示。 :monitor($message = '');//打一个计时点,当解决效率问题的时候,可以在程序中加入多个计时点,配合monitor_log就可以知道每一段代码消耗了多少时间,从而发现问题。 :monitor_log($log = '');//输出计时点的分析结果,如果$log指定的话分析结果将计入日志文件 ==注意事项== 当一次性执行大量查询的时候可能会占用大量[[内存]],因为$db数据库对象每次查询都会把[[SQL]]语句放到数组中,当同时进行大量查询时,数组过大占用太多内存。解决方法是在执行query方法后清空查询语句的数组: <pre> $db->query($sql); $db->queries = array(); </pre> [[category:AKCMS]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)