Zum Inhalt springen

Extension erweitern

Erstellt am 3. Juni 2011 · 1 Antwort · letzte Antwort am 7. Juni 2011

Tags: Frage

chrisi51 ·

Hallöle,

ich krieg hier langsam den Reißaus #angry#

ich versuche seit einigen Stunden die tt_news durch eine Funktion zu erweitern bzw. eine Funktion anzupassen.

Habe hierzu eine neue Extension angelegt und diese auch installiert. Komischerweise passiert einfach gar nichts, was in dieser Extension so getrieben wird. Der Versuch eine bestehende Funktion mit einem einfachen echo zu überschreiben hat auch nichts gebracht.

Wir haben neben meinem Versuch noch eine andere Extension installiert: sg_newsplus

meine Extension heißt vorerst pxch_ttnews

Nachdem ich nun schon kurz davor bin, Sachen kaputt zu machen, habe ich einfach mal aus gag probiert, meine Extension Zpxch_ttnews zu nennen und siehe da ... plötzlich gehts

Kann mir jemand erklären, wie es sein kann, dass meine Extension nur dann funktioniert, wenn ihr Name alphabetisch hinter dem der anderen Extension liegt?!

Zu meiner größten Verwunderung arbeitet die andere Extension trotzdem. Ich hätte nun wenigstens erwartet, dass diese dann nicht mehr geht.

meine ext_localconf.php

<?php
if (!defined('TYPO3_MODE')) {
	die ('Access denied.');
}
t3lib_extMgm::addPItoST43($_EXTKEY,"pi1/class.tx_zpxchttnews_pi1.php","_pi1","list_type",0);


$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]["XCLASS"]["ext/tt_news/pi/class.tx_ttnews.php"] = 
		t3lib_extMgm::extPath('zpxch_tt_news')."class.ux_tx_ttnews.php";

?>

meine class.ux_tx_ttnews.php

<?php
class ux_tx_ttnews extends tx_ttnews {
	var $prefixUxId = "tx_zpxchttnews_pi1";		// Same as class name

	function getPagebrowserContent($markerArray, $pbConf, $pointerName) {
		echo "1tralalalalalalaalalalalaalala";
		$markerArray = parent::getPagebrowserContent($markerArray, $pbConf, $pointerName);
		return $markerArray;
	}
}
?>

meine pi1/class.tx_zpxchttnews_pi1.php

<?php
class tx_zpxchttnews_pi1 extends tx_ttnews {
	var $prefixId      		= 'tx_zpxchttnews_pi1';		// Same as class name
	var $scriptRelPath 		= 'pi1/class.tx_zpxchttnews_pi1.php';	// Path to this script relative to the extension dir.
	var $extKey        		= 'zpxch_tt_news';	// The extension key.
}

if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/zpxch_tt_news/pi1/class.tx_zpxchttnews_pi1.php'])	{
	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS'] ['ext/zpxch_tt_news/pi1/class.tx_zpxchttnews_pi1.php']);
}

?>
chrisi51 ·

tja, offenbar ist es nicht möglich, eine bestehende Extension mehr als einmal via XCLASS zu erweitern.

In Folge dessen wird eben immer nur die zuletzt gerufene Extension aktiv.

Wir erweitert man denn eine Extension ohne XCLASS zu nutzen oder geht das gar nicht?