2010-02-18 7 views
3

Est-ce que les rendus usercontrols/xslt permettent de vérifier si un article a été publié en édition restreinte ou n'est pas publiable dans le CMS Sitecore? Dans certaines situations, nous expliquons aux utilisateurs du CMS comment définir des restrictions de publication et renvoyer des questions sur les éléments affichant des valeurs standard sur le site Web. Par exemple:Éléments non publiés/restreints dans Sitecore affichant des valeurs standard

  • J'ai un élément et il contient des champs avec des informations.
  • Je publie cet article et tout va bien. Le contenu est affiché sur le site Web.
  • Je change les restrictions de publication et je dis qu'il ne peut être publié que du 23-02-2010 au 25-02-2010.
  • Ce qui se passe maintenant, c'est que lorsque je publie à nouveau le site Web, l'élément qui a été affiché correctement auparavant affiche maintenant les valeurs standard.

EDIT:

  • L'article que je parle ne dispose que d'une version . (Néerlandais - version 1) L'article est juste fait à travers insert de modèle et rempli d'informations. Une fois les informations remplies, Les restrictions de publication sont définies. Lorsque cela est fait et l'article n'est pas tombant dans la date de cette restriction je vois les valeurs standard @ avant.

Les restrictions de publication peuvent être utilisées pour s'assurer que les informations ne sont affichées que dans un certain laps de temps? Est-ce quelque chose que nous pouvons corriger dans notre code? Pouvons-nous vérifier si un article n'est pas dans la gamme des resctrictions publiques/non publié?

Répondre

2

Donc encore une fois pour donner aux autres utilisateurs la possibilité de vérifier une réponse à cette question, je vais répondre à ma propre question.

Si un utilisateur dans le CMS Sitecore spécifie une plage où un élément peut être publié et que vous voyez une valeur standard figurant sur l'avant:

  • Consulter la classe/rendu tout qui montre les informations
  • Assurez-vous que votre code vérifie pour les versions disponibles

S'il n'y a qu'une seule version disponible comme dans mon cas, et il n'y a pas d'autres versions alors que la date d'aujourd'hui se situe en dehors de la plage spécifiée faire un élément simple .Empty c diable sera suffisant.

Chaque fois que vous avez un élément Sitecore que vous devez gérer:

article a des versions en langue de contexte ?? ->item.Versions.Count

article peut être publié ?? ->!item.Publishing.IsValid(DateTime.Today, false)

article a mise en page ?? ->item.Visualization.GetLayout(Sitecore.Context.Device)

J'espère que cette information sera utile à quelqu'un!

+0

En bref, si vous limitez la publication de toutes les versions d'un article, vous finissez par afficher vos valeurs standard, qui sont littéralement la version '0' de l'élément de contenu. –

0

Voici l'explication possible du comportement que vous avez décrit. Vous disposez de plusieurs versions de votre élément et lorsque vous placez des restrictions de publication sur la version avec laquelle vous travaillez (en général, la dernière version), elle n'est pas publiée. Si l'une des versions précédentes, qui devient publiable maintenant, ne remplace pas les valeurs standard, ces valeurs standard s'affichent sur le frontal.

La solution à ce problème dépend de vos besoins. Par exemple, si vous souhaitez gérer l'élément entier, définissez les restrictions de publication au niveau d'un élément. Comme pour votre question initiale, n'importe quel champ d'un élément peut être adressé à partir du contrôle utilisateur/rendu XSL (par exemple, fonction sc: fld). Mais gardez à l'esprit que vous interrogez la base de données Web à partir du rendu. Si les restrictions de publication sont définies et que l'élément n'est pas publiable, vous n'obtiendrez pas cet élément et ses champs à partir du rendu/sublayout.

Espérons que cela aide.

+0

J'ai édité ma question pour être encore plus clair! Thx pour répondre mais revérifier ma question plz – Younes

+0

Quant à la dernière partie de votre réponse: Je comprends que lorsqu'un article est non publié, je ne serai pas en mesure de rendre les valeurs de cet article particulier. Comment puis-je m'assurer que mon code n'essaiera pas de le faire. Y at-il un moyen de vérifier dans le code si dans l'article est publiable/tombe dans la date de restriction de publication? De cette façon, je peux empêcher les éléments de passer en mode valeur par défaut lorsque je dépublier/restreindre. – Younes

+0

Je vois que chaque article a une option pour vérifier où il est vide. Lorsque j'utilise cette option, je peux masquer les valeurs standard lorsque l'élément n'a pas de version! – Younes