Comment puis-je déterminer le courant pages type de document dans umbraco?
J'ai ce que je ressens est une question très simple sur Umbraco, mais qui a apparemment pas de réponse.
J'ai un rasoir modèle, la norme des choses, avec @ l'affichage de variables et certains inline code C#.
À un point dans le modèle que j'utilise:
@Umbraco.RenderMacro("myCustomMacro");
aucun problème, tout fonctionne comme prévu.
Maintenant, cette macro est inséré sur chaque page (c'est dans le modèle master) mais j'ai une page de propriété qui permet à l'auteur de mettre en marche et à l'arrêt via une case à cocher dans les propriétés de la page, encore une fois c'est très bien tout fonctionne parfaitement.
Cependant maintenant, je trouve que pour un certain "type de document" ce composant DOIT être affichée, donc j'ai essayé de trouver un moyen pour effectuer cette vérification.
Maintenant dans mon esprit, cela devrait être aussi simple que de faire quelque chose comme ceci:
@{
if(CurrentPage.documentType == "someDocTypeAliasHere")
{
//Render the macro
}
else
{
//Render the macro only if the tick box is checked
}
}
comme je l'ai dit, c'est (ou je crois qu'il devrait être de toute façon) une opération très simple, mais qui jusqu'à présent ne semblent pas avoir de résultat.
Ce que j'Ai essayé jusqu'à présent?
Bien en dehors de la lecture de chaque page de notre-umbraco qui mentionne rien à voir avec le rasoir & @CurrentPage variable, Iv e été à travers le rasoir propriétés de feuille de triche, et j'ai essayé ce qui semble être le plus commun de propriétés, y compris (Dans aucun ordre particulier):
@CurrentPage.NodeTypeAlias
@CurrentPage.NodeType
@CurrentPage.ContentType
@CurrentPage.DocumentType
et divers lettre cas des combinaisons de ces, plus quelques autres qui ressemblait à celui qu'ils pourraient adapter le projet de loi.
Systématiquement les propriétés n'existent pas ou sont vides n'ont donc pas utilisable des informations pour vous aider à déterminer le résultat.
Alors maintenant, après une couple de jours de tourner en rond et de ne pas obtenir n'importe où je me trouve ici..
(Veuillez noter: ce n'est pas une recherche de la transformation XSLT question, ou effectuer une itération sur un enfant de la collection ou quoi que ce soit, de sorte que toutes les demandes de poste XSLT, des Macros, des modèles de Page ou quelque chose comme cela va être refusé, tout ce que je dois faire est de trouver un moyen de déterminer le Type de Document de la page en cours en cours de rendu.)
Acclamations
Shawty
PS: j'ai Oublié de mentionner, je suis en utilisant
umbraco v 4.11.8 (la version de l'Assembly: 1.0.4869.17899)
Juste au cas où quelqu'un demande.
OriginalL'auteur shawty | 2013-05-26
Vous devez vous connecter pour publier un commentaire.
pense que vous avez réellement besoin pour créer un nœud à chaque fois lorsque vous êtes sur la page pour accéder aux pages de propriétés comme nodetypealias et d'autres choses, d'essayer ce que j'ai le même genre de fonctionnalité sur mon site, http://rdmonline.co.uk/ mais dans le menu latéral, où selon la page/section il montre un diff sur les liens de menu.
Laissez-moi savoir si cela fonctionne pour vous.
S'avère que résolu mon problème, bien que n'étant pas directement. J'ai continué à regarder dans "CurrentPage", qui est définie dans une macro (Qui n'est pas null) cependant, Si je viens d'aller directement sur le modèle, tout ce j'avais besoin était là. Tout ce que j'avais à faire était de vérifier "@Modèle.NodeTypeAlias" et j'ai été d'or. Chapeau à vous, monsieur...
OriginalL'auteur denford mutseriwa
Dans Umbraco 7 utilisation
currentPageNode.DocumentTypeAlias
J'ai besoin d'obtenir mon cul en vitesse et en fait la mise à niveau vers V7 🙂
Testé dans 7.2.6. N'a pas de travail,
currentPageNode
n'existe pas selon le compilateur.CurrentPage.DocumentTypeAlias
n'travail, cependant.OriginalL'auteur user3887964
Dans Umbraco 7.1-je utiliser:
@if (@CurrentPage.DocumentTypeAlias == "NewsItem")
CurrentPage.DocumentTypeAlias
a travaillé pour moi dans 7.2.6. Notez que Reles' exemple a un supplément de symbole @ devantCurrentPage
.OriginalL'auteur Leszek Repie
C'est un peu sans rapport avec ce post, mais la recherche sur Google m'a amené sur ce post, donc je pensais que je partage en cas anoyne d'autre s'occupe de cette question: Dans Umbraco 7, pour obtenir tout le contenu du site pour un type spécifique:
OriginalL'auteur Serj Sagan
Si votre rasoir vue hérite de
Umbraco.Web.Mvc.UmbracoViewPage
, vous pouvez également utiliserUmbracoHelper
:Interrogation pour un DocumentType est également facile:
Ce code de manière récursive retour à la liste des
IPublishedContent
nœuds.Si vous souhaitez utiliser cette liste avec vos DocumentType de l'information, ces éléments devront être mappé sur le type spécifique. Autres que que,
IPublishedContent
vous donne la l'information de base pour les nœuds.J'ai vu que vous avez été en utilisant une ancienne version de Umbraco. 🙂
Cette application est seulement pour v7.
OriginalL'auteur Marko Jovanov