index.php aus URL entfernen

In dem Forum gibt es Extensions die nur Kleinlichkeiten verändern so das es sich nicht lohnt dafür eine extra Extension zu erstellen.
Forumsregeln
Lies dir die Anleitung um aus den hier angebotenen Codes eine Extension zu erstellen durch bevor du deine erste Extension erstellt!
Antworten
Benutzeravatar
tas2580
Site Admin
Site Admin
Beiträge: 82
Registriert: 30. Apr 2016 23:29
Wohnort: /home/tas2580
phpBB Version: 3.1
Kontaktdaten:

index.php aus URL entfernen

Beitrag von tas2580 » 11. Mai 2016 09:20

Entfernt index.php aus den Links zur Forenübersicht so das die Links direkt auf die Domain gehen. Alternativ kann auch ein Dateiname angegeben werden, für den muss dann allerdings eine Rewrite Regel erstellt werden.

config/services.yml

Code: Alles auswählen

services:
    name.extension.listener:
        class: name\extension\event\listener
        arguments:
            - @path_helper
            - %core.root_path%
            - %core.php_ext%
        tags:
            - { name: event.listener }

event/listener.php

Code: Alles auswählen

<?php
namespace name\extension\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Event listener
 */
class listener implements EventSubscriberInterface
{

	/** @var \phpbb\path_helper */
	protected $path_helper;
	
	/** @var string phpbb_root_path */
	protected $phpbb_root_path;

	/** @var string php_ext */
	protected $php_ext;
	
	/**
	 * Constructor
	 *
	 * @param \phpbb\path_helper				$path_helper		Controller helper object
	 * @param string                         $phpbb_root_path	phpbb_root_path
	 * @access public
	 */
	public function __construct(\phpbb\path_helper $path_helper, $phpbb_root_path, $php_ext)
	{
		$this->path_helper = $path_helper;
		$this->phpbb_root_path = $phpbb_root_path;
		$this->phpEx = $php_ext;
	}

	/**
	 * Assign functions defined in this class to event listeners in the core
	 *
	 * @return array
	 * @static
	 * @access public
	 */
	public static function getSubscribedEvents()
	{
		return array(
			'core.append_sid'							=> 'append_sid',
		);
	}

	/**
	 * Remove index.php in links
	 *
	 * @param	object	$event	The event object
	 * @return	null
	 * @access	public
	 */
	public function append_sid($event)
	{
		if ($event['url'] == $this->path_helper->update_web_root_path($this->phpbb_root_path . 'index.' . $php_ext) && empty($event['params']))
		{
			//$event['append_sid_overwrite'] = append_sid($this->path_helper->update_web_root_path($this->phpbb_root_path . 'forum.html'));
			$event['append_sid_overwrite'] = append_sid($this->path_helper->update_web_root_path($this->phpbb_root_path));
		}
	}
}

Antworten

Social Media

       

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast