contao/test — Issue #2332: Neuen Hook zum Erweitern des Artikels (z.B. weitere Social Media Integrationen)
Author: jantheofel
Created: 2011-11-29 09:29:06+00:00
State: open
Labels: Feature, frontend

Um neue Elemente in Artikel zu integrieren, die Daten aus mehreren Tabellen benötigen, möchte ich einen **neuen Hook im Artikel** vorschlagen. Dieser kann beispielsweise genutzt werden um weitere Social Media Buttons aber auch andere Dinge zu ergänzen.

Der Hook sollte aus meiner Sicht am Ende der compile() Funktion in system/modules/frontend/ModuleArticle.php stehen und etwas so aussehen:

```
// HOOK: extend article values
if (isset($GLOBALS['TL_HOOKS']['extendArticle']) && is_array($GLOBALS['TL_HOOKS']['extendArticle']))
{
foreach ($GLOBALS['TL_HOOKS']['extendArticle'] as $callback)
{
$this->import($callback[0]);
$this->moduledata[] = $this->$callback[0]->$callback[1]($this);
}
```

Die Erweiterungen müssten also nur den Hook befüllen und könnten dann für das Template neue Felder bzw. ganze Code-Blöcke zur Verfügung stellen. Zusätzliche müssten Sie ein neues Template mitliefern, das beispielhaft die Nutzung der neuen Felder zeigt oder genutzt werden kann wenn nur ein Modul den Artikel erweitert. Dies würde ich z.B. gerne für meine zflattr-Erweiterung nutzen. (Dort müssen neben der Checkbox noch weitere Daten z.B. aus tl_user im Template verarbeitet werden können.)

Bei der Datenübernahme zurück bin ich mir nicht sicher, was dort optimal ist. Andreas Schempp hat aus Performancegründen von einem Pointer auf $this abgeraten, was die Sache etwas einfacher machen würde.

**Warum kein Objekt vom Artikel ableiten und es dort einbauen?**

Das geht prinzipiell, aber eben nur ein Mal. Sollten mehrere Module den Artikel erweitern wollen, gibt es Konflikte. Die haben wir im Template auf jeden Fall aber dort muss der Anwender sie sowieso manuell lösen, weil er z.B. die Reihenfolge der integrierten Objekte beeinflussen will.

**Generelle Überlegung:**

Ein derartiger Hook hat in meinen Augen in ziemlich vielen Objekten Sinn: Auch bei der Seite, einer Nachricht, einer News, etc. Man könnte immer Daten über den Hook im Template zur Verfügung stellen. Das würde die Möglichkeiten über Module Core-Funktionen zu erweitern flexibler machen.

[Download the attachments](http://www.contao.org/tl_files/tickets/2332.zip "Download the attachments of this ticket")
Related issues: #2451, #2582

--- _Originally created on July 22nd, 2010, at 08:57am (ID 2332)_