ドキュメント タイプ プロパティの値を xslt から直接設定することは可能ですか? 私のページのページ タイトルは、xslt の結果に基づいて変更する必要があり、ページ タイトルはプロパティによって設定されます。
しばらくグーグルで探していましたが、探しているものが見つからなかったので、ここでアンブラコニアンに尋ねてみようと思いました!
ありがとう
上記のように、XSLT は読み取り専用であるため、ページのレンダリング時に影響を受けるような方法でプロパティを変更する方法はありません。
ただし、タイトル タグの間に追加の XSLT マクロを記述できます。このマクロは一致テンプレートを使用できます。これにより、処理している XML ノードに応じて、さまざまなことを行うことができます。
Umbraco 4.7.x でのデータの保存方法により、「ドキュメント タイプ エイリアス」が XML ノードとして使用されます。これは、(独自の DocType がある限り) 検索ページと照合できることを意味します。
「検索」をドキュメントタイプの名前に更新するだけです。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:umb="urn:umbraco.library"
exclude-result-prefixes="umb"
>
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<!-- Match Templates -->
<xsl:template match="/">
<xsl:apply-templates select="$currentPage" />
</xsl:template>
<!-- Search -->
<xsl:template match="search">
WooHoo! I'm the Search page!
</xsl:template>
<!-- All other pages -->
<xsl:template match="*[@isDoc]">
<xsl:value-of select="@nodeName" />
</xsl:template>
</xsl:stylesheet>
私の知る限り、xslt は読み取り専用です。マクロでタイトルとして表示されるものを条件付きで変更できます (この場合はプロパティからタイトルを表示し、そうでない場合は他のタイトルを表示します)、または本当にプロパティを設定したい場合は、カミソリ スクリプトを使用することをお勧めします: Umbraco - how Razor スクリプトを使用してプロパティの値を設定するには