Das würde alles funktionieren...
Am Elegantesten wäre es aber, wenn Du die neue Funktionalität nutzt...
Lege Dir eine Datei in Deiner Extension an.
main_listener.php:
Code: Alles auswählen
class main_listener implements EventSubscriberInterface
{
private $template;
//im Konstruktor übergibst Du das Template-Objekt an Deine Klasse
public function __construct(\phpbb\config\config $config, \phpbb\template\template $template )
{
$this->template = $template;
}
//Hier definierst Du eine Funktion die über den Event Listener aufgerufen werden soll (die Du weiter unten implementierst)
static public function getSubscribedEvents()
{
return array(
'core.page_footer' => 'change_header',
);
}
//hier überschreibst Du die orginalen Dateien
public function remove_from_delete_list($event)
{
$this->template->assign_vars(array(
'SITENAME' => 'Neuer Site-Name',
'SITE_DESCRIPTION' => 'Neue Beschreibung''
));
}
}
Das ganze machst Du noch über
config/services.yml bekannt:
Code: Alles auswählen
services:
ENTWICKLERNAME.NAME_DER_EXTENSION.listener:
class: ENTWICKLERNAME.NAME_DER_EXTENSION\events\main_listener
arguments:
- @config
- @template
tags:
- { name: event.listener }
So hast Du den Header sauber überschrieben, ohne auch nur eine Zeile Quell-Code zu ändern. Du könntest das jetzt zum Beispiel auch von irgendwelchen weiteren Parametern abhängig machen. Zum Beispiel Dir nur den Sitename aus der Config holen und bei normalen Forenseiten alles so lassen und Deine eigenen Extension-Seiten überschreiben...
Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't