Blog

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]);          }      }  });

Share this entry