2012-06-19 34 views
11

Drupal menü öğemdeki sayfa bağımsız değişkenlerinden birini isteğe bağlı bir sayfa bağımsız değişkeni olarak nasıl ayarlayabilirim? Ben bulunamadı hatası bir sayfa alacaksınız Üçüncü argüman olmadan örneğin activities_list/76 ararsanızİsteğe bağlı değişken Drupal hook_menu uygulamasında

Ben

$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) 
); 

var. Üçüncü parametreyi isteğe bağlı olarak nasıl ayarlayabilirim?

Teşekkürler!

cevap

18

Düşündüğünüzden daha kolay :). Yolunuzda herhangi bir argüman belirlemeyin ve bunları sadece "page callback" işlevinize iletin.

$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'), 
); 

Ve sayfa geri arama işlevi şu şekilde görünecektir:

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

Aşağıdaki kodu kullanarak sayfa başlığını değiştirebilir. (Test edilmediyse, işe yarayıp yaramadığını bildirin):

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

Bu yardımcı olur umarım ... Muhammed.

+0

Teşekkürler çalıştı. Başlık argümanının artık çalışmadığı bir problemim var. –

+0

Daha fazlası için bir çözüm eklendi. Lütfen deneyin ve işe yaradıysa bana bildirin. –

+0

Geri arama işlevine herhangi bir argüman iletmezseniz, bu uyarı verir. – JCharette

5

Yapabileceğinizi sanmıyorum. Bunun yerine sadece bir joker ile bu yaptıysak:

$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) 
); 

Sonra bu activities_list/foo gibi bir URL için çalışacaktır ancak daha sonra activities_list/foo/bar gibi bir URL olsaydı yine alabilirsiniz bar çubuğunun 'sayfa argümanları' => dizi (1,2) tarafından bu işleve aktarıldığından sayfa geri çağırma değerinde.

Veya alternatif olarak, sayfanızda arg (2) numaralı telefonu kullanarak arama yapabilirsiniz.