Suzuki GSX (Katana) - Heck Phase 2 - Update Suzuki GSX (Katana) - Heck Phase 3 - Update
Oct 21

Folgerndermaßen kann man in TYPO3 eine userFunc in einem if case aufrufen. In diesem Beispiel, wollen wir die PHP-Funktion user_meineFunktion aufrufen. Wenn die Funktion ein “true” zurückliefert, soll “HALLO WELT” ausgegeben werden.

1. TS

[userFunc = user_meineFunktion()]
page.10 = TEXT
page.10.value = HALLO WELT
[end]

Möchte man jetzt NICHT innerhalb der localconf.php die benötigte Funktion halten, muss man einen kleinen Hook einbauen. Dieser sorgt dafür, dass man die Funktion sauber innerhalb der eigenen Extension (oder sonst wo) halten kann.

2. mod ext_localconf

$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_matchcondition.php']['matchConditionClass'][] = 'EXT:DIE_EXTENSION/hooks/class.matchConditionClass.php:&user_matchConditionClass';

2. der hook (hook/class.matchConditionClass.php)

<?php
/**
 * Hook T3 class matchConditionClass
 *
 * load my script, so we can call
 * matchCondition function from extension
 *
 * normal T3 loading
 * 1. T3 load ext_localconf
 * 2. T3 load matchConditionClass
 * 3. T3 t3lib_matchCondition function_exists, required php script not loaded - FALSE
 *
 * mod T3 loading (by this class/hook)
 * 1. T3 LOAD ext_localconf
 * 2. T3 ext_localconf hook matchConditionClass constructor (hook t3lib_matchCondition)
 * 3. T3 matchConditionClass hook include required php script
 * 4. T3 t3lib_matchCondition function_exists, YES script loaded, functions exists all fine - TRUE
 *
 * Don'T try this at home!
 */
class user_matchConditionClass {
	function __construct()	{
		require_once(t3lib_extMgm::extPath('DIE_EXTENSION', 'functions/user_meineFunktion.php'));
	}
}
?>

3. die Funktion user_meineFunktion() (DIE_EXTENSION/functions/user_meineFunktion.php)

function user_meineFunktion() {
	return true;
};

Einen Kommentar schreiben