如何将菜单项指向组件的任务?
How do I point a menu item to a component's task?
如何将 Joomla 菜单项指向自定义组件中的特定任务?我可以毫不费力地创建指向我的视图的菜单项,并且当我在菜单中 select 我的组件时,每个视图都在列表中可用。但是我还没有找到将菜单路由到我的组件任务之一的方法。
在某些情况下,我使用控制器方法(即任务)来决定向用户呈现哪些模型和视图。通常这是当我需要显示来自多个模型的数据,或者我需要使用会话状态中的信息来确定哪个视图适合用户时。在这些情况下,我需要一个指向任务的菜单项。
那么,如何获取菜单项以将用户带到 "index.php?option=com_mycomponent&task=do.something"?
你问我已经尝试了什么?我几乎查看了所有我能找到的 Google 参考文献,none 似乎解决了这个问题。我要么在寻找错误的东西,要么它太容易了,没有人需要寻求帮助。我还查看了 Joomla 组件和菜单项,没有找到指向控制器任务的菜单项示例。
您可以向请求字段集中添加一个字段。将其命名为任务。该值为 "do.something"。使字段 type="hidden"
。
我建议隐藏,因为您确实不希望用户能够更改它。
请求字段集用于直接进入 url 的字段,格式为 &name=value
.
我发现上面的答案不够灵活,最后发现它可以完美地工作,您可以覆盖菜单项形式 xml ( administrator/components/com_menus/models/forms/item.xml ) 并使 link 字段可编辑,因此您可以添加任何您想要的请求参数,包括任务。
确保 leave/add 请求的视图名称,否则无法确定 link 类型,因此即使不相关也请添加它,例如。 &view=你的观点。
查看下面的系统插件onContentPrepareForm
function onContentPrepareForm(&$form, $data) {
$option = JFactory::getApplication()->input->get('option');
// allow us to edit the link field of the menu item for this component to include some custom request values
if($option == 'com_menus' && $data->type=='component' && $data->request['option']=='com_your_component_name'){
$form->setFieldAttribute('link','readonly','false');
}
}
如何将 Joomla 菜单项指向自定义组件中的特定任务?我可以毫不费力地创建指向我的视图的菜单项,并且当我在菜单中 select 我的组件时,每个视图都在列表中可用。但是我还没有找到将菜单路由到我的组件任务之一的方法。
在某些情况下,我使用控制器方法(即任务)来决定向用户呈现哪些模型和视图。通常这是当我需要显示来自多个模型的数据,或者我需要使用会话状态中的信息来确定哪个视图适合用户时。在这些情况下,我需要一个指向任务的菜单项。
那么,如何获取菜单项以将用户带到 "index.php?option=com_mycomponent&task=do.something"?
你问我已经尝试了什么?我几乎查看了所有我能找到的 Google 参考文献,none 似乎解决了这个问题。我要么在寻找错误的东西,要么它太容易了,没有人需要寻求帮助。我还查看了 Joomla 组件和菜单项,没有找到指向控制器任务的菜单项示例。
您可以向请求字段集中添加一个字段。将其命名为任务。该值为 "do.something"。使字段 type="hidden"
。
我建议隐藏,因为您确实不希望用户能够更改它。
请求字段集用于直接进入 url 的字段,格式为 &name=value
.
我发现上面的答案不够灵活,最后发现它可以完美地工作,您可以覆盖菜单项形式 xml ( administrator/components/com_menus/models/forms/item.xml ) 并使 link 字段可编辑,因此您可以添加任何您想要的请求参数,包括任务。
确保 leave/add 请求的视图名称,否则无法确定 link 类型,因此即使不相关也请添加它,例如。 &view=你的观点。
查看下面的系统插件onContentPrepareForm
function onContentPrepareForm(&$form, $data) {
$option = JFactory::getApplication()->input->get('option');
// allow us to edit the link field of the menu item for this component to include some custom request values
if($option == 'com_menus' && $data->type=='component' && $data->request['option']=='com_your_component_name'){
$form->setFieldAttribute('link','readonly','false');
}
}