2016-03-29 18 views
2

私は最近新しい仕事を始めました。その仕事の一部として私は銀ストライプのウェブサイトを継承しました。サイトを構築するために雇った以前の開発者は、19種類のページタイプを持っていて、それらの1つを直接編集する必要があります。Silverstripe Page Type Missing

私はthemes/default/templates/layoutに移動し、.ssテンプレートのうち15個を見つけましたが、必要なのはそこにありません。.ssファイルをsilverstripeに置くことができるディレクトリ構造のどこかにありますか?

答えて

3

PHPを使い慣れている場合は、クラスが継承されるのと同じように、テンプレートが継承されるので、ページまでのクラス階層の名前に従ってください。その後、

あなたが(すべての継承プログラミングをベースまたはクラス)PHPに慣れていない場合は、長い話を短く:それはPage.ss

https://docs.silverstripe.org/en/3.3/developer_guides/templates/template_inheritance/

を見て、おそらく、存在しない別のテンプレートを使用するようにデフォルト設定されます
1

.ssテンプレートファイルは、他の場所にいくつかあります。 (あなたが言及している)

まずthemes/default/templates/layout

第二:themes/default/templates/

サード:mysite/code/... - それは次のようになりますので、時々、開発者は、ここで 'テンプレート' フォルダを作成することもmysite/code/templates

第4: ...

あなたのコードエディタ/ IDEには、.ssファイルのプロジェクト検索を行い、まだ見つからないものを見つけるはずです。うまくいけば、それは役立ちます:)

0

迅速かつ汚いソリューション:

  1. を使用している実際テーマは何ですか?非常にトップ編集でthemes/default/templates/Page.ss
  2. それをして書き込み:これで
  3. アームド(それは本当に 『デフォルト』と言う)をオープン(CMS」 『設定』エリアをチェックしてみてください)すべてのことを考えると<h1>$ClassName</h1>
  4. pagetypeがPage.ssを使用している場合は、どのURLに行くかは関係ありません。先頭には<h1>というマークアップが表示されます。このマークアップには、pagetypeのクラス名が含まれています。そこから

、他のポスターが指摘しているとして、あなたのO/Sのネイティブ「検索」または「検索」機能を(+ grepのは、あなたの友人がOS X/UNIX/Linuxである見つける。)を使用して印刷されたものは何でも$ClassNameを探します。例えば。 $ClassNameが印刷されている場合: "HomePage"次に "HomePage.ss"を検索します。

他のポスターにも記載されているように、一致する.ssテンプレートファイルが見つからない場合、謎のページタイプはデフォルトでthemes/default/templates/Layout/Page.ssを使用します。これをオーバーライドして、ミステリークラスala:themes/default/templates/Layout/MyMysteryClass.ssという名前の新しいファイルを作成し、このページタイプのレイアウトとデザインを完全に再スタイルすることができます。