跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

drupal 中的解耦菜单

由 hrs, 12 十一月, 2024

 

解耦菜单概述

解耦菜单为 JavaScript 前端提供了使用 Drupal 中管理的可配置菜单的最佳方式。这使前端开发人员可以轻松使用该菜单数据来呈现导航,而不是对其进行硬编码。这也意味着非开发人员无需编写代码即可管理应用程序菜单!

此功能内置于 Drupal 核心中,因此您可以获得世界上最好的 CMS 所具有的所有其他优势。这还包括安全性、缓存和翻译。您实际上可以轻松地将多语言菜单数据提供给任意数量的解耦应用程序。

虽然此功能可以以多种方式使用,但目前解耦菜单主要服务于一种用例:全局且静态的菜单。这种菜单在各个页面或屏幕之间保持不变,旨在为解耦应用程序提供通用导航选项。这些菜单对所有用户来说都是相同的。

将来,分离菜单功能可以扩展到涵盖上下文感知的菜单。这将是一个可能根据页面上下文或特定用户而变化的菜单。例如,可能会有特定的菜单项根据用户及其在应用程序中的角色或访问权限而可用。有关此概念的更多讨论可通过查阅以下问题找到。

除了模块提供的后端功能之外,还有一些工具可供使用,以便更轻松地使用前端的 API 数据,包括库和 Web 组件。

后端
获得工作设置的最快方法:drush、sqlite + 内置 php 服务器。

设置 Drupal 后端
使用 drush 和 sqlite DB 来设置网站。

composer create-project drupal/recommended-project:^10.1.x-dev decoupled
cd decoupled
composer require drush/drush
./vendor/bin/drush si demo_umami --db-url=sqlite://.ht.sqlite

启用链接集端点
可以在配置页面的 Webservices 下的站点设置中启用链接集端点。此设置的 URL 为/admin/config/services/linkset。

在配置页面上查找设置


启用链接集端点


这会在system/menu/[菜单系统名称]/linkset处启用一个新端点。此端点将菜单作为链接集。

服务 Drupal
使用内置 PHP 服务器(使用另一个终端)

cd web
php -S localhost:8888 .ht.router.php


获取菜单数据
菜单数据可在 处获取 ,其中“[菜单名称]”是菜单的机器名称。例如,要检索主菜单:/system/menu/[menu name]/linkset

curl http://localhost:8888/system/menu/main/linkset


如果您的前端与后端位于不同的域上,您可以启用 CORS 标头以允许 javascript 请求从前端工作。

要以其他语言访问菜单数据,请将语言前缀或语言域添加到请求中。要获取西班牙语菜单,请将前缀添加es到 URL。

curl http://localhost:8888/es/system/menu/main/linkset


端点尊重用户权限,因此您只有在使用适当的用户帐户登录时才能访问管理菜单数据。

curl http://localhost:8888/system/menu/admin/linkset


示例响应格式
响应的格式遵循链接集 IETF 草案,以允许对响应的结构具有一定的可预测性。

菜单数据以平面数组的形式返回,其中的信息  使得呈现结构化菜单成为可能。

drupal-menu-hierarchy
{
 "linkset": [
   {
     "anchor": "\/system\/menu\/admin\/linkset",
     "item": [
       {
         "href": "\/en\/admin",
         "title": "Administration",
         "drupal-menu-hierarchy": [
           ".000"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure",
         "title": "Structure",
         "drupal-menu-hierarchy": [
           ".000.001"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure\/block",
         "title": "Block layout",
         "drupal-menu-hierarchy": [
           ".000.001.000"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure\/contact",
         "title": "Contact forms",
         "drupal-menu-hierarchy": [
           ".000.001.001"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure\/display-modes",
         "title": "Display modes",
         "drupal-menu-hierarchy": [
           ".000.001.003"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure\/display-modes\/form",
         "title": "Form modes",
         "drupal-menu-hierarchy": [
           ".000.001.003.000"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       },
       {
         "href": "\/en\/admin\/structure\/display-modes\/view",
         "title": "View modes",
         "drupal-menu-hierarchy": [
           ".000.001.003.001"
         ],
         "drupal-menu-machine-name": [
           "admin"
         ]
       }
     ]
   }
 ]
}
 
  • 登录或注册以发表评论
  • 28 次浏览
来源
解耦菜单
内容类型分类
技术文章
文章归类
drupal

文章标签

  • Drupal

评论

最新文章

  • 内容审核通知 content_moderation_notifications 模块简介
  • 调度程序 scheduler 模块简介
  • 工作流当中的草稿,已发布,很好理解,已归档是怎么理解。
  • 你行网 https://www.dwoke.com seo 关键词
  • brew 是什么命令
  • drupal 9 或 drpal 10 国内内容分享模块 Will Nice social share
  • Views Slideshow - Views Vanilla JavaScript Slideshow (VVJS) 简介和安装方法
  • drupal 11 安装statistics 统计模块
  • drupal11 扩展中找不到Statistics模块
  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别

标签云

adsenseAIapacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块Mysqlnerdtreenetstatnetworknginxnpmpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEWireGuardwpsxdebugyoutubeyumzip主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影权限果树种植标签优化模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证端口简介算法网站备份网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别
  • ddev 基本命令中文对照表
  • RSS源 是什么,有什么作用,如何使用。
  • 使用git 克隆drupal 开发版本和修改版本。
  • ddev 安装drush 错误和解决方案
  • 【Drupal 开发实战】告别环境配置噩梦:DDEV 使用全攻略
  • 因权限问题导致drupal cms 无法正常安装,那么该如何解决这个问题
  • kvm虚拟机启动失败:default网络未激活
  • ubuntu 安装kvm 虚拟机
  • foreach 是 PHP 循环语句使用方法
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 网址导航
  • 网站地图
  • 联系我们

友情链接

  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1