在此先感谢您的帮助...
我已根据需要修改了registration.xml 文件和其他文件,以便在mhy Joomla 上的注册表单中添加其他表单!地点。这些字段目前都是文本框,我想为状态等项目创建列表框。我不想输入选项和值,而是从数据库中的表中提取。
我的registration.xml文件中的这段代码有效:
<field name="statelist2" type="list"
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<option value="CT">CT</option>
<option value="MA">MA</option>
</field>
我的registration.xml文件中的这段代码不起作用,我尝试删除对数据库的调用以使页面加载一些php:
<field name="statelist"
type="list"
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<?php
$x = "CT";
$z = "NY";
echo "<option value='" . $x. "'>" . $x . "</option>";
echo "<option value='" . $z. "'>" . $z . "</option>";
?>
</field>
我的问题:1)我必须将代码放在哪里(在什么文件中)才能创建列表框或用潜在值填充它?
2) 为了利用现有的 Joomla! 框架,我在 registration.php 文件中看到了一些用于 loadFormData 和 getData 的函数 - 我可以在其中放置代码以在呈现后填充注册表单中的项目吗?我在想这样的事情,但不确定。
<?php
//init Joomla Framework
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', realpath(dirname(__FILE__).DS.'..' ));
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
//DBQuery
$database =& JFactory::getDBO();
$query = "SELECT * FROM #__tbl_State;";
$database->setQuery($query);
//$result = $database->query();
$items = ($items = $db->loadObjectList())?$items:array();
//print_r($result);
?>