私はどの私は、これらのpagetypesのコードをコアに埋め込まれていると仮定していSilverStripeの非表示デフォルトpagetypes
例えばSilverStripeのデフォルトpagetypesを隠すベストプラクティス方法を理解することが仮想ページをしようとしていますむしろ手放す。そこで私は、この方法が動作することが分かってきました:これはクリーンかつ少なくともハック解決策になると思われるが、誰もがより良い方法を持っている場合、私はまだ疑問に思う
class HidePageType_VirtualPage extends Page implements HiddenClass { static $hide_ancestor = 'VirtualPage'; }
。また、このメソッドは、クラス名に基づいて新しいデータベース列を作成していますが、のページタイプを隠すという目標を考えると意味がありません。
乾杯、これは作成から同じジョブ(非表示ページタイプを行います-page-dropdown)を使用してデータベースを追加する必要はありません。私は同じことを試みましたが、 'DataExtension'の代わりに' VirtualPageExtension'を書いて500エラーがありました。 – Faloude
フォローアップの質問:管理者にエラーページを表示、作成、編集できるようにしたいが、通常のユーザーである 'content_authors'のCMS SiteTreeから完全に非表示にする。私は同じことを試みましたが、 'canView'を使っていましたが、ページはSiteTreeにまだ見えています。私は 'canView'は実際にページを開くことを無効にすると信じています(これは奇妙なことに、今度は500エラーになり、canViewはfalseにセットされます)。 – Faloude
@Faloude "canView"と "canEdit" ...の両方をオーバーライドする必要があります。 – bummzack