دروبال 6 البدل المطلق في _menu ()، هل من الممكن؟

StackOverflow https://stackoverflow.com/questions/1508773

  •  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);
};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top