2009-08-13 11 views
13

実際はタイトルが全文です。TYPO3テンプレートに現在のページタイトルを自動的に挿入するにはどうすればよいですか?

私はちょうど

(私はデータベースからページタイトルを取得するためのTypoScriptのビットを必要とするので、私は、HTMLテンプレートで働いている)現在のページタイトルが自動的に表示されるようにテンプレートを変更したいです可能であることを願っています。

答えて

29

です。それはかなり簡単です。 TemplaVoilaを使用していると仮定します。そうでない場合は、次のようにしてください.-D

ダミーのページタイトルでテンプレートにHTMLを挿入することから始めましょう。 ID属性を付けるとマップが簡単になります。同様に:

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

次に、TemplaVoilaを入ると、コンテンツタイプ「のTypoScriptオブジェクトパス」にその<h1>要素をマップします。オブジェクトパスの入力を求められたら、 "lib"名前空間に動的コンテンツが追加されるというコンベンションがあるので、lib.pagetitleという名前にしましょう。 (終わりにその期間を省略します。)これを「INNER」または「OUTER」にマップするかどうかを尋ねるときは、「INNER」を選択します。つまり、<h1>...</h1>タグの間にスペースをマッピングするだけです。 (「OUTER」は、タグを含めて要素全体を置き換えていることを意味します。これは、H1のままにしておきたいので、ここでは不要です。)テンプレートマッピングを保存します。

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

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

これが何を言うことは、私がlib.pagetitleにマップテンプレート内のスペースを取る」でのそのスペースにコンテンツオブジェクトを作成します。 TEXTと入力し、そのコンテンツオブジェクトにページのタイトルを入力します。

TypoScriptテンプレートを保存します。今あなたは終わった!

これはおそらく一目瞭然に聞こえるかもしれませんが、このシステムの素晴らしい点は、それが驚くほど柔軟であることです。動的にテキストを挿入することは始まりにすぎません。 TSRefはすべての詳細を持っています - フレーバーを得るために "getText"を探します。これはTypoScriptテンプレートの "page:title"呼び出しをページタイトルにドロップする関数です。

TSRefはあなたの友人です。私は机の上にそれを印刷したコピーを保管しています - TYPO3を歌いたいなら、あなたの歌集です。

+0

はその素敵なチュートリアルをありがとう! 私はTSRefでそのような関数を見つけようとしましたが、(私はまだgetTextを見つけることができませんでした)ので、私は検索を続けます:) –

+0

ええ、それは難しいTSRef。私はgetTextへの直接リンクを含めるようにしていましたが、私はここで新しいです。このページの内容: http://typo3.org/documentation/document-library/references/doc_core_tsref/4.2.1/view/1/2/#id4252676 –

+0

私は自分自身のキーワードとマーキングで印刷物を保管しています。古い学校、私は知っているが、それは動作します! – jensgram

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

がコール私はこれが役に立てば幸いこのライン

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

でのTypoScriptレンダリングしたい lib.page_title !!!

タグ例:

<v:page.header.title title="NULL" whitespaceString="' '" setIndexedDocTitle="1"> <!-- tag content - may be ignored! --> </v:page.header.title>

インラインの例のようにまったくのTypoScriptを使用せずに

2

あなたは流体唯一のソリューションを使用する場合は、VHSの拡張機能をインストールしてすることができoutput the page title

あなたがフォローして、現在のページのタイトルができ

{v:page.header.title(title: 'NULL', whitespaceString: '' '', setIndexedDocTitle: 1)}

3

INGののTypoScript:

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

し、次の方法のようにtyposcriptObjectPath使用して、あなたのページにこのオブジェクトを使用します。メタデータについて

lib.pagetitle = TEXT 
lib.pagetitle.field=title 

<f:cObject typoscriptObjectPath="lib.pagetitle"/> 
3
lib.pagetitle = RECORDS 
lib.pagetitle { 
    source.data = page:uid 
    tables = pages 
    conf.pages = TEXT 
    conf.pages.field = nav_title 
} 

は、現在のページのタイトルを取得するには:

ます:我々はIE9でQuirksモードを防ぐために、モバイル互換性のウェブサイト

を経ているときのその非常に重要なのは、私はすべてのHTMLページの最上部にこの行を追加する必要があり、ヘッダータグの後のメタを配置しますあなたのTypoScript

でこの

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

場所:あなたのTypoScriptにdisableAllHeaderCode = 1を追加することで、自分で全体のヘッダを書くことができるか、headタグに直接あなたのメタタグを追加することによって、それをハックすることができます

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

httpEquivalent:(TYPO3 4.7以降)1に設定すると、http-equiv属性が「name」属性ではなくmetaタグで使用されます。デフォルト:あなたは流体ページテンプレートでこれを使用する場合は、また、簡単な使用{data. title}は、ページタイトルにアクセスすることができます

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

1

TYPO3のものの詳細については、あなたは私のブログ訪問するかもしれません。

0

はい、流体を使用している場合は、すべてのページプロパティに{data}でアクセスできます。

+1

これはコメントにする必要があります –

関連する問題