节点加载用户的配置文件(外部数据库 + View )。当我访问:node/123/profile/id/3 时,所有这些都有效。现在我已经实现了 hook_menu() 以加载任何个人资料页面并拥有更好的 URL。
当我出于某种原因自己加载它时,page.tpl.php 中的 $left 突然为空,并且似乎没有加载更多变量。我尝试了许多不同的函数来渲染和创建正确的 $output 但意识到 node_show() 似乎是首选函数。
现在测试表明,出于某种原因,hook_nodeapi()
调用被忽略了。
我的代码:
/**
* Implementation of hook_menu
*/
function modulename_menu() {
$items = array();
$items['my/nice/url/profile'] = array(
'description' => 'This page holds a view that shows profiles based on the %',
'page callback' => 'website_profile_load',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Menu path wildcard callback
*/
function website_profile_load() {
$output = node_show(node_load(1221), false, true);
return $output;
}
那么执行此操作并使面板(请参阅下面的评论)正确加载的正确方法是什么?
更新:
我正在使用 table wizard和 Views 2 连接到另一个数据库,其中包含有关非系统用户的信息。这是一个校友页面,该页面由外部管理并在内部显示(我无能为力,必须完成这项工作:)
刚刚发现根本没有加载面板。因此,即使我尝试加载的节点出于某种原因使用了面板,也没有加载任何面板。
最佳答案
/**
* Menu path wildcard callback
*/
function website_profile_load($uid = null) {
if (!$uid) {
global $user; // if no user passed in argument, show current user profile
$uid = $user->uid;
}
$output = drupal_render(content_profile_show_profiles($uid));
}
关于php - 访问 node/1 并以编程方式加载它时呈现的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4711507/