2012-04-07 11 views
1

私はUmbracoを使用してウェブサイトを再作成しようとしています。このウェブサイトのために私が持っている私は、Webルート外のノードに格納していますニュース項目Umbraco - ウェブサイトノードの外側にコンテンツを配置していますか?

  • コンテンツ
    • サイトホーム
      • ニュース
    • Newsmessages
      • メッセージ1(10-10-2011作成)
      • メッセージ2(15-01-2012を作成した)

私は、実際のニュース項目を表示するまたはを表示するのNewsItemのリストをフィルタリングするURLパラメータを使用したいと思います。

  1. ショーニュースセクション

www.website.com/news

  1. ショーのためのニュース一覧

www.website.com/news/

  1. ショーのためのニュース一覧 2011年10月

www.website.com/news/2011/10

回の
  1. ショーメッセージ1のためのニュースの詳細

www.website.com/news/2011/10/10/ メッセージ-1

以下のすべてのコンテンツアイテムを作成する必要はありません。/コンテンツ/ウェブサイトホーム/ニュース

答えて

3

あなたはUmbraco 5木星に新しいエリアを追加し、Arearegisteration.csでのカスタムルートを追加することができ、パッケージはSebastiaanヤンセン木星でありVisual Studioのプラグインとして

http://our.umbraco.org/projects/developer-tools/jupiter-as-visual-studio-solution

ウェブアプリケーションを変換するために使用しますMVCアプリケーションに移動し、エリアフォルダを右クリックして新しいエリアを追加すると、VSが残りを処理します。 その後、URLがwww.website.com/news/2011であれば、アクションはあなたが、ニュースやヤーは、クエリ文字列で渡される名前を付ける必要があります例えば

context.MapRoute(
"ROUTE", 
"/{action}/{year}", 
new { controller = "ControllerName" } 
); 

をAreaRegisteration.cs におけるコントローラとカスタムルートを追加あなたはURLで再生することができます。

役に立てば幸い、

シェール

+0

いいね、お返事ありがとうございます – Ropstah

2

これはUmbracoでは使用できません。しかし、これを実現できる1つの方法は、URL書き換えを使用することです。パラメータをクエリ文字列に書き換えることができます。クエリ文字列は、マクロによって読み取られ、次に、目的のニュース項目が表示されます。

ので、

www.website.com/news/2011 

...のようなもののように書き換えることになります。

www.website.com/news?year=2011 
...と

www.website.com/news/2011/10 
...のように書き換えることになります。

www.website.com/news?year=2011,month=10 

などです。

「ニュース」ページのマクロは、クエリ文字列から要求を読み取り、フィルタ処理された結果を書き出します。

+0

私はおそらく、所望の効果を作成し、カスタムルートを定義することも可能であろうUmbraco 5を使用していますか?それとも、私はUmbracoをあまりにも迂回していますか? – Ropstah

+1

ああ、私の答えはUmbraco 4に固有です。 Sherの答えは理想的です。 –

+0

申し訳ありませんが、+1の答えです! – Ropstah

関連する問題