concrete5で新規ページの公開時に公開先をユーザーごとに変更したい
Posted by admin at 23:50 日時 2015/08/06
対象:5.7.5以上
/application/bootstrap/app.php に下記コードを追記し、on_page_type_publich イベントにフックすることで、新規ページの公開時に、公開先の親ページを自動で変更することができます。
Events::addListener('on_page_type_publish', function($event) { $u = new User(); /* @var \Concrete\Core\Page\Page */ $page = $event->getPageObject(); /* @var \Concrete\Core\Page\Type\Type */ $pt = $page->getPageTypeObject(); // ブログ記事タイプの場合 if ($pt->getPageTypeHandle() == 'blog_entry') { // ログインユーザーと同じ所有者のブログアーカイブを探す $pl = new PageList; $pl->ignorePermissions(); $pl->filterByPageTypeHandle('blog'); $pl->filterByUserID($u->getUserID()); $pages = $pl->getResults(); // ある時 if (is_array($pages) && count($pages) > 0) { // 動かす $page->move($pages[0]); } } });