登録日
2016年2月25日

メンバー検索

  

g_snoopy

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

コミュニティバッジ

投稿

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

Express データオブジェクトのエントリーから選択属性の値を取得する方法

お世話になります。

concrete5 5.2.1
PHP 5.6.32

上記環境で開発を行っているのですが、選択属性とテキスト属性をもつExpressデータオブジェクトを作成しエントリーを追加しています。
その状態で、そのエントリー情報が必要なページからデータを取得するさい、選択属性の取得方法がわからず躓いています。

テキスト属性読み込みの処理としては、
(テキスト属性のハンドル[text_obj]、選択属性のハンドル[select_obj])

$entity = Express::getObjectByHandle('hogehoge');
$list = new Concrete\Core\Express\EntryList($entity);

$entries = $list->getResults();

$text_data = array();

foreach($entries as $entry) {
 array_push($text_data,$entry->getTextObj();
 // A
}

で、取得できます。また、選択属性も、Aの位置に
echo $entry->getSelectObj();
で表示させることはできました。

しかし、echo表示させることはできるのですが、別の変数などに格納する方法がわかりません。
何かしらのコントローラーを呼んで処理する必要があるのでしょうか?

ご教示よろしくお願いします。

Posted on 11月 21, 2017 at 3:58 午後

Re: [5.6]自動実行ジョブ処理で各ページの言語設定に沿った処理

Katz さん返信ありがとうございます。

説明が具体的でなかったですね。。。。。

localizerは組み込み済みです^^

具体的には、
1.外部サーバーよりjson取得
2.内部のページに設定された選択型属性のリスト値を取得(a
3.a)の並び順にjson情報を整形
4.a)の表示文字列とjson情報を合成しページのTEXT型属性へserialize

と言う処理を行っています。

その際、4の処理を行うときに"$hoge->getSelectAttributeOptionValue()"の値を
ページの言語で取得する方法があればご教授いただけないでしょうか?

現状Katzさんの仰るとおり、サイトのメイン言語設定(日本語)で取得されてしまいます。
日・英のみであれば、
$ms = MultilingualSection::getBySectionOfSite($page);
if (is_object($ms)) {
$locale = $ms->getLocale();
}
の処理で$locale=ja_JPかen_ENで判断し、
"getSelectAttributeOptionValue()"か"getSelectAttributeValue()"を
使い分ける方法もあるのですが、、

まぁ、設計そのものを失敗している気もしますが。。。

もしページの言語毎に取得する方法があればと思い質問させていただきました。

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

Posted on 1月 14, 2017 at 4:34 午後

[5.6]自動実行ジョブ処理で各ページの言語設定に沿った処理

お世話になります。

使用Version:5.6.3.4

多言語対応サイトを組み込んだconcrete5上の各ページに、
外部サーバーからデータを読み込み、処理した値を属性へセットするように
自動実行ジョブで処理を行おうとしております。

読み込まれたデータをページの言語に合わせて処理を行い、ページの属性へセットするのですが
その際に「t()」のトランレースと用い各ページの言語へローカライズしてセットしたいと考えています。

同様の処理を通常のテンプレート描画時などに組み込んだ際は「t( )」でトランスレートした
各言語の文字列に変わっているようなのですが、ジョブで処理した際は
すべて日本語で処理されてしまい、他言語ページでの表示に問題が発生しています。

ジョブをページに設定された言語に基づいて処理させることは可能でしょうか?

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

Posted on 1月 14, 2017 at 4:29 午前

Re: Re: ワークフローの通知動作(宛先)について ver5.6

回答ありがとうございます。

現状対応は難しく、また5.6系は旧バージョンのため対応の可能性は低い。
今後対応されるとするならば、5.8系以降のバージョンである。

ということで理解しました。

標準的な処理範囲内では難しい事は分かったのですが、可能性として
ワークフローの処理決定時にページ所有者へメール送信するプラグインなどは無いのでしょうか?
または、ワークフロー部分のPHPで、該当ページ所有者へメールをポストする事は可能でしょうか?

よろしくお願いします。

Posted on 8月 26, 2016 at 10:02 午前

ワークフローの通知動作(宛先)について ver5.6

お世話になっております。
◆質問◆

ページ作成・編集作業にあたり、ワークフローを組み込んでいますが
ページの承認、拒否時にページ作成者に対してのみ通知メールが送信されるよう変更したい。

現状、ワークフローの通知先選択では、「ユーザー(単独)」か各種「グループ」の選択しか出来ず
動的な特定ユーザー(ページ作成者・所有者)が選択出来ません。

ご回答よろしくお願いします。

◆環境◆
Version 5.6.3.3

Posted on 8月 23, 2016 at 11:11 午前

Re: Internationalization - 1.3 アドオンの動作について

返信ありがとうございます。

なるほど、単純には無理なのですね〜

クライアントの都合上5.6以上にあげることも出来ない上、
リンクにはアンカーも含まれいるため、JavaScriptなりで
ゴリゴリ対応しようと思います。

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

Posted on 3月 04, 2016 at 4:11 午後

Internationalization - 1.3 アドオンの動作について

# concrete5 Version
5.6.3.3

==質問内容==
Internationalization アドオンを使用しての多言語対応サイト作成時の動作について。
元ページに記事ブロックで「ページへのリンクを挿入」を用いてリンクを作成した場合、
アドオンで作成された別言語の同ページで書き換えされない。

例えば、
日本語ページ中で下部ページへのリンクを挿入し、英語版Treeにコピーした状態で
英語版の同ページで対象リンクを選択すると日本語のページへリンクされる。


これは仕様でしょうか?また回避する方法などはありますでしょうか?

ご教示よろしくお願いします。

Posted on 2月 25, 2016 at 3:51 午後