2013-05-10 19 views
5

SEO geliştirmek için sc:Image alanı için bazı özel işaretlemeler eklemem gerekiyor. Bu işaretleme alanının bir özellik değil, bu yüzden codebehind dan, böyle bir şey denedim:Bir sitecore sc alanına özel işaretlemeyi nasıl koyarsınız?

slideImage.Attributes.Add("ControlType", "C4Image"); 
slideImage.Attributes.Add("rel", relString); 

Ama bu olmuyor, ben render çıktı şey görmüyoruz. Bunu yapmanın bir yolu var mı? MyImage sınıf

namespace My.Assembly.Namespace 
{ 
    public class MyImage : Sitecore.Web.UI.WebControls.Image 
    { 
     public virtual string RelAttribute { get; set; } 

     protected override void PopulateParameters(Sitecore.Collections.SafeDictionary<string> parameters) 
     { 
      base.PopulateParameters(parameters); 
      if (!String.IsNullOrEmpty(RelAttribute)) 
      { 
       parameters.Add("rel", RelAttribute); 
      } 
     } 
    } 
} 

Ve sonra ad kayıt olmak ve kullanmak:

cevap

3

Sen Sitecore.Web.UI.WebControls.Image devralma sınıfını kendi ve böyle geçersiz oluşturabilir

<%@ Register tagPrefix="my" namespace="My.Assembly.Namespace" assembly="My.Assembly" %> 

<my:MyImage runat="server" RelAttribute="reltest" Field="logo"/> 

kullanabilirsiniz tüm my:MyImage da sc:Image standart öznitelikleri. Kod, <img rel="reltest" src="logo.jpg" ... /> numaralı img etiketi oluşturacaktır.

Yukarıdaki kodu, ControlType özniteliğini de desteklemek için kolayca genişletebilirsiniz.

+0

+1. Daha kolay bir yol buldum (cevabımı gör) –

8

Hem kontrol hem de kontrolde ekstra özellikler belirlemek için "Parametreler" özelliğini kullanmanız gerekir.

Böyle bunu çevrilevilebilecekleri:

böyle işlenecek
<sc:FieldRenderer ID="PageImage" runat="server" FieldName="ContentImage" Parameters="ControlType=C4Image&rel=relString" /> 
<sc:Image ID="SCPageImage" runat="server" Field="ContentImage" Parameters="ControlType=C4Image&rel=relString" /> 

: Bu gibi ben FieldRenderers ekmesi ve düzenli bir html etiketi dönmek screnario yıllardan için

<img width="1232" height="637" controltype="C4Image" rel="relString" alt="" src="~/media/Images/DEMO backgrounds/background2.ashx"> 
+0

Sitecore'da bir şey yapmanın pek çok yolu var :) –

+0

Ama, C# ile özellikleri kurmak istediğini düşündüm? Burada statik olarak ayarlanıyorsun. –

+1

Evet - ama C# 'dan da yapabilirsiniz. Bymet ayarı .Parameters özelliği - PageImage.Parameters = "blah: –

-2

görüntünün (URL'sinin) bağlanmasıyla. LinkManager burada arkadaşınız. Öneri için