2012-02-27 58 views
3

我们正在使用HTML编辑器模块在DotNetNuke站点的多个门户中添加一些常见问题解答。布局和样式在每个门户上都是一样的,所以我试图确定在DotNetNuke(5.6版本)中存储自定义CSS样式和jQuery的最佳位置,因此我们可以在HTML编辑器模块中为所有门户引用它们。在DotNetNuke HTML模块中用于存储CSS和jQuery的位置?

尽管将CSS样式添加到Portals/_default/default.css文件的工作原理,但我的理解是,如果我们将CMS更新为更新版本,而不会更改此文件, CSS ...对吗?

如果这是正确的做法,是有全球.js文件,我们可以存储的jQuery类似的文件?由于相同的原因,我还在犹豫是否在Default.aspx页面中包含脚本引用。

感谢

编辑:我添加的样式上面提到default.css页,并增加了一个脚本标签到Default.aspx页面.js文件,我把资源/共享/脚本/。它似乎运作良好......如果有人想增加他们的两美分,我想听听是否有更好的方法。这似乎是别人谁摸这个网站在未来能得到老除非这是一种常见的做法将文档。

EDIT2:我最终只是增加了风格和脚本标签引用了CSS和JS文件,都存储在相应的资源/共享/目录(而不是修改默认的Default.aspx页面。 css文件)。

+0

@NickBeranek - 真的吗?你用什么.NET CMS?我只用了几个星期,但看起来并不糟糕。我有很多关于mojoPortal的抱怨,尽管我比DNN皮肤/主题更喜欢masterPages。 – 2012-02-27 18:50:24

+0

您没有太多选择。也许这取决于情况。我们有3个.NET开发人员正在尝试合并它,它很麻烦,而且很麻烦,我们最终将它转储为.NET MVC并构建了我们自己的CMS。如果你没有和.NET结婚,你可以试试Drupal或joomla。如果你想继续使用.NET,那么你可以试试[umbraco](http://umbraco.com/)。 – 2012-02-27 19:01:17

回答

4

是不是真的在DNN一个地方全局,自定义内容横跨门户,除非一个模块或其他扩展它英寸在这种情况下,听起来您的门户网站可能具有相同的外观,因此这将是一个放置自定义样式和脚本的好地方(假设您拥有/控制皮肤;如果它是第三方并且可能会更新它,则很可能最好是禁止的,就像核心代码一样)。

所以,无论是CSS和脚本添加到皮肤,或创建一个自定义模块,增加了款式/脚本,它可以包括在每一页(使用在所有页面模块设置的显示屏)上。

如果您使用的是DNN 6.1或更高版本,则可以插入引入的Client Resource Management framework,以管理对CSS的参考文件& JS。首先,这种引用添加到控制(皮肤,模块控制等):

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %> 

然后使用它是这样的:

<dnn:DnnJsInclude runat="server" FilePath="DNNMega/jquery.dnnmega.debug.js" PathNameAlias="SkinPath" /> 
<dnn:DnnCssInclude runat="server" FilePath="DNNMega/dnnmega.css" PathNameAlias="SkinPath" /> 

否则,将样式表你最好的选择将是以下代码:

protected override void OnInit(EventArgs e) { 
    base.OnInit(e); 
    this.AddStyleSheet("//fonts.googleapis.com/css?family=Rokkitt:400,700"); 
} 

private void AddStyleSheet(string path) 
{ 
    ((CDefault)this.Page).AddStyleSheet(DotNetNuke.Common.Globals.CreateValidID(path), path); 
} 

和脚本可以通过简单的<script>标签,或像ClientScriptManager.RegisterStartupScript引用。

+0

谢谢。他们都使用不同的皮肤。我添加的CSS实际上只是用于此折叠/展开jQuery列表,以在点击时切换“加号”和“减号”图像。这看起来像编辑我的Default.aspx页面是最快和最不涉及的解决方案,考虑到所有门户网站没有任何全球自定义内容。更何况我还需要参考jQuery。 – 2012-02-27 19:55:07

1

如果你决定要安装DNN的未来版本,那么我会建议不碰的默认文件。我会创建一个新的CSS文件以及一个新的JS文件,并将您独特的样式和代码放在那里。在您的全局控制下,分别拨打linkscript

+0

这种情况下的全局控制是HTML编辑器之一(Telerik,我认为)。如果我在该控件中编辑文件,我是不是会陷入同样的​​困境?我认为我们的内容编辑器只是使用WYSIWYG编辑器,因此要求他们包含样式和脚本标记可能无效......除非我们实施一些培训。 – 2012-02-27 19:23:48

+0

从我记得,你的每个网站都包含在“主题”文件夹中,对吗?也许你可以在你的网站的主题目录中添加这些调用,而不是全局控制? – 2012-02-27 19:39:10

+0

看起来每个站点目录都位于Portals目录中。问题是我们有60个门户网站,所以我必须为每个门户添加(并更新)它... ouch。必须有东道主的东西。 – 2012-02-27 19:50:14