phpMyAdmin 5.x 的顶部快捷工具条需通过修改 Twig 模板(如 table.twig 或 sub_page.twig)或开发插件实现,无法通过 config.inc.php 配置;模板修改后须清空缓存,插件方式支持权限控制但 URL 构造复杂,JS 注入灵活但兼容性差。
直接改 templates/navigation/tree/table.twig 或 server/sub_page.twig
phpmyadmin 5.x 的顶部快捷工具条(比如「结构」「sql」「浏览」旁的「复制表」「查看例程」等)不是靠配置开关控制的,而是由模板文件硬编码渲染顺序决定的。你没法在 config.inc.php 里加一行就插入新按钮——必须编辑对应页面的 twig 模板。
常见入口位置:
-
templates/navigation/tree/table.twig:单张表页的顶部工具条 -
templates/server/sub_page.twig:数据库/服务器级页签(如「用户账户」「状态」)
打开后找类似 {% for tab in tabs %} 或 {% for item in sub_pages %} 的循环块,在里面手动插入一个 <li>@#@#@#@#@#@#@#@#@#@0</li>。URL 要用 url() 函数生成,避免硬写路径(例如 url('tbl_sql', { 'db': db, 'table': table }))。
注意:模板改动后必须清空 phpMyAdmin 的模板缓存(tmp/cache/ 目录下文件),否则不生效。
用插件方式注入更安全,但需写 PHP 类
如果你希望按钮带权限控制、动态参数或复用逻辑,硬塞 HTML 不够可靠。phpMyAdmin 5.x 支持插件式页签扩展,走的是 libraries/classes/Server/Plugins.php 流程。
步骤很简单:
- 在
plugins/目录下新建子目录(如quick-tools) - 放一个
QuickToolsPlugin.php,继承AbstractPlugin,重写getTabs()方法返回带href和icon的数组 - 确保类名和文件名严格匹配,并在
config.inc.php中启用:$cfg['Servers'][$i]['Plugins'] = ['quick-tools'];
缺点是:插件里的 URL 构造比模板里麻烦,得调用 Util::getScriptName() + 手拼 query string;而且部分插件页签(如「用户账户」)会受 $cfg['Servers'][$i]['AllowRoot'] 影响,权限不匹配时直接不显示。
别碰 Util::getTabs() ——它只管主导航,不管快捷工具条
网上很多教程让你去改 libraries/classes/Util.php 里的 getTabs(),那是错的。那个方法只负责顶部主页签(「数据库」「服务器」「导入」「导出」等),和你想要加的「当前表快捷操作」完全不在一个渲染层级。
混淆点在于:两者都叫“tab”,但数据来源不同:
-
getTabs()→ 渲染server/sub_page.twig - 表页快捷项 → 来自
TableController或DatabaseController注入的sub_pages变量,最终由table.twig渲染
改错地方会导致主菜单乱序,但你的快捷按钮依然不会出现。
JavaScript 动态插入按钮最灵活,但有兼容风险
如果只是临时加个跳转链接(比如「查日志表」「进监控后台」),最省事是用 JS 注入:
document.addEventListener('DOMContentLoaded', () => {
const toolbar = document.querySelector('.nav-tabs');
if (toolbar) {
const btn = document.createElement('li');
btn.innerHTML = '<a href="https://your-logging-app.com?db=xxx" class="nav-link">? 日志</a>';
toolbar.appendChild(btn);
}
});
把这段代码放进 public/js/custom.js(需在 config.inc.php 中通过 $cfg['ExtraJS'] 加载),或者用浏览器插件注入。
但要注意:
- phpMyAdmin 5.x 使用 jQuery 3.x,别混用新版语法
- 某些页面(如 SQL 执行结果页)DOM 结构不同,
.nav-tabs可能不存在 - 升级后 JS 文件可能被覆盖,不如模板修改稳定
真正需要长期维护的快捷入口,模板改法最直接;要带交互或条件渲染,插件才是正路。别指望配置文件能搞定——phpMyAdmin 5.x 的 UI 扩展逻辑,压根没给配置留接口。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











