1

我想得到我的通配符,但我不能......

我在 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 文档中找不到任何东西。

4

2 回答 2

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,
);
于 2013-04-03T16:47:52.427 回答
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'); ?>
于 2013-04-03T17:52:10.357 回答