Fermer

avril 26, 2021

Étiquettes de terrain … Obtenez vos étiquettes de terrain Sitecore ici!


Les étiquettes de champ dans Sitecore sont à côté de chaque champ et sont affichées par défaut si l'utilisateur est un administrateur. Les libellés indiquent comment la valeur du champ sera utilisée en fonction des langues, des versions et du type d'élément qui utilise le champ.

Où se trouvent les libellés de champ dans Sitecore?

Les libellés de champ sont affichés à côté de chaque champ si le La valeur du champ est utilisée d'une certaine manière. La valeur du champ sera vide si elle provient de l'élément lui-même.

 Fieldlabels 1

Quels sont les différents types d'étiquettes de champ dans Sitecore?

 Sitecore - Understanding Development Approaches: A Sitecore Outlook

] Voici tous les différents types possibles dans Sitecore 9.1.1. «Anglais» est utilisé comme exemple dans les types de valeur de secours ci-dessous, mais il peut s'agir d'autres langues.

  • [shared]
  • [unversioned]
  • [shared, standard value]
  • [shared, original value]
  • [unversioned, standard value]
  • [unversioned, shared, standard value]
  • [unversioned, shared, standard value]
  • [fallback value (English)]
  • [fallback standard value (English)]

Pourquoi ne vois-je pas d'étiquette à côté de mon champ dans Sitecore?

Cela peut être l'une des raisons ou les deux ci-dessous:

  • Le champ n'a pas d'étiquette à afficher car la valeur du champ provient de la langue et de la version de l'élément actuellement sélectionnées.
  • Vous n'êtes pas un administrateur, vous ne verrez donc pas les étiquettes de champ par défaut. Vous pouvez modifier cela en mettant à jour le paramètre ci-dessous sur «vrai»

Que signifient les différentes étiquettes de champ dans Sitecore?

  • Partagé signifie que la valeur du champ sera partagée entre toutes les langues
  • Non versionné signifie que la valeur du champ sera utilisée parmi toutes les versions
    • Shared et Unversioned proviennent de ces 2 cases à cocher qui sont cochées dans le modèle de la page. Décochez et enregistrez une ou les deux pour supprimer l'étiquette du champ.

 Fieldlabels 2

  • Original Value signifie que la valeur du champ provient d'un clone. Pour en savoir plus cliquez ici .
  • La valeur standard signifie que la valeur du champ provient du modèle et non de l'élément lui-même. Pour en savoir plus cliquez ici .
  • Valeur de repli signifie que la valeur du champ provient de l'élément de langue de secours et non de la langue actuellement sélectionnée pour l'élément lui-même. Vous pouvez en savoir plus ici .

Où est le code pour que je puisse voir comment il fonctionne?

  • Sitecore.Shell.Applications.ContentEditor.EditorFormatter.RenderLabel
    • trouvé sous Sitecore. Le code Client.dll
    • montre comment les étiquettes de champ sont rendues
  • Sitecore.Data.Fields.Field.GetLabel
    • trouvé sous Sitecore.Kernel.dll
    • code exécute le pipeline getFieldLabel directement

Le pipeline utilisé pour rendre les étiquettes de champ peut être trouvé ici


   

Y a-t-il un moyen d'obtenir les étiquettes par champ par programmation?

J'ai créé un script Powershell ci-dessous afin que d'autres tests puissent être effectués. Si le champ n’a actuellement aucun libellé, le résultat sera vide. Vous devrez peut-être modifier le chemin, la langue ou la variable de version dans le code ci-dessous pour voir les étiquettes de champ de votre champ.

<#
   Simple example to get the field labels
#>

 ##################### ######################################
# Variables (modifiez ces variables pour obtenir les résultats souhaités)

# Nom de domaine
$ fieldName = "Titre"

# Chemin de l'objet
$ itemPath = "/ sitecore / content / Accueil"

# Langue de l'article
$ langName = "fr"

# Version de l'article
$ versionNum = 1

################################################ ############
# Principale

# Élément où le champ existe
$ item = Get-Item -Path $ itemPath -Version $ versionNum -Language $ langName

if ($ item -ne $ null)
{
    [Sitecore.Data.Fields.Field] $ field = $ item.Fields [$fieldName]
    
    if ($ champ -ne $ null)
    {
       # Obtenir le champ de modèle
       $ templateField = $ champ.GetTemplateField ()

       Write-Host "Shared = $ ($ templateField.IsShared)"
       Write-Host "Unversioned = $ ($ field.Unversioned)"
       Write-Host "Valeur d'origine = $ ($ field.InheritsValueFromOtherItem)"
       Write-Host "Valeur standard = $ ($ field.ContainsStandardValue)"
       Write-Host "Valeur de repli = $ ($ field.ContainsFallbackValue)"
    
       if ($ field.ContainsFallbackValue)
       {
          Write-Host "Valeur standard de secours = $ ($ field.FallbackValueSource)"
       }
    
       Write-Host "Langue de valeur de secours = $ ($ field.IsValidForLanguageFallback)"
    
       # Afficher le libellé du champ
       $ fieldLabel = $ field.GetLabel ($ true)
       Write-Host "$ ($ field.Name) label = $ ($ fieldLabel)"
    }
    autre
    {
       Write-Host "$ ($ fieldName) n'existe PAS sous l'élément" -f rouge
    }
}
autre
{
    Write-Host "L'élément n'existe PAS" -f rouge
}

À propos de l'auteur

CJ est devenu un développeur Sitecore certifié en 2015. Dans ses temps libres, il aime jouer aux jeux vidéo, au basket-ball et au racquetball.

Plus de cet auteur






Source link