2

私はオーチャードに非常に慣れていないので、さまざまな用語のすべてに頭を悩ませようとしているので、ここで文脈から外れて使用されているものは意図的ではありません。私はここSOに投稿されているのと同じようなことをしようとしていますが、受け入れられた答えがありません。

通常のサイト(ブログ以外)では、グラフィックグループがクライアントに提供するレイアウトには、タイトルセクションとその下の2つの列があります。だから、このようなもの:

============================================================
|  Page Title                                              |
============================================================
| Left Content                           | Right Content   |
|                                        |                 |
============================================================

タイトル領域のHTMLは次のとおりです。

<div class="page_header">
  <div class="padding">
    <h2 id="page_title">This is the page's title</h2>
  </div>
</div>

そのブロックの下には、ページの残りの部分を2つの列に分割するためのさらに多くのdivがあります。私が抱えている問題は、ユーザーがOrchardを介して入力したページのタイトルを取得して、上記のセクションに表示しようとしていることです。PageTitleというゾーンにしようとしましたが、何かを表示するのに最も近いのは、そのプレースホルダーに空のHTMLウィジェットを追加し、タグに@Model.PageTitleを追加したときです。

<div class="page_header">
  <div class="padding">
    <h2 id="page_title">@Model.PageTitle</h2>
  </div>
</div>

書式は正しくなりましたが、タイトルは「ISHAPEPROXYD0FC462A536A4DA88FD49545639B4698」と表示されていました。これは、デフォルトのToString()実装の一種だと思います。@ Model.PageTitleをゾーン形式、つまり@Zone(Model.PageTitle)でラップすると、何も表示されなくなります。私が試した他のプロパティは、@Model.Titleと@Model.TitlePart.Titleです。

また、placement.infoファイルを試してみましたが、PageTitleゾーンのコンテンツに、必要なものと実際には一致しないものを表示したいようです。私はこれを次のように入力して確認しました。

<Place Parts_Title="Content:after" />

その行(前または後を使用)により、タイトルが表示されましたが、正しい場所ではありませんでした。以下のものを使用すると、何も表示されません(前、後、値なし、1などを使用):

<Place Parts_Title="PageTitle:before" />

要約すると、他のユーザーが開始したコンテンツが表示されない特定の領域にコンテンツのタイトルを表示するにはどうすればよいですか?

4

1 に答える 1

5

あなたが探しているのは、タイトルを最上位のレイアウト ゾーンに配置することだと思います。この構文は次のとおりです (レイアウトに PageTitle ゾーンがあると仮定しますが、これはレイアウト ビューの任意のゾーンである可能性があります)。これは Orchard 1.5 で追加された機能だと思います。

<Place Parts_Title="/PageTitle:1"/>

ゾーン名の前のスラッシュに注意してください。それ以外の場合、配置のデフォルトは、パーツがローカル コンテンツ ゾーン内に配置されることです。

于 2013-01-11T00:06:06.140 に答える