我可以基于宏使母版页(Kentico 11 Portal Engine)上的文档类型动态化吗?

问题描述 投票:0回答:1

我继承了使用文档类型为]的Kentico 11站点>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

客户希望使用Kentico的AMP模块创建其页面的AMP变体,该模块将子域用于任何AMP内容。该模块还包含一个布尔宏{%AmpFilter.IsAmpPage()%},用于测试您当前是否正在提供AMP内容。https://github.com/Kentico/kentico-amp

我遇到的问题是AMP似乎想要文档类型为

<!doctype html>

。我不想更改现有网站的文档类型,但看起来也无法在母版页模板的文档类型字段中评估宏。

想知道是否有人遇到过这样的问题;是否有一种方法可以在doctype字段中评估宏,或者我没有想到的其他方法。

我继承了使用文档类型为The client ...的Kentico 11站点...] >>

添加HTML lang属性以支持WCAG 2.0准则时,存在类似的问题。但是,HTML属性由系统文件PortalTemplate.aspx控制,该文件使用Kentico页面的XmlNamespace属性。为了解决这个问题,我们在主页面的布局属性中添加了服务器端代码。但是,这也可以在添加到母版页的Web部件中完成。然后,您可以根据选择的任何条件来更改页面的DocType属性,而不是更改页面的XmlNamespace属性。这会满足您的需求吗?

<script runat="server"> 
/// Add Page_Load just to insert the "lang" attribute required by WCAG 2.0 Level A guidelines
protected void Page_Load(object sender, EventArgs e)
{
    if (CurrentDocument != null)
    {          
        CMS.UIControls.ContentPage page= this.Page as CMS.UIControls.ContentPage;
        if (page != null)
        {
            System.Globalization.CultureInfo c= new System.Globalization.CultureInfo(CMS.Localization.LocalizationContext.CurrentCulture.CultureCode);
            string lang= c.TwoLetterISOLanguageName;
            page.XmlNamespace += " lang=\"" + lang + "\"";
            page.XmlNamespace += " xml:lang=\"" + lang + "\"";
        }
    }
}
</script>

麦克

kentico kentico-11
1个回答
0
投票

添加HTML lang属性以支持WCAG 2.0准则时,存在类似的问题。但是,HTML属性由系统文件PortalTemplate.aspx控制,该文件使用Kentico页面的XmlNamespace属性。为了解决这个问题,我们在主页面的布局属性中添加了服务器端代码。但是,这也可以在添加到母版页的Web部件中完成。然后,您可以根据选择的任何条件来更改页面的DocType属性,而不是更改页面的XmlNamespace属性。这会满足您的需求吗?

© www.soinside.com 2019 - 2024. All rights reserved.