1

基于自定义模块中的菜单回调制作了一个简单的感谢页面(例如/product/3/thankyou)。内容在正常页面布局中显示良好,但我希望显示区域和块,但它们不显示。建议?

// menu callback
function custom_menu() {
  $items = array();
  $items['product/%/thankyou'] = array(
      'page callback' => 'custom_product_thankyou',
      'access arguments' => array('access content'),
      'type' => MENU_CALLBACK
   );
  return $items;
}

// theme function
function custom_theme() {
  return array(
    'product_review_thankyou' =>  array(
      'variables' => array('node' => NULL),
      'template' => 'product_review_thankyou',
    ),
  );
}

// page callback
function custom_product_thankyou() {
  $node = node_load(arg(1));
  $output = theme('product_review_thankyou', array('node' => $node));
  return $output;
}
4

2 回答 2

1

我刚刚在 drupal 安装中尝试了您的代码,并且我没有丢失块的问题。您是否可以将块配置为仅在某些页面上显示?

于 2011-12-17T22:09:15.620 回答
0

我仍然无法显示的一个块(无论块可见性设置是什么)是“菜单块”。问题是此块中没有感谢页面的链接。所以,我最终不得不在配置页面上添加带有类似路径product/[node_id]/thankyou的链接,然后我禁用了这些链接,因此它们不可见。刷新页面,区块出现了。

对我来说这有点烦人,因为我有点希望这是动态的,而不必写入产品节点 ID。但无论哪种方式,问题都解决了。

于 2011-12-19T15:54:52.150 回答