05.03.2018 | TYPO3, TYPO3 Schnipsel
Typo3 8.x – Um eigene Funkionen erweitern


geschrieben von Jens (keine Kommentare)
, , ,

Was mit usr und usr_int unter Typo3 7 dank der compatibility 6 kein Problem war, ist mit Typo3 8 nicht mehr möglich. Einige werden jetzt sagen – selbst schuld, man sollte immer eine eigene Extension schreiben um externen Code einzubinden oder die Funktionalität von Typo3 zu erweitern. Stimmt! – Aber trotzdem war es eine einfache und schnelle Möglichkeit die es eben genau jetzt nicht mehr gibt. Allerdings lässt sich das mit einer einfachen Extension einfach nachbilden und erzielt den gewünschten Effekt. Etwa um externe Datenbanken abzufragen oder externe Inhalte einzubinden.

Was brauchen wir dazu?

Die Extension mit der richtigen Ordnerstruktur und den minimal notwendigen Dateien. Abgelegt wird die Extension im Ordner „typo3conf/ext/“.

Die Ordnerstruktur:

EXT\NAME_DER_EXTENSION
EXT\NAME_DER_EXTENSION\Classes
EXT\NAME_DER_EXTENSION\Classes\Controller
EXT\NAME_DER_EXTENSION\Classes\Domain
EXT\NAME_DER_EXTENSION\Classes\extension.php (Eigentliche Klasse der Extension)
EXT\NAME_DER_EXTENSION\Resources
EXT\NAME_DER_EXTENSION\Resources\Private
EXT\NAME_DER_EXTENSION\ext_emconf.php
EXT\NAME_DER_EXTENSION\ext_icon.gif

Inhalt der ext_emconf.php:

<?php
$EM_CONF[$_EXTKEY] = array(
    'title' => 'Extension Titel',
    'description' => 'Beschreibung der Extension',
    'category' => 'fe',
    'author' => 'Dein Name',
    'author_email' => '[email protected]',
    'state' => 'alpha', //beta stable ...
    'author_company' => 'Dein Name',
    'version' => '1',
    'constraints' => array(
        'depends' => array(
        ),
        'conflicts' => array(
        ),
        'suggests' => array(
        ),
    ),
);

Mehr braucht es an dieser Stelle erstmal nicht.

Inhalt der extension.php:

<?php 

namespace extname\events;

class Events {

    public function overview($content, $conf) {
 
        // $conf['userFunc.']['calendar']      - aus Typoscript übergeben
	// $conf['userFunc.']['calendarID']    - aus Typoscript übergeben

		$servername     = "localhost";
		$username 	= "DBUSERNAME";
		$password 	= "DBPASSWORT";
		$database	= "DB";
		$port		= "3306";
		
		$html  = "<h1>Meine Ausgabeseite</h1>";
		$html .= "Kalender " .$conf['userFunc.']['calendar'];  // liefert "deinKalender" zurück

		$conn = mysqli_connect($servername, $username, $password, $database, $port);

		...

                return $html;

				
    }
	
	
}

Erstellen der Variablen in Typoscript für die Ausgabe im Frontend:

kalender = USER_INT
kalender {
	userFunc            = extname\events\Events->overview
        userFunc.calendar   = deinKalender // wird als Variable an die Extension übergeben f.f.
	userFunc.calenderID = 1		 
}	

 


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Mit und unverhältnismäßig viel für dich gemacht in Kassel.

2014 - 2023