How can I insert the current page title automatically into a TYPO3 template?

30,391

Solution 1

It is. It's pretty simple to do. I'll assume you're using TemplaVoilà, because if you're not, you should be :-D

Start off by putting some HTML in your template with a dummy page title. Give it an ID attribute so it's easy to map. Like:

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

Next, go into TemplaVoilà and map that <h1> element to the content type "TypoScript Object Path". When it prompts you for the object path, you can put in anything you want -- convention is that dynamic content is added in the "lib" namespace, so let's call it lib.pagetitle. When it asks you if you want to map this to "INNER" or "OUTER", choose "INNER" -- that will mean you're just mapping the space BETWEEN the <h1>...</h1> tags. ("OUTER" means you're replacing the whole element, including the tags, which we don't want here because we want this to stay an H1.) Save your template mapping.

Now go into your site's TypoScript template. Here you're going to insert the logic that fills in that space we just mapped with actual content. To insert the page title is a matter of a couple of lines of TypoScript:

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

What this says is "take the space in the template that I mapped to lib.pagetitle. Create a content object in that space of type TEXT. Then fill that content object with the title of the page."

Save your TypoScript template. Now you're done!

This probably sounds complicated at first glance, and it is, but the nice thing about this system is that it's amazingly flexible. Inserting text dynamically is just the beginning. The TypoScript Reference (a.k.a. the "TSRef") has all the details -- look up "getText" to get a flavor, that's the function that makes the "page : title" call in your TypoScript template drop in the page title.

TSRef is your friend. I keep a printed copy of it at my desk -- if you want to make TYPO3 sing, it is your songbook.

Solution 2

I prefer the vhs solution:

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

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

Solution 3

If you want to use this in a fluid page template, you can also simple use:

{data.title}

to access the page title.

Solution 4

lib.pagetitle = RECORDS
lib.pagetitle {
    source.data = page:uid
    tables = pages
    conf.pages = TEXT
    conf.pages.field = nav_title
}

To get current page title:

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

For meta data :

Its very important to place meta after header tag when we are gone through mobile compatible website

In order to prevent quirks mode in IE9 I need to add this lines at the very top of every HTML page:

You can write the whole header by yourself, by adding disableAllHeaderCode = 1 to your typoscript or you can hack it by adding your meta tag directly to the head tag:

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

Place this at your typoscript

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

httpEquivalent: (Since TYPO3 4.7) If set to 1, the http-equiv attribute is used in the meta tag instead of the “name” attribute. Default: 0.

For more information about TYPO3 stuff you may visit my blog

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

Solution 5

You can current page title by following typoscript:

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

and then use this object to your page using typoscriptObjectPath like following way:

<f:cObject typoscriptObjectPath="lib.pagetitle"/>
Share:
30,391

Related videos on Youtube

Cœur
Author by

Cœur

Everybody should contribute to clean up Stack Overflow. SO is intended to be a top-quality Q&amp;A site, meant not just for the OP, but for posterity. Thanks to search engines, questions and answers become authoritative for the whole Internet. --Paul Draper TODO: disambiguate the 18,300+ duplicate titles from 41,600+ questions fix the uneditable titles (1,117 titles with length &lt; 15) fix the uneditable titles (containing "help", "problem", "question", "doubt", …) fix the uneditable messages (containing "mydomain.com", "domain.com", "mysite.com", "site.com", "abc.com", "xyz.com", …) fix the uneditable messages with link shorteners (5,032 url:goo.gl, 3,673 url:bit.ly, 1,982 url:tinyurl.com, 1,748 url:cl.ly, …) remove the dead images/codes (8,051 url:imageshack.us, 2,818 url:pastie.org, 2,307 url:photobucket, 430 url:skitch.com, 214 url:rapidshare.com, 78 url:paste.ofcode.org, 58 url:expirebox.com, 4 url:megaupload.com, …) fix the broken links in messages, broken links to connect.microsoft.com, … review the potentially broken Apple links: #DOCUMENTATION in the URL, /library but not /archive in the URL, url:developer.apple.com/mac/library, url:developer.apple.com/safari/library rollback the 99+ solved, resolved, fixed, answered titles (meta, alternative query) correct the spelling in titles correct the 6,600+ "thanks in advanced" and 1,100+ "thanks in advice", …

Updated on July 09, 2022

Comments

  • Cœur
    Cœur almost 2 years

    actually the title is the whole question.

    I just want to modify the template so that the current page title is automatically shown (i'm working with html templates so I just need the bit of typoscript to get the page title out of the database)

    I hope that's possible

  • Admin
    Admin almost 15 years
    Thank you for that nice tutorial! I tried to find such a function in the TSRef - but I didn't (also i can't find getText at the moment) so I will keep on searching :)
  • jensgram
    jensgram over 14 years
    I keep a printed copy with my own keywords and markings. Old school, I know, but it works!