具有不同页面的 joomla 组件
Posted
技术标签:
【中文标题】具有不同页面的 joomla 组件【英文标题】:joomla component with different pages 【发布时间】:2014-10-31 04:27:35 【问题描述】:我正在为我的 joomla 网站创建一个组件(无 MVC),我希望有 2 个可以显示的 php 页面。
所以我在站点文件夹中有 myprog.php 和 myprog2.php。为了能够选择 myprog.php 将其分配给菜单,我在文件夹 /site/views/myprog/tmpl/ 中创建了一个 default.xml 文件
它包含:
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_MYPROG_DEFAULT_TITLE">
<message>
<![CDATA[COM_MYPROG_DEFAULT_DESC]]>
</message>
</layout>
</metadata>
我怎样才能为我的第二页设置这个,以便我可以选择第二页将其分配给菜单?
谢谢。
【问题讨论】:
【参考方案1】:我会使用 MVC :-) 如果你坚持, 这里有一篇关于如何在菜单实例创建中添加参数的文章: http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_06#site.2Fviews.2Fhelloworld.2Ftmpl.2Fdefault.xml
它包含:
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE">
<message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message>
</layout>
<fields
name="request"
addfieldpath="/administrator/components/com_helloworld/models/fields"
>
<fieldset name="request">
<field
name="id"
type="helloworld"
label="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL"
description="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC"
/>
</fieldset>
</fields>
</metadata>
我假设您可以将该字段更改为单选框。 您可能会在以下位置看到 joomla 可用的字段类型: http://docs.joomla.org/Standard_form_field_types (您不需要创建 onw 字段类型 - 使用无线电)
我会使用单选选项: http://docs.joomla.org/Radio_form_field_type
我想(未经测试)我会这样:
<field name="pagetoshow" type="radio" default="0" label="Select an option" description="">
<option value="0">Page this</option>
<option value="1">Page that</option>
</field>
最后你可以使用
$jinput = JFactory::getApplication()->input;
$pagetoshow = $jinput->get('pagetoshow', 1, 'INT' );
在您的 view.html.php 中并使用 if 语句显示相应的页面。
【讨论】:
感谢您的回答,我会按照您的第一个回答,尝试改为使用MVC。【参考方案2】:您需要在同一位置再创建一个与 default.xml 相同的文件。它的名称也将是布局名称。例如,它的名称是 blog.xml。当你创建这个菜单时,它会自动在url中添加layout=blog
。
由于您没有使用 MVC,因此您可以在获取值中检查布局变量并相应地工作。
如果你使用 MVC 模式,那么你只需要在视图中设置布局并创建必须以布局名称开头的 tmpl 文件。 例如:默认的 tmpl 文件和博客布局会像
default.php => blog.php
default_edit.php => blog_edit.php
【讨论】:
以上是关于具有不同页面的 joomla 组件的主要内容,如果未能解决你的问题,请参考以下文章