2012-10-31 65 views
0

我想在Sitefinity中創建一個自定義內容塊,這樣我可以在它周圍包裝一個標籤並拿起我的CSS。Sitefinity中的自定義內容塊

我創建了一個自定義小部件,但我不確定如何將其設置爲內容塊。我找不到這方面的文檔,但我確定這是常見的情況。基本上,我想拖出來的內容塊,這是否:

<aside> 
[code for content block] 
</aside> 

我不知道如何生成.NET中的[內容塊]代碼。我是.net開發新手。我使用VB,但可以使用C#。

任何幫助將不勝感激。謝謝。

Maria

回答

0

最簡單的方法是使用內容塊的外部模板。您需要的模板是ContentBlock.ascx,位於SDK中。

將此文件複製到您的項目中,然後在文字控制(呈現控件的實際內容)周圍添加包裝標籤。

然後打開您想要使用此模板並指定LayoutTemplatePath的內容塊窗口小部件的高級設置。它應該有一個類似「〜/ SFRes/Telerik.Sitefinity.Resources.Templates.Backend.GenericContent.ContentBlock.ascx」的默認值。

只需將其更改爲您創建的模板的虛擬路徑,然後保存併發布該頁面即可。

內容區塊將使用您的模板而不是默認的模板進行渲染,並添加任何標記。

我希望這有幫助!

我要創建一個更詳細的博客文章,通過這個過程,並在我完成後將它鏈接到這裏。謝謝你給我靈感!

+0

正如承諾這裏是映射外部模板的指南。希望它有幫助! http://www.selarom.net/sitefinityguru/2012/11/06/mapping-sitefinity-templates-from-the-sdk – SelAromDotNet

1

您可以創建可與其他控件(如內容塊)結合使用的自定義佈局控件。

要創建佈局控件,請在Visual Studio中打開項目,並在WebApp項目中創建一個新的控件(.ascx)文件。我通常把我的〜/ LayoutControls文件夾,我創建。在該控制文件,輸入類似:

<div runat="server" class="sf_cols"> 
    <aside> 
     <div id="Div1" runat="server" class="sf_colsIn"></div> 
    </aside> 
</div> 

你會發現,除了你想要的標記,該標記aside,我還有其他兩個div一些細節。這些都是必需的,因此Sitefinity可以將此視爲控件,並能夠動態地將內容注入到控件中。

與類sf_cols的div是所有控件的共同點,而div sf_colsIn(id =「Div1」)是您放置在佈局控件上的控件。所以有一個外包裝div,你的標記和一個內部div。這是你的內容將要去的內部分區。

保存您的文件,編譯項目,然後在Sitefinity中註冊控件。

爲此,請登錄到後端,然後導航到管理|設置|高級設置|工具箱|工具箱| PageLayouts |部分。我通常添加一個新的部分具有這些屬性:

名=自定義,標題=自定義,說明=自定義佈局,全球resourceClassId = PageResources

然後選擇您的新欄目,選擇工具,然後新建。名稱,標題,描述對您來說是有意義的。控件CLR類型應該是Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity,佈局模板應該是您的ascx文件的路徑,即~/LayoutControls/AsideBlock.ascx。其他屬性可以有默認值(大多數只是空白)。然後保存。

現在,當您編輯頁面時,單擊右欄中的'佈局'按鈕,您將看到一個包含您的控件的'自定義'部分。將其拖到頁面上,然後返回到「內容」編輯(使用右側欄中的按鈕)。你會看到你的佈局控制並將一個內容塊放到它上面。

正常添加內容。當頁面呈現時,內容將被包裹在旁邊的標記中。