登録日
2017年5月9日

メンバー検索

  

KMiura

名前(ニックネーム)
KMiura
自分のconcrete5サイト
ホームページ
自己紹介
concrete5.org のユーザー名
concrete5 Slack Team ID
Twitterアカウント
フォーラム総投稿数
8

コミュニティバッジ

投稿

1から8までを表示 (計8)

Re: 編集モードで作成した空エリアに関して

エリアの削除についてはこちらのサイトがとても分かりやすいです。
カラムの追加についても削除の操作の中でメニューが出てくるので分かると思います。

http://wordpress.go-designing.com/archives/1043

Posted on 8月 10, 2017 at 4:41 午後

ページタイプのコンポーザーフォーム要素を手動で出力したい

いつもお世話になっております。

ページタイプでセットしたコンポーザーフォーム要素をページの編集モードから表示させたいと思っており、その方法についてご質問させていただきます。

◆環境情報
# concrete5 Version
Core Version - 8.1.0
# Server Software
Apache/2.4.6 (CentOS 7) PHP/5.6.30

◆質問
前準備が長くて恐縮ですが、手順を追って説明させていただきます。

①「ブログ記事」という名のページタイプを作成
②ブログ記事ページタイプの「フォームを編集」機能で「コントロールセット」を追加し、「記事」ブロックを設定する
③ブログ記事ページタイプの「出力」機能で「コンポーザーコントロール」ブロックをページ内に配置し、②で作成した記事ブロックが出力できるようにする
④「新しいページの追加」で①で作成したブログ記事ページタイプを選択し、コンポーザーから「8月10日のブログ」ページを作成する

上記①~④の手順で作成した「8月10日のブログ」ページにはコンポーザーフォーム要素の「記事」のみが表示されています。

さて、ここでブログ記事ページタイプの出力でコンポーザーフォーム要素の「記事」ブロックを削除したとします。
グローバルブロックのため④で作成した8月10日のブログページでも記事が消えてしまいます。

そこで、もう一度ブログ記事ページタイプの出力で③と同じようにコンポーザーコントロールブロックで「記事」を配置してみます。
仕様上、子ページに対して自動でコンポーザーコントロールは表示されないため、④で作成した8月10日のブログページは記事のないままです。


ここまでは理解しました。


ここからが本題なのですが、
④で作成した8月10日のブログページを編集モードにし、コンポーザーを開くと「記事」のデータはしっかりと残っています。
この記事データをページに表示させたいと思っているのですが、編集モードでは「コンポーザーコントロール」ブロックが表示されないため、手動で配置ができません。

ページタイプのコンポーザーフォーム要素を表示させる方法はございませんでしょうか。
(もしかしてカスタムラベルを使ってプログラムから表示させないとできないのでしょうか・・・)

Posted on 8月 10, 2017 at 11:55 午前

Re: プログラムから特定のユーザに対してトピック属性を追加したい

お早いご教示ありがとうございます。
理解が乏しくお恥ずかしい限りです。
おかげ様で下記のような感じでトピック属性の更新ができました。ありがとうございました。

use Concrete\Core\Tree\Node\Type\Topic as TopicNode;

public function addTopic()
{
$u = new User();
$ui = UserInfo::getByID($u->getUserID());

// リセット
$ui->clearAttribute('属性ハンドル');

// セット
$tn = new TopicNode();
$ui->setAttribute('属性ハンドル', $tn->getNodeByName('トピック名'));
}

Posted on 7月 05, 2017 at 9:56 午前

プログラムから特定のユーザに対してトピック属性を追加したい

お世話になっております。

◆環境情報
# concrete5 Version
Core Version - 8.1.0
# Server Software
Apache/2.4.6 (CentOS 7) PHP/5.6.30

◆目的
プログラムから特定のユーザに対してユーザ属性のトピックを追加したい。

◆質問
上記の目的の通りなのですが、プログラム上から特定のユーザに対してトピック属性の追加を行いたいと考えております。
具体的には下記のメソッドを利用しているのですが、$value値に渡す配列の形式がわからないでおります。

ドキュメントでは文字列でもできるようなのですが、実際に文字列でトピックを渡すとエラーとなりました。
配列にして渡すとエラーは解消されるのですが、内容が間違っているようで属性の追加はされませんでした。
どのような配列で渡してやればよいのかご教示いただけると幸いです。


