Multiple ANzeige in der Wer ist onlie liste

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
Benutzeravatar
chris1278
Mitglied
Beiträge: 3860
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Multiple ANzeige in der Wer ist onlie liste

Beitrag von chris1278 »

Hallo. Ich bin gerade dabei eine neue Erweiterung zu programieren.

Ich habe dafür drei Routings in der entsprechenden yml datei angelegt.

Bei dem ersten Routing funktioniert das aber sobald ich die anderen seiten aufrufe steht immer forenübersicht.

Ich meine wenn man in der Forenindex auf den schriftzug wer ist online klickt sieht man ja immer wer gerade was macht.

Ich habe das so probiert:

Code: Alles auswählen

public function add_seite1_viewonline($event)
{
	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite1' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite1.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE1');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite1');
	}
}

public function add_seite2_viewonline($event)
{
	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite2' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite2.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE2');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite2');
	}
}

public function add_seite3_viewonline($event)
{	
	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite3' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite3.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE3');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite3');
	}
}


genau so wie so:

Code: Alles auswählen

public function add_seite1_viewonline($event)
{
	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite1' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite1.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE1');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite1');
	}

	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite2' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite2.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE2');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite2');
	}
	
	if ($event['row']['session_page'] === 'app.' . $this->phpEx . '/seite3' ||
		$event['row']['session_page'] === 'app.' . $this->phpEx . '/seite3.php')
	{
			$event['location'] = $this->language->lang('VIEWONLINE_SEITE3');
			$event['location_url'] = $this->helper->route('chris1278_ext_seite3');
	}
}
Falls mir da jemand ein tip geben kann was ich da falsch gemacht habe. Oder evtl. eine Extension kennt die auch mehrer routing seiten hat und in der wer ist online liste richtig ausgegeben wird. Dafür wäre ich erstmal sehr dankbar.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3860
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Multiple ANzeige in der Wer ist onlie liste

Beitrag von chris1278 »

Ich habe es gelöst bekommen.

Also folgendes Problem bestand.

Da ich die Routing Links mit Parameter benutz, habe so nach dem aufbau hier:

xyz/seite1.php?mode=1...usw hat dies nicht funktioniert.

Ich habe das ganze jetzt so umgebaut:

Code: Alles auswählen

if (strpos($event['row']['session_page'], 'seite1') == true || strpos($event['row']['session_page'], 'seite1.php') == true)
{
	$event['location'] = $this->language->lang('VIEWONLINE_SEITE1');
	$event['location_url'] = $this->helper->route('chris1278_ext_seite1');
}
else if (strpos($event['row']['session_page'], 'seite2') == true || strpos($event['row']['session_page'], 'seite2.php') == true)
{
	$event['location'] = $this->language->lang('VIEWONLINE_SEITE2');
	$event['location_url'] = $this->helper->route('chris1278_ext_seite2');
}
else if (strpos($event['row']['session_page'], 'seite3') == true || strpos($event['row']['session_page'], 'seite3.php') == true)
{
	$event['location'] = $this->language->lang('VIEWONLINE_SEITE3');
	$event['location_url'] = $this->helper->route('chris1278_ext_seite3');
}

Damit wird eben geprüft, ob die besagte Zeichenfolge in dem String enthalten ist. Also Beispiel:

Der String hat den Inhalt: Hallo, die Welt ist schön!

Jetzt wird einfach geprüft, ob in dem String sagen wir mal als Beispiel das Wort Welt enthalten ist. Ist der Eintrag enthalten gibt es true aus und der Eintrag wird in die wer ist online Liste geschleust.

Dann spielt es keine Rolle, was vor dem gesuchten Eintrag steht oder dahinter.


Die Variante, die ich vorher hat, funktioniert eben nur mit den absoluten angaben.
Antworten

Zurück zu „Extension Bastelstube“