Sitecore 覆盖sc:Image-alt-text
如何重写SitecoreSitecore 覆盖sc:Image-alt-text,sitecore,sitecore7,alt,Sitecore,Sitecore7,Alt,如何重写Sitecore控件,以便它从同一项目中的另一个字段读取alt文本 我想给你一个标签 它应该首先查看这个字段,如果为空,它应该像通常一样呈现媒体项Alt文本 我不需要详细的实施说明。我只需要知道必须覆盖哪些类和函数。您可以创建自己的类,继承自Sitecore.Web.UI.WebControls.Image,并像这样覆盖它: namespace My.Assembly.namespace { 公共类MyImage:Sitecore.Web.UI.WebControls.Image {
控件,以便它从同一项目中的另一个字段读取alt文本
我想给你一个标签
它应该首先查看这个字段,如果为空,它应该像通常一样呈现媒体项Alt
文本
我不需要详细的实施说明。我只需要知道必须覆盖哪些类和函数。您可以创建自己的类,继承自
Sitecore.Web.UI.WebControls.Image
,并像这样覆盖它:
namespace My.Assembly.namespace
{
公共类MyImage:Sitecore.Web.UI.WebControls.Image
{
公共虚拟字符串ContentAltText{get;set;}
受保护的覆盖无效PopulateParameters(Sitecore.Collections.SafeDictionary参数)
{
基本参数(参数);
如果(!String.IsNullOrEmpty(项[ContentAltText]))
{
添加(“alt”,项[ContentAltText]);
}
}
}
}
可能不需要调用参数。添加您将需要替换原始的alt
值。我还没有测试代码,所以正如您所要求的,它应该只为您指出正确的方向
编辑:下面的代码将无法使用ContentAltText
作为字段名而不是不同的alt文本
还有另一种方法,但我不知道这是否会覆盖默认的alt
值,或者这只适用于新属性:
编辑2:
要注册控件,请在web.config
中找到下面的部分,并使用自定义前缀添加命名空间:
...
您可能需要重新启动Visual Studio,以确保它能够识别新的命名空间
然后使用:
您可以创建自己的类,继承自Sitecore.Web.UI.WebControls.Image
,并按如下方式覆盖它:
namespace My.Assembly.namespace
{
公共类MyImage:Sitecore.Web.UI.WebControls.Image
{
公共虚拟字符串ContentAltText{get;set;}
受保护的覆盖无效PopulateParameters(Sitecore.Collections.SafeDictionary参数)
{
基本参数(参数);
如果(!String.IsNullOrEmpty(项[ContentAltText]))
{
添加(“alt”,项[ContentAltText]);
}
}
}
}
可能不需要调用参数。添加您将需要替换原始的alt
值。我还没有测试代码,所以正如您所要求的,它应该只为您指出正确的方向
编辑:下面的代码将无法使用ContentAltText
作为字段名而不是不同的alt文本
还有另一种方法,但我不知道这是否会覆盖默认的alt
值,或者这只适用于新属性:
编辑2:
要注册控件,请在web.config
中找到下面的部分,并使用自定义前缀添加命名空间:
...
您可能需要重新启动Visual Studio,以确保它能够识别新的命名空间
然后使用:
ContentAltText不是alt文本的值,而是找到alt文本值的同一项中的字段名称。因此,我需要访问此项的另一个字段,请参见编辑后的答案。使用项[ContentAltText]
获取字段的值。您还可以简短地告诉我应该修改哪些配置来注册此新用户控件吗?例如,as ContentAltText不是alt文本的值,而是找到alt文本值的同一项中的字段名称。因此,我需要访问此项的另一个字段,请参见编辑后的答案。使用项[ContentAltText]
获取字段的值。您还可以简短地告诉我应该修改哪些配置来注册此新用户控件吗?例如