ページリストにゲストからの表示非表示の判別を出したい

2015年4月25日 at 16:11

こんにちは、初めまして。お世話になっております。
今年に入ってconcrete5を初めてサイト構築に導入いたしました。

クライアントから、現在ゲストから表示されているページがどれかが一目でわかるようにして欲しい、との要望があり、ページリストにゲストから表示or非表示を出したいです。
ページリストのカスタムテンプレートは現在テーブルで
タイトル/最終更新日/最終更新者
等の表示まではうまくいっております。

$access_user = $page->getPermissionAccessObject();
で出来るかなと思い入れて見ましたが、うまく表示されませんでした。
どのようにすれば良いか、ご教示いただけますでしょうか?

バージョンは5.6.3.3です。
スキルはHTML,CSS,JSで、PHPは少しだけわかります。

どうぞよろしくお願いいたします。

タグ:

Re: ページリストにゲストからの表示非表示の判別を出したい

2015年4月25日 at 17:36
権限関係のコードは、複雑に抽象化されていて把握するのが大変ですし、説明するのも難しいので、コードだけ置いておきますね。

$pk = PermissionKey::getByHandle('view_page');
$pk->setPermissionObject($page);
$pa = $pk->getPermissionAccessObject();
if (is_object($pa)) {
$pe = GroupPermissionAccessEntity::getOrCreate(Group::getByID(GUEST_GROUP_ID));
$ae = array($pe);
if ($pa->validateAccessEntities($ae)) {
echo '公開';
} else {
echo '非公開';
}
} else {
echo 'ページ以外(外部リンク)';
}
 

Re: ページリストにゲストからの表示非表示の判別を出したい

2015年4月25日 at 17:51
hissy様

早速のお返事、ありがとうございます!!
view.phpに入れて見ましたところ、綺麗に表示されました!
これで背景とかグレーにしちゃえば、とてもわかりやすくてお客様にも喜んでいただけると思います!

本当に助かりました。
ありがとうございました!
 

(再度質問です)Re: ページリストにゲストからの表示非表示の判別を出したい

2015年4月25日 at 19:59
すみません、本当にお手数おかけいたしますが、ページリストで表示はしてみたものの、ページの表示順がかなりばらばらでサイトマップ順にならず、オートナビで表示することになりました。

オートナビに同じように入れて見たのですが、全て「非公開」になってしまいました。
$pk->setPermissionObject($page);
の$pageを$niに変えてみたりしたのですが、エラーになってしまい、、、。

大変恐縮ですが、再度、どこを変えたらよいか、教えていただけますでしょうか?
申し訳ありません。。。
 

Re: ページリストにゲストからの表示非表示の判別を出したい

2015年4月25日 at 21:46
$ni->cObj です。
 

Re: Re: ページリストにゲストからの表示非表示の判別を出したい

2015年4月26日 at 9:42
重ね重ね、ありがとうございます!
該当箇所、
$pk->setPermissionObject($ni->cObj);
で動きました!

大変お世話になりました。