【问题标题】:Joomla menu linked with component, wrong default link addressJoomla 菜单与组件链接,默认链接地址错误
【发布时间】:2014-01-20 16:06:53
【问题描述】:

我正在构建一个名为 event 的 joomla 组件,并且我设置了一个名为 event 的菜单链接到该组件。当我点击菜单链接时,它引导我的不是默认的事件列表页面,而是事件注册页面。我想知道怎么了。

这里是controller.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import Joomla controller library
jimport('joomla.application.component.controller');


class EventController extends JControllerLegacy
{
    function display() { 
            $this->listing();
    }

    function listing() {


             JRequest::setVar( 'view', 'listing' );
             JRequest::setVar( 'layout', 'default' );
             parent::display(); 
    }

    function edit() {

             JRequest::setVar( 'view', 'edit' );
             JRequest::setVar( 'layout', 'default' );
             parent::display(); 

    }

    function save() {
            $model= & JModelLegacy::getInstance('Event','EventModel');
            $model->save_event();
    }

    function register() {

             JRequest::setVar( 'view', 'register' );
             JRequest::setVar( 'layout', 'default' );
             parent::display(); 

    }
    function register_save() {
            $model= & JModelLegacy::getInstance('Event','EventModel');
            $model->register_event();
    }



}//end 

菜单链接是

http://www.example.com/Joomla_3.2.1/index.php?option=com_event&view=register&Itemid=481

而不是

http://www.example.com/Joomla_3.2.1/index.php?option=com_event

默认显示列表页面。

【问题讨论】:

  • 菜单链接中的url是什么(不是sef,是存储的动态的)。
  • 您必须按照@Elin 的上述评论检查您的菜单项的链接
  • option=com_event&view=register&Itemid=481 这是一个指向注册视图的链接...所以您希望它转到注册页面 com_event/views/register/view.html.php。你有一个名为 com_event/views/listing 的文件夹吗?

标签: php joomla


【解决方案1】:

您应该为listing 视图创建清单;在 Joomla!通常我们将菜单项映射到视图。在 router.php 中,您可以选择取消设置您不需要且不希望显示 url 的任何参数。

组件控制器中的任务通常用于组件内调用,执行后应重新路由到视图。应该在视图上调用组件路由器,以便为视图显示漂亮的 SEF url。 注意: router.php 仅在您向视图传递参数时才是必需的,例如,请参阅 com_content 文章视图,它接收id 参数。如果您没有参数,则无需自定义 router.php,因为 Joomla 将生成包含视图和布局的 url。

要将清单添加到视图布局,例如/views/listing/tmpl/default.php,只需创建一个xml 文件default.xml。当用户创建新菜单项时,您需要为您打算提供的任何视图布局创建清单。只需添加 XML 清单,即可在菜单项配置中使用新布局。

在该文件中,您可以在字段周围使用 &lt;fieldset name="request"&gt; 包装器设置额外的请求参数。

链接由 Joomla 生成,而不是由您的组件生成。您只负责处理您的部分参数,因此选项和 ​​Itemid 将由 Joomla 处理,您应该在 router.php 中处理任何其他参数(位于组件的根目录中,即 /components/com_listings/router.php

【讨论】:

  • 我已经安装了组件,如何在组件中添加manifest文件?谢谢!
  • COM_EXAMPLE_SUBMENU_ANOPTION中,如何输入链接?
  • router.php在哪里?
  • 我扩展了答案
  • 嘿,谢谢你的回答,但是我应该在
    包装器中写什么?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 2017-12-06
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多