Eintrag entfernen per Ext

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Anteraner
Mitglied
Beiträge: 76
Registriert: 25.05.2009 17:19

Eintrag entfernen per Ext

Beitrag von Anteraner »

Hallo phpBB.de Community,

ich würde gerne die Beschreibung (SITENAME & SITE_DESCRIPTION) aus dem Header entfernen.
In den älteren phpBB Versionen (3.0.x) habe ich dies einfach immer raus gelöscht, nun sollte man allerdings das Stammverzeichnis nach Möglichkeit nicht mehr bearbeiten.

Daher meine Frage, wie muss ich das anstellen, bzw. welche Anweisung muss ich verwenden, dass in einer Erweiterung dann die Einträge

Code: Alles auswählen

<h1>{SITENAME}</h1>
<p>{SITE_DESCRIPTION}</p>
aus der overall_header.html entfernt werden.

Ich danke schon im Voraus.

Gruß Anteraner
Gast234254
Gesperrt
Beiträge: 1999
Registriert: 08.02.2009 22:58

Re: Eintrag entfernen per Ext

Beitrag von Gast234254 »

Lösche die Einträge im ACP. Dann dürfte auch nichts im Header angezeigt werden.
Anteraner
Mitglied
Beiträge: 76
Registriert: 25.05.2009 17:19

Re: Eintrag entfernen per Ext

Beitrag von Anteraner »

wintstar hat geschrieben:Lösche die Einträge im ACP. Dann dürfte auch nichts im Header angezeigt werden.
Danke für die schnelle Antwort.
Ist es nicht aber so, dass die Keywords SITENAME & SITE_DESCRIPTION sich auch in anderen Bereichen auswirken, wie z.B. dem Titel.
Dann würde das entfernen im ACP ja dazu führen das die Einträge dort (z.B. Titel) auch nicht vorhanden sind, dies möchte ich allerdings nicht.

Gruß Anteraner
HJW
Mitglied
Beiträge: 1291
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Eintrag entfernen per Ext

Beitrag von HJW »

Hallo,

ich hab mir, um die Original-Dateien nicht zu verändern eine eigene .css Datei angelegt und in die stylesheet.css als letztes eingebunden.
Füge dort einfach

Code: Alles auswählen

#site-description h1, #site-description p{
	display:none;
}
ein.
Die eigene .css hat auch den Vorteil, dass man einen guten Überblick über eigene Veränderungen hat
Anteraner
Mitglied
Beiträge: 76
Registriert: 25.05.2009 17:19

Re: Eintrag entfernen per Ext

Beitrag von Anteraner »

HJW hat geschrieben:Hallo,

ich hab mir, um die Original-Dateien nicht zu verändern eine eigene .css Datei angelegt und in die stylesheet.css als letztes eingebunden.
Füge dort einfach

Code: Alles auswählen

#site-description h1, #site-description p{
	display:none;
}
ein.
Die eigene .css hat auch den Vorteil, dass man einen guten Überblick über eigene Veränderungen hat
Okay, danke für die Antwort, werde ich nachher gleich mal antesten.

Edit um 14:11 Uhr: hat sehr gut funktioniert, danke für diesen Vorschlag.
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Re: Eintrag entfernen per Ext

Beitrag von D@ve »

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
Antworten

Zurück zu „Extension Bastelstube“