在尝试了 `#__menu` 表后,我发现了许多有趣的功能。
#__menu
在 joomla 安装数据库中调用了一个 DB Table 。每列的功能如下所述。
id(INT) 主键。
title(VARCHAR) 菜单的显示名称。非常重要的领域。
菜单类型(VARCHAR) *判断菜单是否为“主菜单”、“顶部菜单”、“左菜单”……。管理菜单应该具有“主要”价值。但是它们是否显示在后端由'client_id'字段(见下文)决定,而不是在这里。*
别名(VARCHAR) “标题”的别名。但无论是否填充它都不会产生任何影响。我试图填充它并将“标题”字段留空。然后菜单变成了空白。但是,如果我将“别名”留空并填写“标题”,则菜单会显示文本。
note(VARCHAR) 备注(或注释)。
path(VARCHAR) 要在浏览器地址栏中显示的路径名。它不必与“链接”信息相关。(但必须填写“路径”和“链接”字段才能使菜单正常工作)。
链接(VARCHAR) 网址。告诉单击菜单时系统将去往何处。重要的。
type (VARCHAR) 判断菜单是组件还是 url(external link) ... 。(似乎,这只是一个“额外”信息——对菜单没有可见的影响)。
已发布 (TINYINT)
1 – 已发布。0 – 未发布。在前端隐藏/显示菜单。
parent_id (INT)
0-“主要项目根”值。它应该只存在一次。
1- 列出第一级的菜单项。
x- 如果此值被赋予另一个菜单的 id,那么它将自动成为子(第二级)菜单并“弹出”其父菜单。
级别 (INT) 级别应反映其在菜单层次结构中的位置。例如。如果菜单的父级为 1 级,则其级别必须为 2。如果其父级为 5 级,则必须为 6 级菜单。但 Joomla 似乎通过查看其父母来计算其实际水平并忽略此值。
component_id (INT) 组件 ID。值取自#__extensions
表。(但清空这个字段似乎没有任何效果)。
排序 (INT) 排序(标准 joomla 列)。
checked_out (INT) 签 出(标准 joomla 列)。
checked_out_time (TIMESTAMP) 退房时间(标准 joomla 列)。
browserNav (TINYINT) ?
access (INT) 非常重要的字段。
1 – 公共
2 – 仅限注册用户。
3 – 特殊用户(例如经理和管理员)
img (VARCHAR) 图像路径,如果您希望菜单具有背景图像。
template_style_id (INT) 查看与此菜单关联的页面时附加的模板 ID。
params (TEXT) 组件配置数据。
lft (INT) ?
rgt (INT) ?
home (TINYINT) Joomla 必须有一个且只有一个默认页面。这个值决定了这一点。
1 – 此页面为默认页面。
0 – 非默认值。只有一个菜单的值必须为 1。(大部分时间是“家”)。
语言 (CHAR) 菜单显示的语言。
client_id (TINYINT) 0 – 向公众开放。
1 – 后端菜单。即使给菜单一个后端菜单项作为 parent_id,如果 'client_id' 的值为 0,菜单也不会显示在管理端。但无论你在“菜单类型”字段中给出什么值,只要“client_id”值为 1,它就会显示在后端。
场景:
菜单类型 => 'main' client_id =>'1', published=> 1/0: 在这种情况下菜单只显示在后端。发布的值无效。
Menutype=> 'mainmenu', 'client_id'=>1, published=>1: 菜单在后端和前端都显示。发布的价值决定了它的知名度。'menutype' 值是否是 'main' ,'mainmenu', 'top-menu' ... 对其在后端的可见性没有影响——只有 'client_id' 很重要。
Menutype=> 'mainmenu', 'client_id'=>1, published=>0: 对管理端的效果和上面的场景一样。但在前面,菜单不可见(发布状态为 0)。