14 node_page_view代码追踪
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在让我们来看一下node_page_view返回了什么,我们在node.module里面找到这个函数。
内容包括drupal7教程,drupal7汉化,drupal7主题,drupal7模板,drupal7中文手册,drupal7 views,drupal7中文,drupal7安装,drupal7开发,drupal7视频,等
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在让我们来看一下node_page_view返回了什么,我们在node.module里面找到这个函数。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
下面来看这句抽象的代码:
$page_callback_result = call_user_func_array($router_item['page_callback'], $router_item['page_arguments']);
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
打开menu.inc文件,找到menu_execute_active_handler函数,阅读这个函数的源代码。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看阶段7,也就是完成阶段,对应的代码:
case DRUPAL_BOOTSTRAP_FULL:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看阶段6,也就是语言阶段,对应的代码:
case DRUPAL_BOOTSTRAP_LANGUAGE:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看阶段5,也就是页面头部阶段,对应的代码:
case DRUPAL_BOOTSTRAP_PAGE_HEADER:
_drupal_bootstrap_page_header();
break;
在这里,Drupal将这个阶段的工作委托给了_drupal_bootstrap_page_header函数。我们通过文本查找,很快就找到了这个函数的定义:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看阶段4,也就是会话阶段,对应的代码:
case DRUPAL_BOOTSTRAP_SESSION: