标签: dotnetnuke-7

使用jquery更改页面样式时出错

我用它jquery-style-switcher.js来改变一些元素的风格.当我点击页面的颜色样式不会改变时,在此页面的源代码中将此类添加jssError error level0ul包含颜色的标记中.此代码在HTML页面中工作,但在CMS中没有!我通过chrome调试这个js文件,并了解当一般html文件中的这个js文件变坏:一个事件调用它执行addClickEvents但在我的网站中使用此模板的网站皮肤:addClickEvents函数不执行.调用addClickEvents的函数是init函数

    init: function ($root, config) {
        this.$root = $root;
        this.config = config ? config : {};
        this.setDefaultTheme();
        if(this.defaultTheme) {
            // try cookies
            if (this.config.cookie) {
                this.checkCookie();
            }
            // try hover
            if (this.config.hasPreview) {
                this.addHoverEvents();
            }
            // finally, add click events
            this.addClickEvents();
        } else {
            this.$root.addClass('jssError error level0');
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这个函数(init)中:defaultTheme值未定义!!!!

为什么defaultTheme未定义?如果你能回答这个问题,问题就会解决.

Github链接

jquery-style-switcher.js:

(function ($) {
    var jStyleSwitcher,
        _defaultOptions = {
            hasPreview: true,
            defaultThemeId: 'jssDefault', …
Run Code Online (Sandbox Code Playgroud)

html css asp.net jquery dotnetnuke-7

14
推荐指数
1
解决办法
1108
查看次数

使用DAL2访问数据:值不能为null.参数名称:con

我正在尝试使用DotNetNuke中的DAL2访问数据.当我使用repository.Get()来获取某个表的所有字段时,我有时会收到此错误:

'价值不能为空.参数名称:con'

public IEnumerable<SitesProvince> GetAll()
{
     using (var ctx = DataContextContent.Instance())
     {
          var rep = ctx.GetRepository<SitesProvince>();
          return rep.Get();
     }
}
Run Code Online (Sandbox Code Playgroud)

模型:

[TableName("Sites_Province")]
[PrimaryKey("Sites_Province_No")]
[Cacheable("Sites_Province", CacheItemPriority.Default, 20)]
[Scope("Sites_Province_No")]
public class SitesProvince
{
    public int Sites_Province_No { get; set; }
    public string BU { get; set; }
    public string Province { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?在某些查询中,它有效,有些则没有,我认为方法之间没有任何区别.

我找到了这个,但我没有合同:http: //clraddins.codeplex.com/discussions/24568

sql data-access-layer dotnetnuke-module dotnetnuke-7

6
推荐指数
1
解决办法
1171
查看次数

DnnModuleAuthorize属性始终在Web API中返回未授权

我正在尝试在Web API中为自定义模块使用此属性:

[DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.Edit)]
Run Code Online (Sandbox Code Playgroud)

但无论我设置什么SecurityAccessLevel,我都会得到401未经授权的响应.

我能够通过添加以下代码来使代码工作:

[AllowAnonymous]
Run Code Online (Sandbox Code Playgroud)

在方法上,并添加:

if (!ModulePermissionController.CanEditModuleContent(this.ActiveModule))
                return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You do not have permission to access this content.");
Run Code Online (Sandbox Code Playgroud)

到我的方法的开头,但似乎这是一个我真的不应该需要的解决方法,因为它正是那个属性的用途.我正在运行DNN 7.2.1.

任何人都知道我的属性出错了吗?

dotnetnuke dotnetnuke-module dotnetnuke-7

6
推荐指数
1
解决办法
1506
查看次数

如何在DNN 7+中使用LoggerSource?

我一直在研究在我的DNN 7+网站上实施日志记录.我希望有一个可配置的日志记录级别,例如log4net提供的级别.

我试图按照说明集成DNN网站上的log4net,http: //www.dnnsoftware.com/community-blog/cid/141723/Using-log4net-with-DotNetNuke .添加引用和代码行后使用日志记录:

DnnLog.Info("My Logging Worked!");
Run Code Online (Sandbox Code Playgroud)

该代码报告了一条警告:

'DotNetNuke.Instrumentation.DnnLog'已过时:'"由于性能不佳而在7.0.1中折旧,请使用LoggerSource.Instance"'

我很难找到有关正确做事方式的信息.似乎"DnnLog"已被类似的类替换为与log4net交互,称为"DnnLogger".使用此类(和"LoggerSource"类)的一个不同之处是使用静态方法不再完成日志记录.

用于检索记录器实例的"GetLogger()"函数需要一些参数,我还没有找到任何描述适当用法的文档.DNN源代码有很多例子.从这些示例看,适当的用法是提供当前类.在声明类"MyClass"的文件"MyClass.cs"中,看起来以下内容是正确的:

ILog logger = LoggerSource.Instance.GetLogger(typeof(MyClass));
Run Code Online (Sandbox Code Playgroud)

要么

DnnLogger logger = DnnLogger.GetLogger("MyClass");
Run Code Online (Sandbox Code Playgroud)

使用typeof()的第一行代码返回了什么记录器?我的意思是,这个记录器是否会使用为该站点配置的log4net设置?如果它没有使用log4net设置,保存的日志文件在哪里以及配置设置在哪里调整?我的书呆子想知道typeof()类参数究竟发生了什么,为什么要使用它?

如果第一个示例没有连接log4net(或允许可配置的易于使用的日志记录级别的东西),第二个选项是可行的方法吗?如果是这样,通过什么是合适的字符串?"MyClass"是我的猜测,但我无法证实.

如果我完全偏离这里并且应该从另一个方向接近这个,请随时提出建议.

非常感谢大家!

c# logging log4net dotnetnuke-7

5
推荐指数
1
解决办法
1419
查看次数

页面未处于编辑模式时,检查用户是否具有模块编辑权限

我正在为DNN 7.1+开发一个模块,我需要根据用户是否具有该模块的编辑权限来显示/隐藏模块中的链接.无论页面是否处于编辑模式,我都希望这种情况发生.

目前,我在自定义模块页面加载事件的view.ascx中有以下代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Try
        ''other code goes here.......
        If IsEditable = True Then
            AdminEdit.Visible = True
        Else
            AdminEdit.Visible = False
        End If
    Catch exc As Exception
        Exceptions.ProcessModuleLoadException(Me, exc)
    End Try

End Sub
Run Code Online (Sandbox Code Playgroud)

AdminEdit是我要隐藏的元素的ID.此代码在页面处于编辑模式时有效,但如果用户具有该模块的编辑权限,我希望此代码始终可见,无论编辑模式如何.

现在,如果页面未处于编辑模式,则IsEditbale返回false.

问题:如何在没有页面处于编辑模式的情况下检查用户权限?

编辑:我也很高兴检查用户对包含该模块的页面的编辑权限

解:

以下是我最后的结果,感谢bdukes:

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Try

            ''display template selector if user has edit rights over module
            If DotNetNuke.Security.Permissions.ModulePermissionController.CanEditModuleContent(Me.ModuleConfiguration) Then
                AdminEdit.Visible = …
Run Code Online (Sandbox Code Playgroud)

.net dotnetnuke dotnetnuke-7

4
推荐指数
1
解决办法
1617
查看次数

访问 DotNetNuke 模块内的 .config 文件

我已经实现了一个使用用户定义控件的DNN模块(这个用户定义控件已经实现了GoogleAnalytics跟踪供我们自己使用)。

该控件需要访问配置文件才能获取我们的谷歌分析帐户的配置设置。例如账户代码(UA-dddddd-dd)等。

我的问题:由于我在 DotNetNuke 上安装模块,放置配置文件的正确位置在哪里,或者默认情况下它将访问什么配置文件?

下面提供了控件中尝试访问配置文件的代码段:

string path = Assembly.GetExecutingAssembly().CodeBase;
FrameworkConfig.instance = new FrameworkConfig(ConfigurationManager.OpenMappedMachineConfiguration(new ConfigurationFileMap(path + ".config")));
Run Code Online (Sandbox Code Playgroud)

注意:FrameworkConfig是对象的包装类System.Configuration

简而言之,我需要知道 Assembly.GetExecutingAssembly().CodeBase通过 DNN 模块调用时返回什么?其他选择?

c# asp.net configuration-files dotnetnuke-module dotnetnuke-7

3
推荐指数
1
解决办法
2855
查看次数

在DNN 7中初始化NotificationController

你如何NotificationController在DNN 7.1.2中初始化?

我试过了:

var nc = new DotNetNuke.Services.Social.Notifications.NotificationController();
Run Code Online (Sandbox Code Playgroud)

然而,这是空的,没有方法可以调用......我是在初始化错误的东西吗?

当然应该有东西在那里比其他ToString,GetType,EqualsGetHashCode

我需要能够创建NotificationTypes并创建通知.

谢谢

dotnetnuke dotnetnuke-6 dotnetnuke-7

3
推荐指数
1
解决办法
800
查看次数

为什么 DNN 中 DAL2 存储库的默认 GetById() 执行缓慢?

我遇到了一个问题,即 DAL2 存储库的默认 Get() 函数需要几秒钟才能返回结果。当我使用 SQL Server Management Studio 直接查询数据库以获取记录时,查询会快速返回。该函数是一个基本函数,如下所示:

public MyThing Get(string primaryKey)
{
    MyThing myThing;
    using (IDataContext ctx = DataContext.Instance(“DATABASECONN”))
    {
        var rep = ctx.GetRepository<MyThing>();
        myThing = rep.GetById(primaryKey);
    }
    return myThing;
}
Run Code Online (Sandbox Code Playgroud)

该表有 800K+ 条目。

即使启用了缓存设置,该函数在后续执行中也具有相同的执行时间。

为什么这个功能运行缓慢,我该如何加快速度?

sql dotnetnuke data-access-layer dotnetnuke-7

3
推荐指数
1
解决办法
579
查看次数

如何在DNN中正确设置自定义配置文件属性?

我正在尝试将自定义属性保存到DNN 7中的现有用户配置文件,但配置文件属性未设置.我必须正确理解一些事情.

那么,如何在DNN中正确设置自定义配置文件属性?

UserInfo.Profile.SetProfileProperty("key","value")

// I expect this to return "value", but it's always ""
var value = UserInfo.Profile.GetProfileProperty("key");

// Even if I save it...
ProfileController.UpdateUserProfile(UserInfo);

// It always returns ""
var savedValue = UserInfo.Profile.GetProfileProperty("key");
Run Code Online (Sandbox Code Playgroud)

注意:我也尝试过InitialiseProfile,但这并未改变行为.

dotnetnuke dotnetnuke-7

2
推荐指数
1
解决办法
1918
查看次数

DNN:Web应用程序项目xxx配置为使用IIS.无法找到Web服务器"http:// dnndev/desktopmodules/xxx /".

在遵循为DotNetNuke模块设置开发环境的教程时,从项目模板创建新项目会导致以下错误:

The Web Application Project xxx is configured to use IIS. 
The Web server "http://dnndev/desktopmodules/xxx/' could not be found."
Run Code Online (Sandbox Code Playgroud)

如何修复这个问题,因为教程完全遵循了?

iis dotnetnuke iis-6 dotnetnuke-module dotnetnuke-7

2
推荐指数
1
解决办法
1488
查看次数