Zum Inhalt springen

Finden einer Extens im BE

Erstellt am 22. Oktober 2008 · 8 Antworten · letzte Antwort am 22. Oktober 2008

Tags: Frage

tom_meier ·

Hallo,

ich habe eine Extension geschrieben in der es einen Hook gibt die die Funktion processDatamap abfängt damit ich beim Speichern noch eine Mail verschicken kann. Alles soweit OK.

Nun möchte ich aber auch einen Link in der Mail mitschicken in der der User direkt auf sein Profil kommt.

Das heisst ich müsste ja irgendwie an die ID der Seite kommen auf der das Plugin installiert ist, das die Daten anzeigt.

Die Id der Seite mit den Daten erhalten ich ja schon über den hook.

Nur wie komme ich an die Plugin Seiten ID. Diese kann ja durchaus verändert werden.( Neue Seiten angelegt, Plugin nochmals installiert usw.)

Gruss

Tom

steffenk ·

die ist ja im TS definiert, also kommst Du daran über

$GLOBALS['TSFE']->sys_page->tmpl->setup['plugin.'][tx_ext_pi1.']
tom_meier ·

Hallo steffenk,

Danke für deine Antwort aber steht mir das $GLOBALS['TSFE'] denn überhapt im BE zur Vefügung beim Speichern eines Datensatzes?

Ich habe es ausprobiert ist aber leer.

Gruss Tom

steffenk ·

nein, dafür gibts dann

$sys_page = t3lib_div::makeInstance("t3lib_pageSelect");
$rootLine = $sys_page->getRootLine($pageId);
$tmpl->runThroughTemplates($rootLine,$template_uid);
...

siehe template object browser

tom_meier ·

Hallo steffenk,

ich nutze folgenden Code:

function loadTypoScriptForBEModule($extKey) {
	
	list($page) = t3lib_BEfunc::getRecordsByField('pages', 'pid', 0);
	$pageUid = intval($page['uid']);
	
	$sysPageObj = t3lib_div::makeInstance('t3lib_pageSelect');
	$rootLine = $sysPageObj->getRootLine($pageUid);
	
	$TSObj = t3lib_div::makeInstance('t3lib_tsparser_ext');
	t3lib_div::debug($TsObj);
	
	$TSObj->tt_track = 0;
	$TSObj->init();
	$TSObj->runThroughTemplates($rootLine);
	$TSObj->generateConfig();

	return $TSObj->setup['plugin.'][$extKey . '.'];

An der stelle wo das debug steht bekomme ich keine Ausgabe mehr. Vorher ja. Also $rootline usw.

Gruss Tom

tom_meier ·

Vieleich habe ich mich auch falsch ausgedrückt.

1. Es gibt eine Extension die Daten ausgibt.
2. mit der gleichen Extension kann ich Formulardaten eingeben und speichern
3. es gibt ein Freigabemodus
4. wenn der Inhalt freigegeben ist, dann sol eine mail verschickt werden mit einem Link zu der Detailansicht der Daten.

Die Detailansicht befindet sich z.b. auf Seite 280 also muss der Link lauten

www.xyc.de/index.php?id=280&tx_meine ext_pi1[mehr]=(Id des datensatzes den ich gerade speichere)

Wie komme ich an die id 280? Ich weiss ja nicht wo das Plugin installiert ist.

Ein Möglichkeit wäre dies im TS des Plugin zu hinterlegen.

Nur wie komm ich an die conf des Plugins heran bei speichern in der Hookklasse.

Ich hoffe das ist verständlicher.

Gruss Tom

steffenk ·

ums abzukürzen:

global verfügbare Parameter hole ich mir aus der extConf, also definiert in
ext_conf_template.txt

auslesen:

$extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['ext_key']);

von überall zu erreichen.