it-swarm.asia

كيفية إظهار / إخفاء رابط بناءً على إذن؟

أنا أبحث عن طريقة لإخفاء/إظهار رابط من القائمة الرئيسية إذا كان المستخدم الحالي لديه إذن محدد. تم بالفعل إنشاء عنصر القائمة وارتباط عنصر القائمة إلى عقدة يتم التحكم فيها بواسطة hook_node_access ().

7
Camsoft

افتراضيًا ، Drupal جميع عناصر القائمة التي لا يستطيع المستخدم الوصول إليها ، لذا فإن أسهل شيء يمكن القيام به ، يتطلب الوصول المحدد للصفحة التي يربطها عنصر القائمة إلى.

4
googletorp

ما يمكنك فعله هو تغيير استدعاء الوصول المرتبط بـ "node /٪ node" باستخدام hook_menu_alter () ، ثم كتابة الرمز لاستدعاء الوصول استنادًا إلى رمز node_access ( ) . هناك حالات محددة لا تزال تريد التعامل معها مثل node_access() على سبيل المثال ، المستخدمون الذين لديهم إذن "تجاوز العقدة" يمكنهم دائمًا الوصول إلى العقدة.

function mymodule_menu_alter(&$items) {
  if (isset($items['node/%node'])) {
    $items['node/%node']['access callback'] = 'mymodule_node_access';
  }
}

ضع في اعتبارك أن استدعاء الوصول يقرر من يمكنه رؤية الرابط ، ومن يمكنه الوصول إلى الصفحة عندما يكتب المستخدم عنوان URL مباشرة في شريط عنوان المتصفح.

2
kiamlaluno

قد ترغب في النظر في drupal module menu_item_visibility

لاقتباس صفحة المشروع:

على سبيل المثال ، إذا كنت ترغب في إنشاء رابط "حسابي" يشير إلى/مستخدم ، فإن المستخدمين المجهولين والمسجلين لديهم حق الوصول إلى مسار/المستخدم ، لذلك سيرى كلاهما الرابط ، حتى إذا لم يكن لدى المستخدمين المجهولين حسابًا من الناحية الفنية . سيسمح لك استخدام هذه الوحدة بإظهار ارتباط "حسابي" الخاص بك فقط للمستخدمين المسجلين وإخفائه من المستخدمين المجهولين.

تستخدم الوحدة نفس واجهة المستخدم بالضبط المستخدمة لإعدادات رؤية الكتلة للتعرف.

أو menu_views الوحدة - التي توفر نهجًا قائمًا على المشاهدات لإنشاء القائمة (والذي أعتقد أنه يتضمن بناءً على المستخدم)

1
therobyouknow