現在のページ タイトルを TYPO3 テンプレートに自動的に挿入するにはどうすればよいですか?
-
16-09-2019 - |
質問
実際、タイトルが質問全体です。
現在のページタイトルが自動的に表示されるようにテンプレートを変更したいだけです(私はHTMLテンプレートを使用しているので、データベースからページタイトルを取得するために少しのタイポスクリプトが必要なだけです)
それが可能であることを願っています
解決
それはあります。これを行うのは非常に簡単です。私はあなたがいないのであれば、あなたは:-Dする必要がありますので、あなたは、TemplaVoilaをを使用していると仮定します。
ダミーのページタイトルを使用して、テンプレートにいくつかのHTMLを置くことによってオフに起動します。それがマッピングするのは簡単ですので、それにID属性を与えます。同様ます:
<h1 id="page-title">Page Title Here</h1>
次に、TemplaVoilaを入ると、コンテンツタイプ「のTypoScriptオブジェクトパス」にその<h1>
要素をマップします。それは、オブジェクトのパスが要求されたら、あなたが望むものに置くことができる - 規則は動的なコンテンツは、「LIB」名前空間に追加されていることで、それでは、それがlib.pagetitle
呼びましょう。あなただけ<h1>...</h1>
タグの間にスペースをマッピングしている意味すること - あなたは、「INNER」または「外側」にこれをマッピングする「INNER」を選択したい場合は、それはあなたを尋ねられたとき。 (「OUTERは、」あなたは私たちが、これはH1滞在したいので、我々はここにしたくないタグを含む全要素を、交換していることを意味します。)テンプレートのマッピングを保存します。
これであなたのサイトのTypoScriptのテンプレートに入ります。ここでは、我々だけで、実際のコンテンツにマッピングされたそのスペースを埋めロジックを挿入しようとしています。ページタイトルを挿入するにはのTypoScriptのラインの夫婦の問題であります:
lib.pagetitle = TEXT
lib.pagetitle.data = page : title
これは言う「私はlib.pagetitle
にマップされたテンプレート内のスペースを取るタイプTEXT
の空間でのコンテンツオブジェクトを作成します。次に、ページのタイトルとそのコンテンツオブジェクトを塗りつぶす。」
あなたのTypoScriptテンプレートを保存します。今、あなたは完了です。
これはおそらく一見複雑に聞こえる、それがあるが、このシステムのいいところは、それは驚くほど柔軟であるということです。動的にテキストを挿入するだけの始まりです。 「見上げる - (「TSRef」別名)のTypoScriptリファレンスには、すべての詳細を持っていますgetTextページ」味を得るために、それは作る機能だ 『:ページのタイトルであなたのTypoScriptテンプレート降下のタイトル』の呼び出しを
TSRefはあなたの友達です。あなたはTYPO3が歌うようにしたい場合は、それはあなたの歌集である
- 私は私の机でそれの印刷されたコピーを保持します。他のヒント
私はVHSソリューションを好むます:
{v:page.info(field:'title')}
https://fluidtypo3.org/viewhelpers/vhs/master/Page/ InfoViewHelper.htmlする
することはでき、次のTypoScriptによって現在のページタイトルます:
lib.pagetitle = TEXT
lib.pagetitle.data = page : title
、その後、次の方法のようにtyposcriptObjectPathを使用して、あなたのページにこのオブジェクトを使用します:
<f:cObject typoscriptObjectPath="lib.pagetitle"/>
lib.pagetitle = RECORDS
lib.pagetitle {
source.data = page:uid
tables = pages
conf.pages = TEXT
conf.pages.field = nav_title
}
現在のページのタイトルを取得するには:
lib.pagetitle = TEXT
lib.pagetitle.field=title
のメタデータの場合:
その私たちは、モバイル互換性のあるウェブサイトを介して行っている場合、ヘッダータグの後のメタを配置することが非常に重要
IE9でQuirksモードを防止するために、私はすべてのHTMLページの最上部にこの行を追加する必要があります:
あなたはのTypoScriptへの disableAllHeaderCode = 1 を追加することによって、自分で全体のヘッダを書くことができるか、headタグに直接あなたのメタタグを追加することによって、それをハックすることができます:
page.headTag = <head><meta http-equiv="X-UA-Compatible" content="IE=edge" />
あなたのTypoScriptでこれを置きます。
meta.X-UA-Compatible = IE=edge,chrome=1
httpEquivalent:1に設定した場合(TYPO3 4.7以来)は、http-equiv属性は、metaタグの代わりに、「名前」属性で使用されています。デフォルト:0
あなたが私のブログを訪問することがTYPO3のものの詳細については、
<のhref = "https://jainishsenjaliya.wordpress.com/2013/10/10/put-meta-tag-on-top-of-header-section-in-typo3/" のrel = "nofollowを" > https://jainishsenjaliya.wordpress.com/2013/10/10/put-meta-tag-on-top-of-header-section-in-typo3/ の
fluid
を使用したい場合は、、VHS
の拡張機能をインストールし、することができます<のhref =「http://fluidtypo3.org/viewhelpers/vhs/development/Page/Header/TitleViewHelper.html」のrel =」このようにまったくTypoScript
を使用せずにnoreferrer nofollowを ">出力ページタイトルに:
タグ例:
<v:page.header.title title="NULL" whitespaceString="' '" setIndexedDocTitle="1">
<!-- tag content - may be ignored! -->
</v:page.header.title>
インライン例:
{v:page.header.title(title: 'NULL', whitespaceString: '' '', setIndexedDocTitle: 1)}
あなたがページのタイトルにアクセスすることができますまた、簡単な使用{data. title}
流体ページテンプレートでこれを使用したい場合。
lib.page_title = CONTENT
lib.page_title {
table = pages
select {
where = uid = 2
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = title
wrap = <h1 class="page_title">|</h1>
}
20 = TEXT
20 {
field = subtitle
stdWrap.required = 1
stdWrap.wrap = <h5>|</h5>
}
}
}
この線でのTypoScriptレンダリングする場所のlib.page_titleのを呼び出します
<f:cObject typoscriptObjectPath='lib.page_title' />
私はこれが役に立てば幸い!!!
質問はかなり古いものですが、まだ読んだことのない内容をここに追加したいと思います。
TYPO3 はヘッダーに関して多くの機能を提供しており、完全に個別にレンダリングすることも可能であることは正しいことです。それにもかかわらず、TYPO3 のすべての優れたオプションは、個々のソリューションによって多かれ少なかれ無効になります。
それでは、最初に質問に対する直接の答えを示します。
デフォルトのページタイトルは次のようにオーバーライドできます
config.pageTitle.stdWrap.override.cObject < lib.pagetitle
複数のページ タイプが定義されており、タイトルがタイプごとに個別に設定される場合、構成はページ定義内に記載できます。
page = PAGE
page {
typeNum = 0
config.pageTitle.stdWrap.override.cObject < lib.pagetitle_1
...
}
anotherPage = PAGE
anotherPage {
typeNum = 1
config.pageTitle.stdWrap.override.cObject < lib.pagetitle_2
...
}
以下はまだ lib.pagetitle
これは、タイトルやサブタイトルだけを使用するよりも少しだけ効果があります。拡張子がページで使用されている場合は、news-title が使用されます。
lib.pagetitle = COA
lib.pagetitle {
10 = TEXT
10 {
// subtitle: used as field for title tag
value.field = subtitle // title
if.isFalse.data = GP:tx_news_pi1|news
}
20 = RECORDS
20 {
if.isTrue.data = GP:tx_news_pi1|news
dontCheckPid = 1
tables = tx_news_domain_model_news
source.data = GP:tx_news_pi1|news
source.intval = 1
conf.tx_news_domain_model_news = TEXT
conf.tx_news_domain_model_news {
field = title
htmlSpecialChars = 1
}
}
}
ここで、個別のヘッダーが最適な解決策ではない可能性があると私が考える背景をいくつか説明します。
- TYPO3 は通常、便利ないくつかの詳細をヘッダーに追加します。それらを個別に新しく組み合わせる必要はありません。
- スクリプトとスタイルシートは整理されており、TypoScript によって圧縮および結合することもできます。いくつかの構文に従えば、jquery のようなライブラリが 1 回だけインクルードされるようにさえ注意されます。
- TYPO3 には TypoScript の多くの関数があり、ヘッダーに関連するすべてを定義できます。また、スクリプトをヘッダーにまったく含めず、代わりにページソースの下部に含めるかどうかを決定することもできます。
- メタタグを定義できます(拡張機能またはサブテンプレートによってオーバーライドできます)。
私の意見では、このロジック全体を独自のテンプレートに手動で再度実装することは役に立たず、ヘッダーは AJAX や動的 PDF ファイルなどの特殊なページタイプに対してのみ無効にすべきだと思います。これが、私がこのオプションが有用であると考える主な理由です。
彼女は依然として、 config
-TypoScript のオプション (アンカー ページタイトル):https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#pagetitle