دروبال 6 البدل المطلق في _menu ()، هل من الممكن؟
-
19-09-2019 - |
سؤال
هل من الممكن التعامل مع جميع أحرف البدل في _menu () حسب الوحدة النمطية.
أنا أعرف عن أحرف البدل المحددة مثل
display/page/%
لكن هذا لن يعمل من أجل المسارات display/page/3/andOrderBy/Name
ماذا لو كنت أرغب في التعامل مع amplount غير متوقعة من المعلمات
display/page/3/12/45_2/candy/yellow/bmw/turbo
أريد أن يكون واحدا display/*
_menu () المسار للتعامل مع جميع الحجج.
كيف يمكنني فعل ذلك ؟
المحلول
سيقوم Drupal بتمرير أي عناصر URL إضافية كمعلمات إضافية hook_menu
وظيفة رد الاتصال - استخدام funct_get_args () في ردكم للحصول عليها.
لذلك إذا قمت بتسجيل بدل واحد فقط display/page/%
, ، ولكن الطلب الفعلي له عناصران إضافية display/page/3/andOrderBy/Name
, ، سيتم تمرير رد الاتصال الخاص بك "3" كمعلمة واضحة، ولكن أيضا "Andordery" و "الاسم" كما هو ضمني إضافي.
مثال رد الاتصال:
function yourModuleName_display_callback($page_number) {
// Grab additional arguments
$additional_args = func_get_args();
// Remove first one, as we already got it explicitely as $page_number
array_shift($additional_args);
// Check for additional args
if (!empty($additional_args)) {
// Do something with the other arguments ...
}
// other stuff ...
}
نصائح أخرى
آه؛) كنت على حق
وهنا كيف حلها.
function mysearch_menu() {
$items['mysearch/%'] = array(
'page callback' => 'FN_search',
'access callback' => TRUE,
);
return $items;
}
function FN_search()
{
return print_r(func_get_args(),true);
};