dotnetnuke - Как создать скин контейнера, чтобы его заголовок отображался только в режимах редактирования и макета? - PullRequest
0 голосов
/ 14 сентября 2010

Как создать обложку контейнера, чтобы его заголовок отображался только в режимах редактирования и макета?

Я знаю, что могу установить show-container: false в настройках страницы ... но я бы предпочел не устанавливать это для всех страниц на всем сайте, на которых установлен мой контейнер.

1 Ответ

2 голосов
/ 15 сентября 2010

Это DNN4, и я его не писал, но вот код, извлеченный из нашего контейнера, который делает именно это. Я позволю вам пройтись и решить, какие части вам не нужны:

Вот строка из файла ascx контейнера ...

<DNN:DNNToolBar id="tbEIPTitle" runat="server" CssClass="eipbackimg" ReuseToolbar="true">...

и код из файла ascx.vb ...

 Private Function CanEditModule() As Boolean
     Dim blnCanEdit As Boolean = False
     Dim objModule As Entities.Modules.PortalModuleBase = Container.GetPortalModuleBase(Me)
     If (Not objModule Is Nothing) AndAlso (objModule.ModuleId > Null.NullInteger) Then
         blnCanEdit = (PortalSettings.UserMode = PortalSettings.Mode.Edit) 
             AndAlso (PortalSecurity.IsInRoles(PortalSettings.AdministratorRoleName)
             OrElse PortalSecurity.IsInRoles(PortalSettings.ActiveTab.AdministratorRoles.ToString))
             AndAlso (IsAdminControl() = False) 
             AndAlso (PortalSettings.ActiveTab.IsAdminTab = False)
      End If
      Return blnCanEdit
 End Function

и ...

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ...
    If CanEditModule() = False OrElse Entities.Portals.PortalSettings.GetSiteSetting(objPortalModule.PortalId, "InlineEditorEnabled") = "False" Then
        lblTitle.EditEnabled = False
        tbEIPTitle.Visible = False
        ....
...