Drupal中的页面参数

时间:2014-03-29 08:09:30

标签: drupal menu

我有一个块,因为我有一个搜索按钮,当点击该按钮时我将此URL(www.jksb.com/saleorderlist?field_month=4)传递给drupal菜单。在菜单的页面参数中我需要提供参数(field_month)。我的页面参数是这样的:'page argument'=>数组(1),但它对我不起作用。我需要有人来解决这个问题。

2 个答案:

答案 0 :(得分:1)

这就是我解决这个问题的方法。

saleordermonthly.module

function sale_order_monthly_menu(){
    $ items = array();

$items["saleOrderMonthlyList"] = array(
'title' => 'Sale Order Monthly Report',
'description'=>'Sale Order Monthly',
'page callback' => 'sale_order_monthly_loadAllrecord',
//'page arguments' => array($para),
'access arguments' => array('access saleOrderMonthlyList'),
'type' => MENU_NORMAL_ITEM,
'file' => 'sale_order_monthly.admin.inc',
'access callback' => TRUE
); 

返回$ items; }

saleordermonthly.inc

enter code here
<?php 
function sale_order_monthly_loadAllrecord()
{   
$para='';
$query = drupal_get_query_parameters();
if(count($query) > 0){
    $para= $query['field_month'];
};

} ?&GT;

答案 1 :(得分:0)

您在查询字符串中传递参数但是如果使用“page argument'=&gt; array(1)”,则表示您希望路径的第二个分段/组件作为回调的第一个参数传递功能。 (您仍然可以在回调中获取参数,但在这种情况下必须使用“$ _GET”变量。)

例如:

$items['my-module/%/edit'] = array(
    'page callback' => 'mymodule_abc_edit',
    'page arguments' => array(1),
  );

这里,“%”是位置“1”的通配符(“my-module”位于位置0,“edit”位于位置2)。这是将作为回调函数中的第一个参数传递的值(“mymodule_abc_edit”)

在您的情况下,“hook_menu”中的路径应如下所示:

'saleorderlist/%'

然后如果您调用路径“saleorderlist / 4”,则“4”将作为回调函数的第一个参数传递:

function my_callback($ field_month){   echo $ field_month; //将回显“4” }

有关hook_menu的更多信息(“当前问题的路径中的通配符”部分):https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_menu/7