我现在知道的,View方面,在home的index template htdocs\views\default\home\index.tpl.htm里有一个id为notification_list的ul元素,后面通过ajax delayload 载入通知模块。
通知模块的template是htdocs\views\default\notifications\ajax\list.tpl.htm。
control调用方面,aws:app,通过htdocs\app\notifications\ajax.php的list_action函数调用get_notification_list。get_notification_list在htdocs\models\notify.php里实现。
list_action最后调用:
TPL::assign('list', $list);
TPL::output("notifications/ajax/list");
这个list被赋给通知模块的template:views\default\notifications\ajax\list.tpl.htm。list.tpl.htm根据通知数量生成li元素以及li元素下面的几个p元素,包括通知内容、发布时间等,用来做通知的布局,见下图:
然后就是最关键的htdocs\static\js\aws.js了,最终实现ajax效果的就是aws.js的load_notification_list函数通过调用notifications/ajax/list/flag-0__page-0,将list.tpl.htm 载入到notification_list这个ul里面。
load_notification_list是在aws.Message里调用的。
那么问题来了,aws.Message是什么时候由谁调用的呢?
有点乱,哪位大神帮忙整理一下思路,谢谢了。
------------------------------------
补充,刚刚漏看了一个地方,现在基本上把思路理清楚了,大家帮我看看有没有纰漏。
前端:
1. 进入首页:load 根目录下面的 index.php
2. Index.php里include('system/system.php');
3. Sytem.php将aws_controller.inc.php包含进来。
require_once (AWS_PATH . 'init.php');
require_once (AWS_PATH . 'aws_app.inc.php');
require_once (AWS_PATH . 'aws_controller.inc.php');
require_once (AWS_PATH . 'aws_model.inc.php');
4. aws_controller.inc.php的AWS_CONTROLLER构造函数里引入app.js跟aws.js.
5. app.js里实现了$(document).ready(function ()方法,AWS.Message.check_notifications被调用。
6. AWS.Message.check_notifications在aws.js里被实现,它内部调用了AWS.Message.load_notification_list函数。
7. 这部是最关键的一步:AWS.Message.load_notification_list函数实现ajax效果,就是通过调用notifications/ajax/list/flag-0__page-0,将list.tpl.htm 载入到id为notification_list这个ul里面。
后端:
1. Index.php里调用AWS_APP::run()。AWS_APP::run在htdocs\system\aws_app.inc.php里实现
2. Run处理"notifications_action"。list_actioin被赋值给$action_method。 这里的action处理机制暂时还没有完全弄明白。
3. htdocs\app\notifications\ajax.php的list_action函数调用get_notification_list。get_notification_list在htdocs\models\notify.php里实现。
4. list_action最后调用:
TPL::assign('list', $list);
TPL::output("notifications/ajax/list");
这个list被赋给通知模块的template:views\default\notifications\ajax\list.tpl.htm。list.tpl.htm根据通知数量生成li元素以及li元素下面的几个p元素,包括通知内容、发布时间等,用来做通知的布局,见下图
阅读全文
收起全文