php - 访问 node/1 并以编程方式加载它时呈现的差异

标签 php drupal drupal-6

节点加载用户的配置文件(外部数据库 + 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/

相关文章:

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

html - 如何使用 HTML 和 CSS 将 14 张图片放在两个垂直列中,每张图片下方都有一个标题,并且图片也排在每一行上?

drupal - 如何在drupal中查找节点属于哪个菜单

php - drupal 中每个请求调用的许多查询

Drupal:在 2 个不同的 Drupal 网站之间同步用户帐户

css - 将 css 应用于没有类的 td 元素

php - 文件位于 Load Data Infile 中的什么位置?

php - 如何检测 URL 是否引用图像

php - Form::file:如何在验证错误后和/或更新时使用 Input::old 重新填充?

php - ubercart 2.4 中的多步结帐