[2119 Aufrufe]

5.2 Hooks: article

In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Artikel.

Hook: compileArticle

Der compileArticle Hook wird aufgerufen, wenn ein Modul vom Typ Artikel gerendert wird.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: compileArticle, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;
use Contao\FrontendTemplate;

class ExampleHook {

    public function handleHook(FrontendTemplate $template, array $data, Module $module): void
    {
        $template->customContent = '<p>This will be available in mod_article.html5 via $this->customContent</p>';
    }
}

Parameter:

Parameter Typ Beschreibung
$template \Contao\FrontendTemplate Die Instanz des Templates
$data array Das Array mit der Konfiguration des Moduls
$module \Contao\Module Die Instanz des Moduls

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModuleArticle#L258-L266

Hook: getArticle

Der getArticle Hook wird aufgerufen, wenn ein Artikel geladen wird. Er erlaub das Überschreiben der Konfigruation des Artikels.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
      public: true
      tags:
          - { name: contao.hook, hook: getArticle, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\ArticleModel;

class ExampleHook {

    public function handleHook(ArticleModel $article): void
    {
        $article->tstamp = \time();
    }
}

Parameter:

Parameter Typ Beschreibung
$article \Contao\ArticleModel Die Instanz des Artikels

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\Controller#L404-L411

Hook: getArticles

Der getArticles erlaubt das Ersetzen des Inhalts eines Artikels. Wird ein String zurückgegeben, wird kein weiterer Hook dieses Typs aufgerufen. Wird der Inhalt nicht ersetzt muss null zurückgegeben werden.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: getArticles, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

class ExampleHook {

    public function handleHook(int $pageId, string $column): ?string
    {
        if (10 === (int) $pageId && 'main' === $column) {
            // Generate your custom articles content here
            $customArticlesContent = 'TEST';

            return $customArticlesContent;
        }

        return null;
    }
}

Parameter:

Parameter Typ Beschreibung
$pageId int Id der Elternseite der Artikel
$column string Name der Spalte, in der der Artikel ausgegeben werden soll

Rückgebewert:

Typ Beschreibung
string| null Individueller Inhalt, der den Inhalt des Artikels überschreiben soll, oder null

Referenz im Contao Core: \Contao\Controller#L223-L235

Hook: printArticleAsPdf

Der printArticleAsPdf wird aufgrrufen, wenn ein Artikel als PDF exportiert werden soll. Mit diesem Hook kann die PDF-Erstellung von Contao überschrieben werden.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
      public: true
      tags:
          - { name: contao.hook, hook: printArticleAsPdf, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\ModuleArticle;

class ExampleHook {

    public function handleHook(string $articleContent, ModuleArticle $module): void
    {
        // Trigger your own PDF engine and exit
        exit;
    }
}

Parameter:

Parameter Typ Beschreibung
$articleContent string Inhalt des Artikels
$module \Contao\ModuleArticle Instanz des Moduls des Artikels

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModuleArticle#L296-L304