首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你如何将允许扩展应用于所有的sitecore媒体img标签?

你如何将允许扩展应用于所有的sitecore媒体img标签?
EN

Stack Overflow用户
提问于 2014-02-27 18:17:38
回答 2查看 549关注 0票数 1

我如何使它,使“允许-拉伸”属性被应用到所有的标签,sitecore创建从媒体库插入媒体?

我知道您可以使用单独的<sc:image>标记来设置允许扩展属性,但是我希望这个设置在全局应用,这样每当用户将媒体库中的媒体插入到页面上时,生成的标记就已经默认具有应用到它的"as=1“属性。

目前,每当用户在我的web应用程序中从媒体库中插入媒体时,sitecore创建的图像标记如下所示:

代码语言:javascript
复制
<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&amp;w=709" />`

但我希望它看起来像这样:

代码语言:javascript
复制
<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&amp;w=709&as=1" />

注意,我提供的第二个img标记末尾有as=1。

有人知道怎么让这事发生吗?

我用的是塞科雷6.5

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-28 05:09:41

您可以创建自己的MediaProvider实现,并将AllowStretch设置为始终为真。从Sitecore.Resources.Media.MediaProvider继承并重写GetMediaUrl()方法:

代码语言:javascript
复制
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);
    }
}

然后在配置补丁中,将媒体提供程序安装到您的自定义实现中:

代码语言:javascript
复制
<mediaProvider type="MyCustom.Media.MediaProvider, MyCustom.Kernel"/>

编辑:正如Maras所建议的,也尝试重写重载的GetMediaUrl(MediaItem item, MediaUrlOptions options)方法。

票数 4
EN

Stack Overflow用户

发布于 2014-02-27 18:54:55

您可以创建一个类似this的扩展方法,并将AllowStretch属性设置为true。您还可以在httprequestbegin管道中添加一个进程,并将AllowStretch分配给所有媒体文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22076983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档