16 页面内容组装
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在,包含节点对象的可呈现数组,已经返回来了。这个页面是怎么构件出来的呢?让我们回到函数menu_execute_active_handler上面来。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在,包含节点对象的可呈现数组,已经返回来了。这个页面是怎么构件出来的呢?让我们回到函数menu_execute_active_handler上面来。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
曾经有人在这里,问过我一个这样的问题,我怎么没有看到SQL语句啊?我们前面讲了,在向node_page_view传递参数之前,调用了node_load函数,将节点ID转为了节点对象。我们来看一下node_load函数的定义。
/**
* Loads a node object from the database.
作者:老葛,北京亚艾元软件有限责任公司,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: