Zum Inhalt springen

HeaderData aus eigener Extension heraus überschreiben?

Erstellt am 18. August 2009 · 7 Antworten · letzte Antwort am 13. September 2016

Tags: SEO, Frage

schani ·

Hallo,
ich muss aus einer eigenen Extension einen Seitentitel und weitere Metadaten einer Seite überschreiben.

Im der Extension kann ich dazu folgendes verwenden:

$GLOBALS['TSFE']->additionalHeaderData[$extKey] = '<title>Neuer Seitentitel</title>';

Es wird zwar die neue Zeile eingefügt, aber die alte nicht überschrieben.

Gibt es da eine Möglichkeit den alten <title> Tag zu überschreiben?

Besten Dank für Hilfe

Christian

Mopps ·

in deiner Extension z.B. so etwas:

$this->local_cObj->LOAD_REGISTER(array(
        'extKeywords' => 'Das, sind, keywords',
	'extDescription' => $row['desc']
), '');

Ich verwende meistens für die Erzeugung der Metatags die Extension "metatags". Um die obige Sache darin zu verwenden folgendes im Setup.

page.headerData.999 {
  global {
    description =
    keywords =
  }
  local >
  local {
    description.data = register:extDescription
    ifEmpty.description.data = page:description
    
    keywords.data = register:extKeywords
    ifEmpty.keywords.data = page:keywords
  }
}
schani ·

Ich muss das Thema noch mal aufgreifen.

Die Lösung führt zu einem Fehler. Wenn ich

$this->local_cObj->LOAD_REGISTER...

einbaue bekomme ich folgende Fehlermeldung

Fatal error: Call to a member function LOAD_REGISTER() on a non-object in /home/httpd/vhosts/domain.de/httpdocs/typo3conf/ext/wwl_persona/pi1/class.tx_wwlpersona_pi1.php on line 123

Was mache ich falsch?
Besten Dank für Hilfe

Christian

mizzos ·
schani schrieb

Ich muss das Thema noch mal aufgreifen.

Die Lösung führt zu einem Fehler. Wenn ich

$this->local_cObj->LOAD_REGISTER...

einbaue bekomme ich folgende Fehlermeldung

Fatal error: Call to a member function LOAD_REGISTER() on a non-object in /home/httpd/vhosts/domain.de/httpdocs/typo3conf/ext/wwl_persona/pi1/class.tx_wwlpersona_pi1.php on line 123

Was mache ich falsch?

Sitze hier am selben Problem. Ich meine zumindest für diesen Fehler eine Lösung gefunden zu haben:

$this->local_cObj = t3lib_div::makeInstance('tslib_cObj');

Allerdings funktioniert das mit den keywords / description immer noch nicht.

Mein Code sieht so aus:

PHP in einer function meines eigenen plugins:

$keywords = 'keyword1 keyword2';
$description = 'description1 description2';

$this->local_cObj = t3lib_div::makeInstance('tslib_cObj');
$this->local_cObj->LOAD_REGISTER(array(
        'extKeywords' => $keywords,
	'extDescription' => $description
), '');

ts_setup.script:

page.meta{
	keywords.field = keywords
	description.field = description
	abstract.field = abstract
	robots = INDEX,FOLLOW
}

Dieser Teil ließt die Standard-Metadaten die ich in die Seiteneigenschaften eigetragen habe aus. (Hab's auch schon mal weg gelassen - ohne Erfolg)

page.headerData.999 {
  global {
    description =
    keywords =
  }
  local >
  local {
    description.data = register:extDescription
    ifEmpty.description.data = page:description
 
    keywords.data = register:extKeywords
    ifEmpty.keywords.data = page:keywords
  }
}
BlackPixel ·

Hallo,

das Thema ist zwar schon alt aber über google sehr gut zu finden. Deshalb hier noch die Lösung zum obigen Problem:

$this->local_cObj->LOAD_REGISTER

ist falsch sofern man das cObj nicht als local_cObj instanziert. Im Objectkontext der Extension ist das cObj über

$this->cObj

zu erreichen. Dann sollte es funktionieren.

Gruß Manfred

stefano37 ·

Also für mich hat folgendes in Bezug auf den meta robots-tag funktioniert:

// yipeee, das geht
$GLOBALS['TSFE']->pSetup['meta.']['robots'] = "noindex,follow";

Keywords und Description gingen noch einfacher:

$GLOBALS['TSFE']->page['description'] = $newDescription;
$GLOBALS['TSFE']->page['keywords'] = $newKeywords;