Zum Inhalt springen

Hook aus Controller aufrufen

Erstellt am 24. September 2015 · 3 Antworten · letzte Antwort am 6. Oktober 2015

Tags: SEO, Frage

toco3 ·

Hallo zusammen,

ich habe folgende Frage. Ich habe eine Extbase Erweiterung mit der ich im Controller den Metatag Description "überschreiben" möchte. Auf dieser TYPO3 Installation (6.2) ist tq_seo im Einsatz, welches ja diverse Hooks anbietet.
Leider habe ich nirgends eine Anleitung gefunden, wie ich aus meiner Action heraus den Hook verwenden kann.

Soweit ich das verstanden habe gibt in der tq_seo in der MetatagPart.php die Einbindung des Hooks:

// Call hook
\TQ\TqSeo\Utility\GeneralUtility::callHook('metatag-setup', $this, $tsSetupSeo);

// #####################################
// Generate MetaTags
// #####################################

// title
if (!empty($tsSetupSeo['title']) && $enableMetaDc) {
$ret['meta.title'] = '<meta name="DC.title" content="' . htmlspecialchars(
$tsSetupSeo['title']
) . '" />';
}

// description
if (!empty($tsSetupSeo['description'])) {
$ret['meta.description'] = '<meta name="description" content="' . htmlspecialchars(
$tsSetupSeo['description']
) . '" />';

if ($enableMetaDc) {
$ret['meta.description.dc'] = '<meta name="DC.Description" content="' . htmlspecialchars(
$tsSetupSeo['description']
) . '" />';
}
}

d.h. ich müsste über den Hook den Wert von $tsSetupSeo['description'] überschreiben können!?

Jetzt habe ich ein paar Anleitungen gefunden, wie diese hier: #117942 - aber irgendwie habe ich noch nicht ganz verstanden, wie ich aus meiner Action einen Wert übergeben kann!?

Wer schön, wenn mir jemand auf die Sprünge helfen könnte, oder vielleicht auch einfach eine Extension nennen, die das macht!

Danke

Christian

toco3 ·

Hallo Jenses,

erstmal vielen Dank für deine schnelle Antwort, aber irgendwie werde ich aus dem Tutorial von Robert auch nicht so ganz schlau :-(

ich habe eine detail action in der ich die metadescription setzte möchte:

/**
* action detail
*
* @param \TOCO3\Toco3Pwproject\Domain\Model\Project $project
* @return void
*/
public function detailAction(\TOCO3\Toco3Pwproject\Domain\Model\Project $project=NULL) {
$arguments = $this->request->getArguments();
$projectdata = $this->projectRepository->findByUid((int)$arguments['uid']);

$metadescription = $projectdata->getSeometadescription();

????? HIER MÜSSTE NUN $metadescription übergeben werden !!!!

$this->view->assign('project', $projectdata);
}

Ich müsste jetzt irgendwie an der Stelle den Hook aufrufen und $metadescription übergeben!?