ご協力いただきありがとうございます...
mhy Joomla! の登録フォームにフォームを追加するために、registration.xml ファイルとその他のファイルを必要に応じて変更しました。サイト。現在、フィールドはすべてテキスト ボックスであり、状態などの項目のリスト ボックスを作成したいと考えています。オプションと値を入力するのではなく、データベースのテーブルから取得します。
私の 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 ファイルのこのコードは機能しません。DB への呼び出しを削除して、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);
?>