以下、concrete5 5.7 API のドキュメントより抜粋

http://documentation.concrete5.org/api/source-class-Concrete.Core.User.UserInfo.html#699-712
$ui->setAttribute(mixed $ak, $value)

/**
* Sets the attribute of a user info object to the specified value, and saves it in the database.
*
* @param UserAttributeKey|string $ak
* @param mixed $value
*/
public function setAttribute($ak, $value)
{
if (!is_object($ak)) {
$ak = UserAttributeKey::getByHandle($ak);
}
$ak->setAttribute($this, $value);
$this->reindex();
}


よろしくお願いいたします。

Posted on 7月 04, 2017 at 7:49 午後

自身が所属するグループIDから親・子のグループIDを取得したい

お世話になっております。

◆環境情報
# concrete5 Version
Core Version - 8.1.0
# Server Software
Apache/2.4.6 (CentOS 7) PHP/5.6.30

◆目的
自身が所属しているグループのIDから親・子となるグループのグループIDを取得したい。

◆質問
例えば、下記のようなグループ構成を作成した場合に、
編集者AグループのグループIDから閲覧者AAグループと閲覧者BBグループのグループIDを取得したり、
閲覧者AAグループのグループIDから編集者AグループのグループIDを取得したいと考えております。

すべてのグループ
└ゲスト
└登録ユーザー
└管理者
 └編集者A
  └閲覧者AA
  └閲覧者AB
 └編集者B


管理画面>メンバー>ユーザーグループの一覧でグループがツリー表示されており、
DBではツリー構造を保持しているようなので、APIが提供されていると予測しているのですが
管理画面のソースを見ていてもどのメソッドを利用しているのかが分からなかったためこちらでご質問させていただきました。

Concrete\Core\Tree\Type\Group


このあたりのAPIを利用して最上位のグループID(ゲストや管理者)については取得できたのですが、
下の階層のグループIDの取得方法が分からないでおります。

よろしくお願いいたします。

Posted on 6月 06, 2017 at 3:54 午後

Re: 間違って設定した多言語化を解除したい

管理画面のライトメニューより「Dashboard>System & Settings>Basics>Languages」を開き、
「Default Language」を「Japanese」にすることでサイト全体の既定の言語を日本語に変更することができますが、
こちらの設定ではいかがでしょうか。

Posted on 6月 06, 2017 at 3:36 午後

Re: getUserGroupsメソッドでグループ名を取得したい

ありがとうございます!
ドキュメントのバージョン違い失礼しました。
教えていただいたドキュメントを参考に無事に取得することができました。

ビュー(/concrete/single_pages/members/directory.php)の記述

<?php
$ids = array_keys($user->getUserObject()->getUserGroups());
foreach($ids as $id) {
$group = \Group::getByID($id);
echo $group->getGroupDisplayName() . "<br>";
}
?>


画面表示
登録ユーザー
ゲスト

Posted on 5月 11, 2017 at 9:43 午前

getUserGroupsメソッドでグループ名を取得したい

お世話になっております。

◆環境情報
# concrete5 Version
Core Version - 8.1.0
# Server Software
Apache/2.4.6 (CentOS) PHP/5.6.30

◆目的
メンバー一覧ページ(http://ドメイン/index.php/members/directory)上でグループ名をリスト内に表示したい。

◆質問
下記は、認証:ユーザーオブジェクトに記載のあるgetUserGroupsメソッドの解説の抜粋となります。

$groups = $u->getUserGroups()

ユーザーオブジェクトが所属する、グループIDをキー、グループ名を値としたグループの連想配列を返します。


こちらではグループIDをキーとした連想配列でグループ名が取得できると記載がございます。
実際に試してみると、確かに連想配列は取得できたのですが、キーと値が共にグループIDとなってしまいました。
何か利用方法で問題ございますでしょうか。

ビュー(/concrete/single_pages/members/directory.php)の記述
<td>
<?php print_r($user->getUserObject()->getUserGroups()); ?>
</td>


画面表示
Array ( [2] => 2 [4] => 4 [9] => 9 [1] => 1 )

Posted on 5月 10, 2017 at 2:14 午後