[Frage] Hook aus Controller aufrufen

  • toco3 toco3
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    24. 09. 2015, 23:51

    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: http://www.typo3.net/forum/thematik/zeige/thema/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


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    25. 09. 2015, 08:56

    [url=https://typo3.org/documentation/article/how-to-use-existing-hooks-in-your-own-extension/]How to use existing hooks in your own extension]Allgemeines zur Verwendung von Hooks[/url]
    [url=https://docs.typo3.org/typo3cms/extensions/metaseo/DeveloperManual/Index.html#hooks]Listung aller Hooks und Beispiele der Nutzung in deiner Extension[/url]

    Letztendlich registrierst du eine Funktion deiner Klasse für den gewünschten Hook,
    innerhalb dieser Funktion kannst du dann sämtliche Werte von $tsSetupSeo manipulieren.

  • toco3 toco3
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    25. 09. 2015, 19:41

    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!?

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    06. 10. 2015, 16:58

    Ihr braucht hier keinen Hook. Ihr könnt euch doch einfach die Pages Tabelle in ein Domain Model in Extbase mappen und direkt darüber in die Seiteneigenschaften schreiben was ihr wollt:
    http://t3-developer.com/extbase-fluid/cheats-extbase/model/tabelle-pages-in-extbase/

    http://www.aemka.de/

  • 1