2012-01-11 82 views
1

我有我的主題(在內容/目錄中)的圖像,我想在不同的地方展示它們。在Orchard CMS中是否有檢索主題目錄的功能?

我目前的做法是:<img src="@Url.Content("~/Themes/MyTheme/Content/Images/image.gif")" />

這工作,但不是很維護 (如果我想切換主題等)。

是否有一個內置的方法,像GetCurrentThemeDirectory()這樣會返回目錄,所以我可以做或類似的東西?

編輯:從mdm的評論,我認識到改變主題不是一個有效的關注。我真的只是想避免輸入每個參考的網址

回答

1

你在哪裏引用圖像?模塊?另一個主題?

如果是具有圖像的主題,那麼您不必擔心切換主題。如果是來自另一個主題,那麼圖像應該是主題的一部分。如果它來自一個模塊,那麼將圖像作爲模塊的一部分存儲或在主題中覆蓋它是有意義的(見下文)。

如果你想讓圖像作爲主題的一部分,那麼你可以讓模塊返回一個'默認'形狀,然後在主題中覆蓋它。真的不應該有任何理由從模塊中引用主題圖像,反之亦然。您的編輯

在我寫的主題後

編輯,我遵循的果園作者做。而不是使用<img>標籤,圖像放置在Styles/images。然後可以使用CSS background-image屬性來引用它們。

Views/Branding.cshtml

<div id="header"></div> 
<h1 id="branding"><a href="@homeUrl">@WorkContext.CurrentSite.SiteName</a></h1> 

然後在site.css

#header { 
    /* snip */ 
    background-image: url(images/header.png); 
    /* snip */ 
} 

Themes/TheAdmin/site.css含有豐富的多種這種方法的例子。

+0

謝謝,我更新了我的問題。我從相同的主題引用。 – Aligned 2012-01-11 21:09:04

+0

嘿對齊,我已經更新了我的答案:) – mdm 2012-01-11 22:52:40

+0

我想我可以選擇分配一個自定義設置,這樣我就可以使用@ WorkContext.CurrentSite.ImageUrl。我搜索了'@ workContext.CurrentSite'並找到了這個http://docs.orchardproject.net/Documentation/Adding-custom-settings。 – Aligned 2012-01-12 13:55:14