it-swarm.asia

ما الفرق بين وسيطات الوصول واستدعاء الوصول؟

ما الفرق بين وسيطات الوصول واستدعاء الوصول؟

افترض أنني قمت بتعيين استدعاء الوصول إلى 'user_access' ، و array('custom permission') هي قيمة وسيطات الوصول.

ماذا يعني ذالك؟ كيف تؤثر على بعضها البعض؟

20
user1359

"Access callback" هي الوظيفة التي يتم استدعاؤها للتحقق من أن المستخدم لديه حق الوصول إلى الصفحة. كحالة خاصة ، يمكن أن تكون القيمة TRUE ، وفي هذه الحالة يمكن لجميع المستخدمين الوصول إليها ؛ بمعنى آخر ، سيتم تجاوز إذن الوصول.

في حالة استخدام اسم وظيفة لقيمة "الوصول إلى رد الاتصال" (افتراضيًا ، هو "user_access") ، يمكنك أيضًا استخدام "وسيطات الوصول" ، وهي عبارة عن صفيف يحتوي على الوسيطات التي تم تمريرها إلى وظيفة رد اتصال الوصول.
كما هو الحال مع عمليات رد القائمة الأخرى ، يجب أن تكون الوسيطات عبارة عن سلسلة أو رقم ؛ في حالة كونه رقمًا ، سيتم استبدال القيمة بقيمة مأخوذة من مسار القائمة. إذا كنت تريد تجنب هذا الاستبدال ، فبدلاً من رقم تحتاج إلى استخدام سلسلة ؛ على سبيل المثال ، سيؤدي استخدام "1" كأحد الوسيطات التي تم تمريرها إلى رد الاتصال إلى تجنب الاستبدال التلقائي.

هذه بعض الأمثلة على إعلانات قائمة الاستدعاء القائمة المستخدمة من Drupal. (الأمثلة من Drupal 7 ، ولكن لما أريد أن أشير إليه ، هذا لا يحدث أي فرق.)

هذا مثال حيث يكون رد الاتصال ser_access () .

  $items['file/progress'] = array(
    'page callback' => 'file_ajax_progress', 
    'delivery callback' => 'ajax_deliver', 
    'access arguments' => array('access content'), 
    'theme callback' => 'ajax_base_page_theme', 
    'type' => MENU_CALLBACK,
  );

هذا مثال حيث لا يكون استدعاء الوصول اسم وظيفة.

  $items['user'] = array(
    'title' => 'User account', 
    'title callback' => 'user_menu_title', 
    'page callback' => 'user_page', 
    'access callback' => TRUE, 
    'file' => 'user.pages.inc', 
    'weight' => -10, 
    'menu_name' => 'user-menu',
  );

في هذه الحالة ، نداء الوصول هو ser_view_access () التي يتم تمريرها ، وليس الرقم 1 ، ولكن قيمة مأخوذة من مسار القائمة (وهي في هذه الحالة "user /٪ user") ؛ هذه حالة معينة ، حيث ستحصل الدالة على القيمة التي تم إرجاعها بواسطة user_load().

  $items['user/%user'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

افترض أن القائمة السابقة تم تعريفها على النحو التالي ، وتم استدعاؤها بمسار مثل "مستخدم/مرحبًا".

  $items['user/%'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

في هذه الحالة ، كان رد الوصول سيحصل كحجة على القيمة المأخوذة من المسار (0 يعني "المستخدم" و 1 يعني الجزء بعد "المستخدم" والشرطة المائلة) ؛ في هذه الحالة ، هذه القيمة هي "مرحبًا".

لفهم وسيطات حرف البدل هذه بشكل أفضل ، راجع وسيطات أداة تحميل أحرف البدل . تم وضع علامة على صفحة التوثيق Drupal 6 ، لكن ما تم الإبلاغ عنه لا يزال صالحًا لـ Drupal 7.

28
kiamlaluno

رد اتصال الوصول هي وظيفة تقوم بفحص ما إذا كان لدى بعض المستخدمين بعض الأذونات. رد اتصال الوصول الافتراضي هو ser_access ()

تسرد وسيطات الوصول الأذونات التي يتم فحصها من خلال استدعاء الوصول. على سبيل المثال "الوصول إلى المحتويات"

4
Shoaib Nawaz