আমি অ্যাডমিন সরঞ্জামদণ্ডে আইটেমগুলি কীভাবে যুক্ত করতে পারি?


11

ড্রুপাল 8-এ, আমি অ্যাডমিন টুলবারে একটি সাবেনু দিয়ে, বিভিন্ন লিঙ্ক সহ একটি মেনু আইটেম যুক্ত করতে চাই।

আমি এটা কিভাবে করবো?

উত্তর:


18

আপনি অ্যাডমিন টুলবারে দুটি উপায়ে আইটেমগুলি যুক্ত করতে পারেন:

সামগ্রী হিসাবে:

ইউআই তে /admin/structure/menu/manage/admin

বা কোডে:

$item = \Drupal\menu_link_content\Entity\MenuLinkContent::create([
  'link' => ['uri' => 'internal:/<front>'],
  'title' => 'Front Page',
  'menu_name' => 'admin',
]);
$item->save();

বা স্থির কনফিগারেশন ফাইলগুলিতে:

system.admin:
  title: Administration
  route_name: system.admin
  weight: 9
  menu_name: admin
system.admin_content:
  title: Content
  description: 'Find and manage content.'
  route_name: system.admin_content
  parent: system.admin
  weight: -10
system.admin_structure:
  route_name: system.admin_structure
  parent: system.admin
  description: 'Administer blocks, content types, menus, etc.'
  title: Structure
  weight: -8
system.themes_page:
  route_name: system.themes_page
  title: Appearance
  description: 'Select and configure themes.'
  parent: system.admin
  weight: -6

এটি সিস্টেম.লিংকস.মেনু.আইএমএল এর শুরু , যা অ্যাডমিন মেনুটিকে আমরা ডি 8 থেকে জানি হিসাবে এটি সংজ্ঞায়িত করে। আপনি mymodule.links.menu.yml এ আপনার নিজস্ব এন্ট্রি যুক্ত করতে পারেন ।

সম্পাদনা:

উপরের সারিতে আইটেম যুক্ত করতে হুক ব্যবহার করুন mymodule_toolbar()। এটি ট্যুর মডিউল থেকে একটি উদাহরণ:

/**
 * Implements hook_toolbar().
 */
function tour_toolbar() {
  $items = [];
  $items['tour'] = [
    '#cache' => [
      'contexts' => [
        'user.permissions',
      ],
    ],
  ];

  if (!\Drupal::currentUser()->hasPermission('access tour')) {
    return $items;
  }

  $items['tour'] += array(
    '#type' => 'toolbar_item',
    'tab' => array(
      '#type' => 'html_tag',
      '#tag' => 'button',
      '#value' => t('Tour'),
      '#attributes' => array(
        'class' => array('toolbar-icon', 'toolbar-icon-help'),
        'aria-pressed' => 'false',
      ),
    ),
    '#wrapper_attributes' => array(
      'class' => array('tour-toolbar-tab', 'hidden'),
      'id' => 'toolbar-tab-tour',
    ),
    '#attached' => array(
      'library' => array(
        'tour/tour',
      ),
    ),
  );
 return $items;
}

1
ধন্যবাদ @ 4 কে 4 তবে আমি যখন এটি ইউআইয়ের মাধ্যমে যুক্ত করার চেষ্টা করব তখন আইটেমটি সরঞ্জামদণ্ডের প্রশাসনিক বিকল্পের প্রথম স্তরে উপস্থিত হবে না।
jmzea

2
শীর্ষ সারিতে একটি আইটেম পেতে, আপনাকে একটি হুক ব্যবহার করতে হবে। আমি উত্তরে একটি উদাহরণ রেখেছি।
4k4

1
আপনার উত্তরগুলির জন্য আপনাকে ধন্যবাদ, শেষ পর্যন্ত আমি মডিউলটি [টুলবার মেনু] ব্যবহার করতে যাচ্ছি ( drupal.org/project/toolbar_menu ) যা আমার প্রয়োজন অনুযায়ী খাপ খায়
jmzea

এছাড়াও মূল্য devel মডিউল কটাক্ষপাত এবং তাদের বাস্তবায়ন আছে hook_toolbarএবং একটি ToolbarHandler
লেইম্যানেক্স

@ 4 কে 4: আপনি প্রথম কোডটি কোথায় যুক্ত করবেন?
পোনজিও পিলাতো

4

যারা পূর্ববর্তী উত্তর থেকে কোডটি কোথায় রাখতে পারে তা ভেবে সবার জন্য - আপনি এটি এমওয়াইএমডিইউএল.ইনস্টল-এ ব্যবহার করতে পারেন উদাহরণস্বরূপ

function MYMODULE_install(){
    $item = \Drupal\menu_link_content\Entity\MenuLinkContent::create([
      'link' => ['uri' => 'internal:/admin/link'],
      'title' => 'Link title',
      'menu_name' => 'admin',
    ]);
    $item->save();
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.