パッケージ内でユーザ属性の追加方法について

2015年3月24日 at 20:59

パッケージを利用して、テーマ、ブロックなどをまとめているのですが、
「ユーザ属性」「グループセット」などもパッケージから追加する事は可能でしょうか?
※ 管理したい「ユーザ属性」が15 ~ 20あるので、できればパッケージ内で管理したいと思いまして

よろしくお願いします。

-------------------
concreteは「5.6.3.3」を利用しています。

タグ:

Re: パッケージ内でユーザ属性の追加方法について

2015年3月24日 at 21:43
基本的に、concrete5のオブジェクトにはほとんど add() メソッドがありますので、それを使うことができます。

グループセットの場合

$pkg = Package::getByHandle('your_package_handle');
GroupSet::add('Example Group Set', $pkg);

ユーザー属性の場合

<?php
$akTypeHandle = 'text';
$pkg = Package::getByHandle('your_package_handle');
$args = array(
'akHandle' => 'example_attribute',
'akName' => 'Example Attribute',
'akIsSearchableIndexed' => 0,
'akIsSearchable' => 1,
'uakProfileDisplay' => 1,
'uakProfileEdit' => 1,
'uakProfileEditRequired' => 1,
'uakRegisterEdit' => 1,
'uakRegisterEditRequired' => 0,
'uakMemberListDisplay' => 0
);

UserAttributeKey::add($akTypeHandle, $args, $pkg);

http://gist.github.com/hissy/510fb0643e6c47136e35
 

Re: パッケージ内でユーザ属性の追加方法について

2015年3月25日 at 16:44
hissyさん

記載頂いた内容をコピペしてら問題なく動作しました!
「c5_boilerplate」のcontroller.phpを参考に見よう見まねでやっていたので、根本をまだ理解してませんでした(^^;

ありがとうございました!
 

Re: パッケージ内でユーザ属性の追加方法について

2015年3月25日 at 11:06
ユーザー属性以外にも追加したいこともあると思います。
concrete5のパッケージの骨組みをgithubで公開されていますので紹介します。
これは、シングルページや属性などいろんなもの追加するサンプルです。
http://github.com/herent/c5_boilerplate

ユーザー属性はこのあたりに記述されています。
http://github.com/herent/c5_boilerplate/blob/master/controller.php#L577

参考になればと思います。
 

Re: Re: パッケージ内でユーザ属性の追加方法について

2015年3月25日 at 16:54
acliss19xxさん

フォローありがとうございます。

「c5_boilerplate」を参考にはしていましたが、上記記載した通り、トップディレクトリのcontroller.phpの上っ面しか確認しないまま、質問してしまいましたm(_ _)m

しかも、上級権限モードをONにしていなかったので...な状態でした。

「c5_boilerplate」をもう少し、確認してみます。
ありがとうございますした!