Drupal Hook_Menu访问通配符

时间:2013-04-03 15:44:35

标签: drupal menu hook

我想要我的野外车,但我不能......

我在Hook_menu中的链接:

$items = array();


$items['tv8/channel/%'] = array(
    'title' => 'Detail channel Tv8',
    'description' => 'Détails d\'une chaîne Tv8',
    'page callback' => 'tv8_program_channel_detail',
    'access arguments' => array('access content'),
    'page arguments' => array(1),
    'type' => MENU_NORMAL_ITEM,
);

return $items;

我的链接定义如下:

"<a href='?q=tv8/channel/test'>" . $channel->name ."</a>" ,

这里是我的回调函数:

   function tv8_program_channel_detail($id)
{
    $content_admin_panel = $id.
                            "<div class='body'>" .
                                "<ul class='admin-list'>" .
                                    "<li>" .

                                        "<div class='description'>" .

                                        "</div>" .
                                    "</li>" .
                                    "<li>" .

                                        "<div class='description'>" .

                                        "</div>" .
                                    "</li>" .
                                "</ul>" .
                            "</div>";

    $content = array
    (
        'content' => array
        (
            '#markup' => t($content_admin_panel),
            '#prefix' => '<div class="admin-panel">',
            '#suffix' => '</div>',
        ),
    );

    return $content;
}

但是id返回“频道”而不是“测试”。

我认为我做错了但是在drupal doc中找不到任何东西。

2 个答案:

答案 0 :(得分:0)

试试这个:

$items['tv8/channel/%'] = array(
    'title' => 'Detail channel Tv8',
    'description' => 'Détails d\'une chaîne Tv8',
    'page callback' => 'tv8_program_channel_detail',
    'load arguments' => array(2),
    'access arguments' => array('access content'),
    'page arguments' => array(1),
    'type' => MENU_NORMAL_ITEM,
);

答案 1 :(得分:0)

在页面参数中,您需要将其更改为 array(2)。基于你的路径数组(0)加载'tv8',数组(1)加载'通道'和数组(2)加载参数%。所以代码如下:

$items['tv8/channel/%'] = array(
    'title' => 'Detail channel Tv8',
    'description' => 'Détails d\'une chaîne Tv8',
    'page callback' => 'tv8_program_channel_detail',
    'access arguments' => array('access content'),
    'page arguments' => array(2),
    'type' => MENU_NORMAL_ITEM,
);

更好的链接使用php函数l():

<?php print l($channel->name, 'tv8/channel/test'); ?>