13

実際、タイトルは質問全体です。

現在のページタイトルが自動的に表示されるようにテンプレートを変更したいだけです(HTMLテンプレートを使用しているので、データベースからページタイトルを取得するために少しタイプミスが必要です)

それが可能だといいのですが

4

8 に答える 8

28

です。行うのは非常に簡単です。TemplaVoilàを使用していると仮定します。使用していない場合は、次のようにする必要があります:-D

まず、ダミーのページタイトルを使用してテンプレートにHTMLを配置します。マッピングしやすいようにID属性を付けてください。好き:

<h1 id="page-title">Page Title Here</h1>

次に、TemplaVoilàに移動し、その<h1>要素をコンテンツタイプ「TypoScriptObjectPath」にマップします。オブジェクトパスの入力を求められたら、好きなものを入力できます。慣例では、動的コンテンツは「lib」名前空間に追加されるため、これを呼び出しましょうlib.pagetitle。これを「INNER」と「OUTER」のどちらにマッピングするかを尋ねられたら、「INNER」を選択します。これは、<h1>...</h1>タグ間のスペースをマッピングするだけであることを意味します。(「OUTER」は、タグを含む要素全体を置き換えることを意味します。これはH1のままにしておきたいため、ここでは不要です。)テンプレートマッピングを保存します。

次に、サイトのTypoScriptテンプレートに移動します。ここでは、実際のコンテンツでマッピングしたスペースを埋めるロジックを挿入します。ページタイトルを挿入するには、TypoScriptの数行の問題です。

lib.pagetitle = TEXT
lib.pagetitle.data = page : title

これは、「マップしたテンプレートのスペースを取ります。そのlib.pagetitleタイプのスペースにコンテンツオブジェクトを作成しますTEXT。次に、そのコンテンツオブジェクトにページのタイトルを入力します。」

TypoScriptテンプレートを保存します。これで完了です。

これは一見複雑に聞こえるかもしれませんが、このシステムの良いところは、驚くほど柔軟なことです。テキストを動的に挿入することはほんの始まりに過ぎません。TypoScriptリファレンス(別名「TSRef」)にはすべての詳細があります。「getText」を検索してフレーバーを取得します。これは、TypoScriptテンプレートの「page:title」呼び出しをページタイトルにドロップする関数です。

TSRefはあなたの友達です。私はそれの印刷されたコピーを私の机に置いています-あなたがTYPO3を歌わせたいなら、それはあなたの歌集です。

于 2009-08-13T21:47:32.467 に答える
6

私はvhsソリューションを好みます:

{v:page.info(field:'title')}

https://fluidtypo3.org/viewhelpers/vhs/master/Page/InfoViewHelper.html

于 2017-04-17T22:08:29.367 に答える
4
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のクァークズモードを防ぐために、すべてのHTMLページの最上部に次の行を追加する必要があります。

タイプミススクリプトにdisableAllHeaderCode=1を追加することにより、ヘッダー全体を自分で書き込むことができます。または、ヘッドタグに直接メタタグを追加することにより、ヘッダー全体をハックすることができます。

 page.headTag = <head><meta http-equiv="X-UA-Compatible" content="IE=edge" />

これをタイプミスに配置します

 meta.X-UA-Compatible = IE=edge,chrome=1

httpEquivalent:(TYPO3 4.7以降)1に設定すると、「name」属性の代わりにhttp-equiv属性がメタタグで使用されます。デフォルト:0。

TYPO3のものの詳細については、私のブログをご覧ください。

https://jainishsenjaliya.wordpress.com/2013/10/10/put-meta-tag-on-top-of-header-section-in-typo3/

于 2015-07-11T07:00:25.810 に答える
4

これを流動的なページテンプレートで使用する場合は、次のように簡単に使用することもできます。

{data.title}

ページタイトルにアクセスします。

于 2016-09-07T07:15:16.753 に答える
3

次のタイプミスにより、現在のページタイトルを表示できます。

lib.pagetitle = TEXT
lib.pagetitle.data = page : title

次に、次のようにtyposcriptObjectPathを使用して、このオブジェクトをページに使用します。

<f:cObject typoscriptObjectPath="lib.pagetitle"/>
于 2014-11-14T06:27:06.757 に答える
1
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>
        }
    }
}

この行でタイプミスをレンダリングしたい場所でlib.page_titleを呼び出します

<f:cObject typoscriptObjectPath='lib.page_title' />

これがお役に立てば幸いです!!!

于 2014-06-04T11:26:11.093 に答える
1

唯一の解決策を使用したい場合は、拡張機能をfluidインストールすると、次のようにまったく使用せずにページタイトルを出力できます。VHSTypoScript

タグの例:

<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)}

于 2014-09-02T15:20:32.893 に答える
0

質問はかなり古いですが、私はまだここで読んだことがない何かを追加したいと思います。

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タイトルまたはサブタイトルを使用するだけではなく、ページで拡張子が使用されている場合はニュースタイトルを使用します。

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ファイルなどの特別なページタイプに対してのみ無効にする必要があると思います。これが、私がそのオプションを有用だと考える主な理由です。

彼女はまだTypoScriptの-オプションに関する最新のドキュメントへの現在のリンク(アンカーページタイトル): httpsconfig://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#pagetitle

于 2018-11-08T21:25:43.437 に答える