如何将“allow-stretch”属性应用于sitecore从媒体库插入媒体时创建的所有标记?
我了解您可以使用单个<sc:image>
标记设置allow-stretch属性,但我希望全局应用此设置,以便每当用户将媒体库中的媒体插入到页面上时,生成tag已经默认应用了“as = 1”属性。
目前,只要用户在我的网络应用程序中插入媒体库中的媒体,sitecore创建的图像标记就像这样:
<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&w=709" />`
但我希望它看起来像这样:
<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&w=709&as=1" />
请注意,我提供的第二个img标记最后为= 1。
有谁知道如何实现这一目标?
我正在使用Sitecore 6.5
答案 0 :(得分:4)
您可以创建自己的MediaProvider
实施,并将AllowStretch
设置为始终为true。继承Sitecore.Resources.Media.MediaProvider
并覆盖GetMediaUrl()
方法:
namespace MyCustom.Media
{
public class MediaProvider : Sitecore.Resources.Media.MediaProvider
{
public override string GetMediaUrl(MediaItem item)
{
Assert.ArgumentNotNull((object) item, "item");
return this.GetMediaUrl(item, MediaUrlOptions.Empty);
}
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options)
{
options.AllowStretch = true;
return base.GetMediaUrl(item, options);
}
}
然后在配置中将媒体提供程序修补到您的自定义实现:
<mediaProvider type="MyCustom.Media.MediaProvider, MyCustom.Kernel"/>
编辑:正如Maras建议的那样,尝试覆盖重载的GetMediaUrl(MediaItem item, MediaUrlOptions options)
方法。
答案 1 :(得分:1)
您可以创建类似this的扩展方法,并将AllowStretch属性设置为true。您还可以在httprequestbegin管道中添加进程,并将AllowStretch分配给所有媒体文件。