DaoKeCMS插件与模板之间的数据交互主要通过以下方式实现:
交互方式
- 插件对外函数 - 模板直接调用如ng_get_cats()
- GLOBALS变量 - 插件写入模板读取如$GLOBALS['my_search_results']
- 钩子注入 - 框架自动调用插件回调输出HTML
- 虚拟页 - 插件提供路由模板提供页面壳
最佳实践
模板侧调用插件函数必须function_exists守卫,插件侧对外函数必须as_plugin_enabled守卫。两层防护确保插件停用时模板不白屏。
- 插件函数返回空数组/空字符串而非报错
- GLOBALS变量命名加插件前缀避免冲突
- 钩子回调输出轻量HTML
- 虚拟页有兜底页面