Zum Inhalt springen

Problem user_ condition mehrfacher aufruf der Funktion

Erstellt am 22. Oktober 2012 · 1 Antwort · letzte Antwort am 22. Oktober 2012

Tags: PHP, Frage

dfluess ·

Hallo,

ich habe eine neue Condition angelegt:

[userFunc = user_random_page()]
page.5 = TEXT
page.5.value = Zufällig ausgewählt
[end]

Ziel ist es, ein TypoScript nur auf zufälligen Seiten auszuführen.

Dazu selektiere ich einfach eine zufällige 'uid' aus 'pages' und vergeiche diese mit der aktuellen Page id. Stimmen diese überein, dann soll die condition greifen.

Soweit funktioniert das auch, nur dass die 'function user_random_page()' bei 'true' immer drei mal aufgerufen wird(???) Kann mir das vielleicht jemand erklären und mir einen Tipp geben, wie ich das verhindern könnte?

Hier meine ext_localconf.php:

<?php
if (!defined('TYPO3_MODE')) {
	die ('Access denied.');
}
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi2/class.tx_dfmodalbox2_pi2.php', '_pi2', 'list_type', 1);


function randomId() {
	$res = mysql_query('SELECT uid FROM pages WHERE deleted = "0" ORDER BY RAND() LIMIT 1');
	$num = mysql_num_rows($res);
	while ($dsatz = mysql_fetch_assoc($res)) {
		$randId = $dsatz['uid'];
	}
	return $randId;
}

function user_random_page() {
	$istId = $GLOBALS['TSFE']->id;
	$rdId = ''; 
	$rdId = randomId();

	//debug Info
	print 'ist: '.$istId.'<br /> soll: '.$rdId . '<br />';
	
	if ($istId == $rdId) {
		return true;
	} else { 
		return false;
	}
}

?>
dfluess ·

Oder gibt es noch eine andere Möglichkeit, TypoScript nur auf zufällig ausgewählten Seiten auszuführen?

Herzlichen Dank für eine alternative 😉