Optional argument in Drupal hook_menu implementation Optional argument in Drupal hook_menu implementation php php

Optional argument in Drupal hook_menu implementation


It's easier than you think :). Don't set any arguments in your path and just pass them to your "page callback" function.

$items['activities_list']=array(  'title callback' => 'activities_list_title',  'description' =>'All the Indicators divided by Coutry',  'page callback' => 'activities_list',  'access arguments' => array('access ppi'),);

And the page callback function would look like this:

function activities_list($arg1, $arg2){    // Your code goes here...    drupal_set_title(activities_list_title($arg1, $arg2));}

You can alter the page title using the following code. (Not tested, kindly let me know if it worked):

function activities_list_title($arg_1, $arg_2){    $title = "";    // Your code goes here    return $title;}

Hope this helps... Muhammad.


I don't think you can. If you did this instead with only one wildcard:

$items['activities_list/%']=array(  'title callback' => 'activities_list_title',  'title arguments' =>array(1),  'description' =>'All the Indicators divided by Coutry',  'page callback' => 'activities_list',  'access arguments' => array('access ppi'),  'page arguments' => array(1,2));

This will then work for a URL like activities_list/foo, but if you then had a URL like activities_list/foo/bar you can still get the value of bar in the page callback as it is still passed to that function by 'page arguments' => array(1,2).

Or alternatively you can call it by using arg(2) in your page callback.