Wie Ermittle ich die aktuelle Seiten-Dokument-Typ in umbraco?
Habe ich, was ich fühle, ist eine sehr einfache Frage zu Umbraco, aber eine, die hat noch keine offensichtliche Antwort.
Ich habe eine razor-Vorlage, die standard-Sachen, mit @ Anzeige von Variablen und einige inline C# - code.
An einem Punkt in der Vorlage, die ich verwenden:
@Umbraco.RenderMacro("myCustomMacro");
da auch keine Probleme, funktioniert alles wie erwartet.
Nun, dieses makro eingefügt wird auf jeder Seite (es ist in der master-Vorlage), aber ich habe eine Seite-Eigenschaft, die erlaubt, dass die Autoren von Inhalten, um Sie ein-und ausschalten über ein Kontrollkästchen in den Eigenschaften der Seite, wieder, so weit so gut, alles funktioniert perfekt.
Aber jetzt finde ich, dass für eine bestimmte "Dokument-Typ" diese Komponente angezeigt werden MUSS, so dass ich versucht habe, einen Weg zu finden, zu führen, zu überprüfen.
Nun in meinem Kopf, diese sollte einfach sein, etwas wie das zu tun:
@{
if(CurrentPage.documentType == "someDocTypeAliasHere")
{
//Render the macro
}
else
{
//Render the macro only if the tick box is checked
}
}
wie gesagt, dies ist (oder ich glaube, es sollte jedenfalls) eine sehr einfache operation, aber eine, die bisher nicht zu haben scheinen, ein Ergebnis.
Was Habe ich versucht, so weit?
Gut, abgesehen von der Lektüre auf jeder Seite unserer-umbraco, erwähnt nichts zu tun mit razor & @CurrentPage variable, Iv ' E wurde durch das razor Eigenschaften Spickzettel, und versucht, was zu sein scheinen die häufigsten Eigenschaften, einschließlich (ohne spezifische Reihenfolge):
@CurrentPage.NodeTypeAlias
@CurrentPage.NodeType
@CurrentPage.ContentType
@CurrentPage.DocumentType
und verschiedenen Buchstaben-Kombinationen von diesen, sowie einige andere, die sah, wie Sie könnte die Rechnung passen.
Konsequent die Eigenschaften entweder nicht existieren oder leer sind, so haben Sie keine brauchbare Informationen in Ihnen zu helfen, Sie bestimmen das Ergebnis.
So, jetzt nach ein paar Tagen im Kreis drehen und nicht immer überall finde ich mich hier..
(Bitte beachten Sie: dies ist nicht eine Suche nach der XSLT-Frage, oder Durchlaufen ein Kind Kollektion oder so etwas, also keine Anfragen zu posten XSLT, Makros, Seite Vorlagen oder ähnliches werden abgelehnt, alles, was ich tun müssen, ist einen Weg finden, um zu bestimmen, die Art des Dokuments von der aktuellen Seite gerendert wird.)
Cheers
Shawty
PS: Vergaß zu erwähnen, ich bin mit
umbraco v 4.11.8 (Assembly-version: 1.0.4869.17899)
Nur falls jemand fragt.
InformationsquelleAutor shawty | 2013-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
glaube, Sie wirklich brauchen, erstellen ein Knoten jedes mal, wenn Sie auf die Seite, um Zugang zu den Seiten-Eigenschaften wie nodetypealias und Sachen, die versuchen, diese ich habe die gleiche Art von Funktionalität auf meiner Seite, http://rdmonline.co.uk/ aber in der Seite im Menü, wo je nach Seite/Abschnitt es zeigt eine diff-Menü links.
Lassen Sie mich wissen, wenn dieses für Sie arbeitet.
Stellt sich heraus, dass mein problem gelöst, wenn auch nicht direkt. Ich sah in 'CurrentPage', die definiert ist, in einem makro (Das ist es nicht null ist) allerdings, Wenn ich nur direkt auf das Modell, alles, was ich brauchte, war drin. Alle die ich tun musste, war check "@Model.NodeTypeAlias" und ich war Gold. Hut vor Ihnen, sir...
InformationsquelleAutor denford mutseriwa
In Umbraco 7
currentPageNode.DocumentTypeAlias
Ich brauche, um meinen Hintern in Gang und eigentlich ein upgrade auf V7 🙂
Getestet in 7.2.6. Hat nicht funktioniert,
currentPageNode
existiert nicht nach dem compiler.CurrentPage.DocumentTypeAlias
hat zwar funktioniert, jedoch.InformationsquelleAutor user3887964
In Umbraco 7.1 ich verwende:
@if (@CurrentPage.DocumentTypeAlias == "NewsItem")
CurrentPage.DocumentTypeAlias
war für mich in 7.2.6. Beachten Sie, dass Reles' Beispiel hat ein extra symbol @ vorCurrentPage
.InformationsquelleAutor Leszek Repie
Dies ist ein bisschen Bezug zu diesem post, aber Google-Suche brachte mich zu diesem Beitrag, so dass ich dachte, ich würde Aktie im Falle anoyne anderes ist der Umgang mit diesem Thema: In Umbraco 7, um alle Inhalte auf der Website für einen bestimmten Typ:
InformationsquelleAutor Serj Sagan
Wenn Ihr razor view erbt von
Umbraco.Web.Mvc.UmbracoViewPage
Sie können auchUmbracoHelper
:Abfragen für eine bestimmte DocumentType ist auch einfach:
Dieser code wird rekursiv return die Liste der
IPublishedContent
Knoten.Wenn Sie möchten, verwenden Sie diese Liste mit Ihren spezifischen DocumentType Informationen, diese Gegenstände zugeordnet werden, dem spezifischen Typ. Other than, die
IPublishedContent
gibt Ihnen die grundlegende Informationen für die Knoten.Habe ich später gesehen, dass Sie eine ältere version von Umbraco. 🙂
Diese Implementierung ist nur für v7.
InformationsquelleAutor Marko Jovanov