Text/HTML module causing invalid XHTML
Last Post 03/08/2007 8:56 AM by Lee Sykes. 12 Replies.
Author Messages
Charles Stanley-Smith
Nuker
Nuker
Posts:18


--
03/04/2007 5:13 PM
    Hi Lee,

    Great Tutorial and I now have an XHTML compliant page UNTIL I put content into a Text/HTML Module that inserts a .

    I came across a reference to 3.3 and altering /DesktopModules/HTML/HtmlModule.ascx and changeing the to
    . I'm running 4.4.1 and cannot find any in that file but there is a in the output.

    With Best Regards
    Charles

    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/05/2007 7:15 AM
    Sorry the tags got lost in the post!
    I'm trying to change a span to a div for the Text/HTML Module

    With Best Regards
    Charles
    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/06/2007 12:12 PM
    Hi Charles,

    Glad you have found the tutorial useful, I've had a quick look at the text/HTML module and it looks as though the only way you can change the span to a div is to edit the source code in visual web developer.

    Thanks,
    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile
    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/06/2007 1:27 PM
    Hi Lee,

    Therein is the problem, if I knew where the source code was, I'd have a go at editing it.

    BTW it's also close to being WAI compliant but there is an deprecated align="left" in the same text/HTML Module

    With Best Regards
    Charles


    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/07/2007 9:27 AM
    Hi Again,

    Still can't find the source code - read a long and somewhat fractious thead on DNN Text/HTML Forum saying that it should be in the 4.4.1_Source.zip in Website/Install/Module/HTML_03.03.00_Install.resources - There is no such file - there is a .zip which contains the same set of files as my /Website/DesktopModules/HTML and none of them contains the span tag.



    In \Library\Components\Skins\Skin.vb - I have traced the -- Start_Module -- and the -- End_Module -- but cannot see anything that outputs the span - it must be in the source code for the HTML module that I can't find.

    BTW I discovered that if you:
    1. Put a | between the Register & Login in your skin
    2. Set the Module Alignment to empty, in the Module Settings it will not include a align="left" in the contentpane div
    3. Don't use any markup in the  content Text/HTML Module (because of the span/div problem).

    You can have  a page that is both XHTML and WAI compliant.

    So help please - where is the source code for the text/HTML Module?

    With Best Regards
    Charles

     


    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/07/2007 9:48 AM
    Hello,

    I'm afraid at the moment I can't provide any further help, my DNN laptop has just gone down (screen stopped working - sent off for repair yesterday) and my broadband ISP has just completely messed up and I am stuck on a 48k dial up connection. - Not very helpful eh?

    So I've just literally installed DNN to a new computer, but as yet haven't got access to the source version of DNN.

    If you manage to find a solution let us know, once I'm up and running again I will try to help you properly (hopefully not too soon as I have the next issue of the magazine to create!)

    thanks,
    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile
    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/07/2007 10:49 AM
    Hello,

    Ok, I have found a solution:

    Following a post at this forum, it can be adapted to get rid of the span tag and replace it with the div tag:
    http://www.dotnetnuke.com/Community...fault.aspx

    Make a backup of the HtmlModule.aspx file

    replace it with the following content:

    <%@ Register TagPrefix="dnn" Namespace="DotNetNuke.UI.WebControls" Assembly="DotNetNuke.WebControls" %>
    <%@ Control language="vb" Inherits="DotNetNuke.Modules.Html.HtmlModule" CodeBehind="HtmlModule.ascx.vb" AutoEventWireup="false" Explicit="True" %>
    NNLabelEdit id="lblContent" runat="server" cssclass="Normal" enableviewstate="False" MouseOverCssClass="LabelEditOverClassML"
     LabelEditCssClass="LabelEditTextClass" EditEnabled="False" MultiLine="True" RichTextEnabled="True" Visible="False">
    NNLabelEdit>
    <%=ctype(lblContent.Controls(0), System.Web.UI.LiteralControl).Text%>

    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile
    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/07/2007 10:52 AM
    Hi Lee,

    Actually, maybe there is no 'source code' specifically for the text/HTML module in 4.4.1 because the Text and Labels are now 'editable' by admin.  Thus the /DesktopModules/HTML/HtmlModule.ascx is using the dnnNNLabelEdit method.

    I have found code in the Library, /Library/Controls/PropertyEditor/FieldEDitorControl.vb that contains:

    Protected Overrides ReadOnly Property TagName() As String
        Get
               If EditorDisplayMode = EditorDisplayMode.Div Then
                  Return "div"
               Else
                  Return "span"
               End If
        End Get
    End Property

    I would edit this so it defaults to div instead of span and/or try and work out what the valid values for EditorDisplayMode are and set them in the Database for the Module.

    However, I don't really understand how to recompile this back into whereever it goes in the source (I can't find any UNIX makefile to do it for me!)

    With Best Regards
    Charles


    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/07/2007 11:04 AM
    Good find, the ideal solution then would be to find how to specify EditorDisplayMode. - If you are needing to recompile everything, have a look in the Resources section which links to various module tutorials and those tutorials shoudl explain how to recomplie it all.

    Let us know if you find a way to specify the EditorDisplayMode, in the meantime I will have a look around as well.

    Thanks,
    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile
    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/07/2007 11:32 AM
    Hi Lee,

    Your method works but I will continue my investigations.

    I now have a XHTML & WAI home page on the site I'm building for evaluation  - I've even put a link back to you in thanks - after I made your link code XHTML compliant!

    With Best Regards
    Charles

    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/08/2007 3:17 AM
    Hi Charles,

    He he - yes, I'm currently undergoing a re-skinning for the entire DNN creative website and will be addressing XHTML compliance!

    OK I've got the solution, here are the steps:

    Change the HtmlModule.ascx file to:

    <%@ Register TagPrefix="dnn" Namespace="DotNetNuke.UI.WebControls" Assembly="DotNetNuke.WebControls" %>
    <%@ Control language="vb" Inherits="DotNetNuke.Modules.Html.HtmlModule" CodeBehind="HtmlModule.ascx.vb" AutoEventWireup="false" Explicit="True" %>
    NNLabelEdit id="lblContent" runat="server" cssclass="Normal" enableviewstate="False" MouseOverCssClass="LabelEditOverClassML"
        LabelEditCssClass="LabelEditTextClass" EditEnabled="False" MultiLine="True" RichTextEnabled="True" RenderAsDiv="true">
    NNLabelEdit>

     Basically, all we have done is added RenderAsDiv="true" into the DNNLabelEdit control.

     If you are using DotNetNuke version 4.4 at this point the change will not work, you also need to upgrade the web controls:

    Go to the downloads page on DotNetNuke.com and download the web controls install zip file version 1.5

    Extract this zip file and copy the files into the bin folder and js folder.

    The span tag will now be replaced with a div tag.

    Apparently in version 4.5, the text/HTML module will come with this feature.

    Thanks,
    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile
    Charles Stanley-Smith
    Nuker
    Nuker
    Posts:18


    --
    03/08/2007 8:30 AM
    Hi Lee,

    Thanks for that - it works the finest as they say arond here.

    Except if you decide that your text/HTML module should not be displayed with a container, when our old friend the span returns!


    With Best Regards
    Charles



    Lee Sykes
    DNN Creative Staff
    Nuke Master VI
    Nuke Master VI
    Posts:4945


    --
    03/08/2007 8:56 AM
    Hi Charles,

    Aahh! - yes I recall this happening in DNN 3.x, I did find a solution to this but I can't remember what it was.  In the meantime I would use a transparent container, thanks,
    Lee Sykes
    Site Administrator
    Subscribe to the website : DotNetNuke Video Tutorials : The Skinning Toolkit : DotNetNuke Podcasts

    Twitter: www.twitter.com/DNNCreative

    Lee Sykes's Facebook Profile


    ---