私はあなたがよく理解していればユーザ属性が必要です。 UserInfo
に自動的に保存され、オプションを正しく設定すると、ユーザーアカウントページ/ユーザー追加ページに表示されます。
次のすべてのコードは、/application/controllers
のコントローラファイル、またはパッケージ内の方が良いことに注意してください。パッケージを作成する方法はよく文書化されていますhere。そうすれば、サイトは問題なく更新できます。
ユーザー属性(この場合はドロップダウン)に充填されるDBテーブル、または他のソースから動的な値を使用して連想配列は:
$options = array(
'foo' => 'Foo',
'bar' => 'Bar',
'baz' => 'Baz'
);
パラメータ属性:
$selectArgs = array(
'akHandle' => 'my_select',
'akName' => t('my Select'), // t() is for translation
'uakProfileDisplay' => true, // Will be displayed on the Users Profile page
'uakMemberListDisplay' => true, // Will be displayed on the dashboard members page
'uakProfileEdit' => true, // A memeber is able to edit the attribute
'uakProfileEditRequired' => true, // The attribute MUST be filled with a value
'uakRegisterEdit' => true, // Will be displayed on the Register Page
'uakRegisterEditRequired' => true, // The attribute MUST be filled with a value upon registration
'akIsSearchableIndexed' => true, // The attribute will be indexed (searchable)
'akSelectAllowOtherValues' => false, // A user may add/remove other options to the select attribute
'akSelectOptionDisplayOrder' => 'alpha_asc', // the display order
'akIsSearchable' => true // one can search by these options
);
使用クラス:
use \Concrete\Core\Attribute\Type as AttributeType;
use UserAttributeKey;
use Concrete\Attribute\Select\Option;
Defi NE属性タイプ:
$attrSelect = AttributeType::getByHandle('select');
チェック属性がすでに存在していない場合は、それを作成した場合:
$mySelect = UserAttributeKey::getByHandle($selectArgs['akHandle'])
if(!is_object($mySelect)) {
UserAttributeKey::add($attrSelect, $selectArgs);
$mySelect = UserKey::getByHandle($args_address['akHandle']);
}
を最後にSELECT INTOオプションを入力します。
foreach($options as $value) {
Option::add($mySelect, t($value));
}
を