2014-05-19 87 views
0

在DotNetNuke(DNN)中,我試圖創建一個將用於爲電子郵件創建HTML的頁面模板。由於HTML將用於電子郵件中,因此需要嚴格控制。用戶將在DNN中創建頁面,然後複製頁面的HTML並在MailChimp中使用它。我不希望HTML中有任何額外的東西,它應儘可能最小化。DNN - 最小化皮膚中的垃圾

該模板將有標題正文和頁腳的佔位符。用戶可以根據他們想要處理的電子郵件將不同的模塊放入這些區域。

爲了做到這一點,我創建了一個皮膚。在我看來,它是如此簡單。 這裏是皮膚文件:

<%@ Control Language="C#" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %> 
    <div id="HeaderPane" runat="server"></div> 
    <div id="ContentPane" runat="server"></div> 
    <div id="FooterPane" runat="server"></div> 

雖然皮膚看起來,因爲它得到簡單,產量遠不及簡單的水平,我需要。爲了測試,我創建了一個新頁面並選擇了這個皮膚。在將任何內容添加到頁面之前,我將它加載到Web瀏覽器中。當然,頁面顯示爲空白,但是當我查看HTML我看到下面的源:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html lang="en-US"> 
<head id="Head"> 
<!--**********************************************************************************--> 
<!-- DotNetNuke - http://www.dotnetnuke.com           --> 
<!-- Copyright (c) 2002-2013               --> 
<!-- by DotNetNuke Corporation              --> 
<!--**********************************************************************************--> 
<title> 
    PAGE TITLE HERE 
</title><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /><meta content="text/javascript" http-equiv="Content-Script-Type" /><meta content="text/css" http-equiv="Content-Style-Type" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta id="MetaKeywords" name="KEYWORDS" content=",DotNetNuke,DNN" /><meta id="MetaCopyright" name="COPYRIGHT" content="Copyright © 2014 XXXX. All rights reserved.&lt;br/>MY ADDRESS HERE" /><meta id="MetaGenerator" name="GENERATOR" content="DotNetNuke " /><meta id="MetaAuthor" name="AUTHOR" content="XXXXXXX" /><meta name="RESOURCE-TYPE" content="DOCUMENT" /><meta name="DISTRIBUTION" content="GLOBAL" /><meta id="MetaRobots" name="ROBOTS" content="INDEX, FOLLOW" /><meta name="REVISIT-AFTER" content="1 DAYS" /><meta name="RATING" content="GENERAL" /><meta http-equiv="PAGE-ENTER" content="RevealTrans(Duration=0,Transition=1)" /><style id="StylePlaceholder" type="text/css"></style><link href="/portals/_default/default.css?cdv=80" type="text/css" rel="stylesheet"/><link href="/portals/0/portal.css?cdv=80" type="text/css" rel="stylesheet"/><script src="/resources/shared/scripts/jquery/jquery.min.js?cdv=80" type="text/javascript"></script><script src="/resources/shared/scripts/jquery/jquery-migrate.min.js?cdv=80" type="text/javascript"></script><script src="/resources/shared/scripts/jquery/jquery-ui.min.js?cdv=80" type="text/javascript"></script> 
    <link rel='SHORTCUT ICON' href='/Portals/0/favicon.ico' type='image/x-icon' />  

       <script type="text/javascript"> 
        var _gaq = _gaq || []; 
        _gaq.push(['_setAccount', 'ACCOUNT_NUMBER']); 
        _gaq.push(['_trackPageview']); 

        (function() { 
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
        })(); 
       </script> 

      </head> 
<body id="Body"> 

    <form method="post" action="/PATH/TO/CURRENT_FILE/Demo2.aspx" id="Form" enctype="multipart/form-data"> 
<div class="aspNetHidden"> 
<input type="hidden" name="StylesheetManager_TSSM" id="StylesheetManager_TSSM" value="" /> 
<input type="hidden" name="ScriptManager_TSM" id="ScriptManager_TSM" value="" /> 
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> 
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="LONG VIEWSTATE ENCODED VALUE IS HERE" /> 
</div> 

<script type="text/javascript"> 
//<![CDATA[ 
var theForm = document.forms['Form']; 
if (!theForm) { 
    theForm = document.Form; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
//]]> 
</script> 


<script src="/WebResource.axd?d=ENCODED_STRING&amp;t=635195493660000000" type="text/javascript"></script> 


<script src="/Telerik.Web.UI.WebResource.axd?LONG_QS_VARIABLE=XXXXXXXXX" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); 
//]]> 
</script> 

<script src="/js/dnn.js" type="text/javascript"></script> 
<div class="aspNetHidden"> 

    <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="LONG ENCODED VALUE" /> 
</div><script type="text/javascript"> 
//<![CDATA[ 
Sys.WebForms.PageRequestManager._initialize('ScriptManager', 'Form', [], [], [], 90, ''); 
//]]> 
</script> 

     <script src="/js/debug/dnn.modalpopup.js?cdv=80" type="text/javascript"></script><script src="/js/debug/dnn.servicesframework.js?cdv=80" type="text/javascript"></script><script src="/js/debug/dnncore.js?cdv=80" type="text/javascript"></script> 

     <div id="dnn_HeaderPane" class="DNNEmptyPane"></div> 
<div id="dnn_ContentPane" class="DNNEmptyPane"></div> 
<div id="dnn_FooterPane" class="DNNEmptyPane"></div> 
     <input name="ScrollTop" type="hidden" id="ScrollTop" /> 
     <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" value="`{`__scdoff`:`1`,`sf_siteRoot`:`/`,`sf_tabId`:`423`}" /> 


<script type="text/javascript" src="/Resources/Shared/scripts/initWidgets.js" ></script></form> 


</body> 
</html> 
我不使用形式,我不需要任何的jQuery或Javascript功能

,所有的款式要內聯(或包含在<style>標記中,不會作爲外部參考)。我只是希望HTML結構沒有圍繞它的所有其他東西。

這可能在DNN中嗎?

回答

1

由於DNN是一個基於WebForms的應用程序,所以像ViewState和WebResource.axd等鏈接等幾乎是不可能擺脫的。

對於其他項目,請查看頁面上正在加載哪些模塊。確保您沒有標記爲「在每個頁面上包含」的模塊。

+0

我一直希望聽到不同的東西,但希望在一方面...多餘的HTML的一部分來自我已經包含在每個頁面上的分析模塊,並且看起來有很多東西是不可能的剝離出來。希望如果有其他的DNN選項可以用來最小化別人也會嵌入的輸出HTML。 – RacerNerd