Frage

Wie stelle ich sicher, dass die Eigenschaft „allow-stretch“ auf alle Tags angewendet wird, die Sitecore beim Einfügen von Medien aus der Medienbibliothek erstellt?

Ich verstehe, dass Sie die Eigenschaft „Allow-Stretch“ mithilfe der Einzelperson festlegen können <sc:image> Tags, aber ich möchte, dass diese Einstellung global angewendet wird, sodass jedes Mal, wenn ein Benutzer Medien aus der Medienbibliothek auf der Seite einfügt, auf das generierte Tag standardmäßig bereits die Eigenschaft „as=1“ angewendet wird.

Wenn ein Benutzer derzeit Medien aus der Medienbibliothek in meine Webanwendung einfügt, sieht das von Sitecore erstellte Bild-Tag in etwa so aus:

<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&amp;w=709" />`

aber ich möchte, dass es ungefähr so ​​aussieht:

<img alt="" height="500" width="709" src="~/media/EAF03CA5568245B59FDDCC4B8FBD83E4.ashx?h=500&amp;w=709&as=1" />

Beachten Sie, dass das zweite img-Tag, das ich bereitgestellt habe, am Ende as=1 hat.

Weiß jemand, wie man das bewerkstelligt?

Ich verwende Sitecore 6.5

War es hilfreich?

Lösung

Sie können Ihre eigene Implementierung von erstellen MediaProvider und eingestellt AllowStretch um immer wahr zu sein.Geerbt von Sitecore.Resources.Media.MediaProvider und überschreiben Sie die GetMediaUrl() Methode:

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);
    }
}

Und dann patchen Sie in der Konfiguration den Medienanbieter auf Ihre benutzerdefinierte Implementierung:

<mediaProvider type="MyCustom.Media.MediaProvider, MyCustom.Kernel"/>

BEARBEITEN:Versuchen Sie, wie Maras vorgeschlagen hat, die Überladung zu überschreiben GetMediaUrl(MediaItem item, MediaUrlOptions options) Methode auch.

Andere Tipps

Sie können eine Erweiterungsmethode erstellen, wie Dies und setze die Option AllowStretch auf true.Sie können auch einen Prozess in der HTTPREQUESTBEGIN-Pipeline hinzufügen und allen Mediendateien Allowstretch zuweisen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top