我在 Joomla 的管理面板中向我的用户创建表单添加了一个下拉列表!1.5(使用 .xml 文件)。我遇到的问题是它的内容必须是动态的(来自外部源文件)。我的问题是我可以在哪里(以及如何)做到这一点。
问问题
1555 次
3 回答
2
您可以创建自己的类型。在您的 default.xml 中,您将拥有如下内容:
<url addpath="/administrator/components/com_componentname/elements/">
<param name="id" type="myType" default="0" label="SELECT_LABEL" description="SELECT_DESC" />
</url>
并作为 /administrato/components/com_componentname/elements/myType.php 中的实现
class JElementmyType extends JElement {
var $_name = 'myType';
function fetchElement($name, $value, &$node, $control_name)
{
$list = READ_FILE_OR_DB_OR_ANYTHING();
array_unshift($list, JHTML::_('select.option', '0', '-'.JText::_('Select Me').' -', 'value', 'text'));
return JHTML::_('select.genericlist', $list, ''.$control_name.'['.$name.']', 'class="inputbox"', 'value', 'text', $value, $control_name.$name );
}
}
于 2013-01-21T07:53:37.233 回答
0
如果您使用的是 xml 表单,则可以使用 sql 类型字段。
<param name="user" type="sql" default="" label="Select an User" query="SELECT id, username FROM #__user" key_field="id" value_field="username" />
于 2013-01-20T13:07:50.743 回答
0
我有这个问题 - 就像你告诉我的那样,我的代码如下所示:
<?php
jimport( 'joomla.html.html.select' );
class JElementKlasa extends JElement {
var $_name = 'Klasa';
function fetchElement($name, $value, &$node, $control_name)
{
$list = array(1=>'a', 2=>'b');
$options = array();
foreach($list as $key=>$value)
$options[] = JHTML::_('select.option', $key, $value);
//array_unshift($list, JHTML::_('select.option', '0', "Take it"));
return JHTML::_('select.genericlist', $options, 'klas', '', 'value', 'text');
}
?>
但它没有出现在那里 - 它实际上为它腾出了空间,但它是空的:(同时我会继续尝试修复它。
于 2013-01-21T20:45:28.047 回答