Dans Optimizely CMS, le contenu est stocké sous forme de blocs, de pages et de médias – qui peuvent tous être appelés contenu. Le contenu est créé à l’aide de différentes propriétés intégrées ou personnalisées type de propriété.
Dans le passé
Un élément de lien unique est un type de propriété très recherché depuis des années. Nous avions différentes options, chacune avec ses propres limites. Ces options incluent :
URL: boîte de dialogue Lien avec prise en charge du glisser-déposer. Liens internes et externes.
public virtual Url Url { get; set; }
PageReference: Sélecteur de contenu avec prise en charge du glisser-déposer. Liens internes uniquement.
public virtual PageReference PageReference { get; set; }
Ni Url ni PageReference ne peuvent spécifier un texte de lien. Vous pouvez bien sûr le faire avec une propriété séparée, comme celle-ci. Mais c’est loin d’être optimal.
public virtual string LinkText { get; set; }
LinkItemCollection: Lien vers plusieurs ressources externes et/ou internes. Peut être limité à 1 article.
[ListItems(1)]
public virtual LinkItemCollection LinkItemCollection { get; set; }
En utilisant LinkItemCollection, vous pouvez spécifier le LinkText, mais la propriété est conçue pour fonctionner avec une liste de liens, pas un seul lien.
Ensuite, un package Labs
En 2020, Grzegorz Wiecheć, d’Optimizely, sort un Forfait Episerver Labs cela ajoute un LinkProperty avec un seul lien et un texte de lien.
Cela a très bien fonctionné, mais les packages Labs ne sont pas pris en charge et peuvent changer à tout moment. Pour cette raison, vous devez faire preuve de prudence lorsque vous les adoptez dans votre projet.
Enfin, un support intégré
En septembre 2022, le Propriété LinkItemLinkItem property est enfin intégré dans CMS 12.
Vous pouvez l’ajouter à votre type de contenu comme ceci.
public virtual LinkItem LinkItem { get; set; }
Et cela fonctionne comme une propriété Url avec des champs supplémentaires pour le texte du lien et le titre du lien.
C’est ça!