2012-10-31 41 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。其他属性可以有默认值(大多数只是空白)。然后保存。

现在,当您编辑页面时,单击右栏中的'布局'按钮,您将看到一个包含您的控件的'自定义'部分。将其拖到页面上,然后返回到“内容”编辑(使用右侧栏中的按钮)。你会看到你的布局控制并将一个内容块放到它上面。

正常添加内容。当页面呈现时,内容将被包裹在旁边的标记中。