跳转到主要内容
你行网

Main navigation

  • 首页
  • 文章
  • 教程
  • 视频
  • 下载
  • 社区
  • 网站导航
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"
         ]
       }
     ]
   }
 ]
}
 

标签

  • Drupal
  • 登录或注册以发表评论
来源
解耦菜单

评论

相关文章

Drupal Composer命令及作用总结
drupal .htaccess 文件的配置解释
drupal启用大文件上传解决方案
如何从基于 Drupal 的 CMS URL Linux 门户中删除 index.php
drupal 基本的目录结构
drupal index.php 的工作流程
在 Drupal 8 中从 URL 中删除 index.php
drupal Index.php 的永久解决方法
Drupal 机读名称的命名规范
如何使用Drupal构建网站

文章标签

CSS
Excel
ubuntu
php
五笔
vim
Linux
HTML
command
drupal 7
composer
centos
Mysql
drupal 8
模块(module)
VPN
drush
JavaSrcipt
apache
drupal 9
英语
Drupal
SEO
nerdtree
network
果树种植
surround
drupal10
主题(theme)
phpmyadmin
ssh
权限
yum
二进制
声音
ssl
selinux
HTML5
用户
password
Dreamweaver
flameshot
颜色
翻译
uploadprogress
DDEV
视图(views)
firewalld
gzip
快捷键
kernel
xdebug
错误
ckeditor
mbstring
C语言
源地址
简介
php扩展
电脑基础
certbot
git
apt
压缩解压
表单
电子秤
httpd
WireGuard
邮件验证
breadcrumb
AI
superfish
diff
重定向
网站备份
摄影
tagclouds
docker
java
csharp
短信验证
adsense
drupal9
电脑技巧
simple_adsense
算法
RSS
youtube
版本号
JavaScript
badblocks
端口
cookie
VUE
网站运营
计算机基础
gimp
form
mod_expires 模块
nginx
zip
http验证
重定向,301
curl
netstat
input
赚钱
ip
dns
RFID
标签优化
drupal11
maven
drupal 11
npm
哈希值
字段
更多
RSS源
本站由阿里云强力驱动,幸运券优惠链接
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号