it-swarm.asia

كيفية إخفاء نوع المحتوى على صفحة إضافة العقدة؟

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

11
oobie11

احتمالان:

  • admin/structure/menu/manage/navigation نقل/حذف عنصر قائمة لا تريده.
  • أنظف طريقة: استخدم الأدوار والأذونات. إذا لم يتمكن المستخدم من إنشاء نوع محتوى ، فلن يظهر الرابط في أي قائمة.
11
nourcy

ضع هذا في وحدة مخصصة:

function yourcustommodule_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    $items['node/add/your-content-type']['type'] = MENU_DEFAULT_LOCAL_TASK;
  }
}
4
Jancis

[~ # ~] تحديث [~ # ~]

MENU_CALLBACK ، كما هو مقترح في إجابات أخرى ، لم يعمل معي هنا. لا تزال تظهر على node/add صفحة.

يعمل هذا الرمز:

function MYMODULE_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    unset($items['node/add/your-content-type']);
  }
}

بالطبع ، يفترض أنك تريد تعطيل (وليس إخفاء) node/add رابط لهذا النوع.


الإجابة الأصلية

ال node/add يتم توفير الصفحة عن طريق Node module. قد تتمكن من القيام بما تريد من خلال تعطيل عنصر القائمة في قائمة التنقل ، وفقًا لهذه المشاركة: http://data.agaric.com/disabled-or-moving-nodeaddcontent-type-links-from-beneath-add-content-navigation-menu-also-removes

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

قد تتمكن من استبدالها بطريقة عرض أو لوحة بدلاً من ذلك (باستخدام Page Manager) ، لكنني لم أجرب ذلك ، وربما ستفقد الأتمتة.

3
wizonesolutions