直接在DB中添加新组件的Joomla菜单(Joomla 2.5)

时间:2013-06-17 07:24:07

标签: php joomla joomla2.5 joomla-extensions

我想在开发阶段为新组件添加菜单。由于它还没有准备好安装,我没有创建manifest(xml)文件。我只想直接从数据库中添加后端组件中的菜单项。

我收到了信息here。但它适用于joomla 1.5 - 它提到的表格在joomla 2.5中不存在,所以(显然)它不起作用。

在joomla 2.5中做同样事情的想法吗?

2 个答案:

答案 0 :(得分:4)

在尝试`#__ menu`表后,我发现了许多有趣的功能。

joomla安装数据库中有一个名为#__menu的数据库表。每列的功能如下所述。

<小时/> id(INT) 主键。
标题(VARCHAR) 显示菜单名称。非常重要的领域。
菜单类型(VARCHAR) *说明菜单是“主菜单”,“顶层菜单”,“左菜单”.... 管理员菜单应该具有“主要”值。但是它们是否显示在后端是由'client_id'字段决定的(见下文),而不是这里。*
别名(VARCHAR) 'title'的别名。但如果填充或不填充它不会产生任何影响。我尝试填充它并将“标题”字段留空。然后菜单变成空白。但是,如果我将“别名”留空并填写“标题”,则菜单会显示文字。
note(VARCHAR) 备注(或备注)。
路径(VARCHAR) 要在浏览器地址栏中显示的路径名称。它不必与“链接”信息相关。 (但必须填写“路径”和“链接”字段才能使菜单正常工作)。
link(VARCHAR) 网址。告诉单击菜单时系统的位置。重要。
type(VARCHAR) 判断菜单是否为组件或网址(外部链接).... (似乎,它只是一个'额外'信息 - 菜单上没有明显的效果。)
已发布(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)
访问(INT) 非常重要的字段。
1 - 公众
2 - 仅限注册用户。
3 - 特殊用户(例如经理和管理员)

img(VARCHAR) 图片路径,如果您希望菜单中有背景图片。
template_style_id(INT) 在查看与此菜单相关联的页面时附加到的模板ID。
参数(TEXT) 组件配置数据。
lft(INT)
rgt(INT)
主页(TINYINT) Joomla必须拥有一个且只有一个默认页面。该值决定了这一点。
1 - 此页面是默认的。
0 - 不是默认值。 只有一个菜单必须具有值1.(大多数时间'家')。
语言(CHAR) 菜单显示的语言。
client_id(TINYINT)
0 - 向公众开放。
1 - 后端菜单。 即使菜单的后端菜单项为parent_id,如果'client_id'的值为0,菜单也不会显示在管理端。 但无论您在“菜单类型”字段中给出什么值,只要“client_id”值为1,它就会显示在后端。



方案:
菜单类型=&gt; 'main'client_id =&gt;'1',已发布=&gt; 1/0:在这种情况下,菜单仅显示在后端。公布的价值无效。

Menutype =&GT; 'mainmenu','client_id'=&gt; 1,已发布=&gt; 1:菜单显示在后端和前端。已发布的值确定其可见性。 'menutype'值是'main','mainmenu','top-menu'......对后端的可见性没有影响 - 只有'client_id'很重要。

Menutype =&GT; 'mainmenu','client_id'=&gt; 1,已发布=&gt; 0:对管理员方面的影响与上述方案相同。但在正面,菜单不可见(已发布状态为0)。

答案 1 :(得分:1)

试试这个,

在Joomla 1.6之后,组件详细信息存储表为#__extensions

您也设置了详细信息#__menu表。

希望这可以帮到你..