我如何使它,使“允许-拉伸”属性被应用到所有的标签,sitecore创建从媒体库插入媒体?
我知道您可以使用单独的<sc:image>标记来设置允许扩展属性,但是我希望这个设置在全局应用,这样每当用户将媒体库中的媒体插入到页面上时,生成的标记就已经默认具有应用到它的"as=1“属性。
目前,每当用户在我的web应用程序中从媒体库中插入媒体时,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标记末尾有as=1。
有人知道怎么让这事发生吗?
我用的是塞科雷6.5
发布于 2014-02-28 05:09:41
您可以创建自己的MediaProvider实现,并将AllowStretch设置为始终为真。从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)方法。
发布于 2014-02-27 18:54:55
您可以创建一个类似this的扩展方法,并将AllowStretch属性设置为true。您还可以在httprequestbegin管道中添加一个进程,并将AllowStretch分配给所有媒体文件。
https://stackoverflow.com/questions/22076983
复制相似问题