Hallo zusammen,
kann ich via Typoscript untersuchen, ob ein String ein bestimmtes Zeichen enthält und dementsprechend einen Wert zurückgeben?
Beispiel:
- Falls Zeichen "xyz" im String vorhanden, gebe "ABC" aus.
- Falls Zeichen "xyz" nicht im String vorhanden, gebe "123" aus.
Ist das via "if" möglich?
Danke vorab!
Hier müsstest du meines Wissens mit einer userFunc nachhelfen.
Schade, ich hatte gehofft es ginge nur mit Typoscript...
Danke fürs Antworten 🙂
ChrL schrieb
Schade, ich hatte gehofft es ginge nur mit Typoscript...
Leider nein, aber man kann wirklich einfach über TypoScript eine userFunc reinhängen oder mit 2 Zeilen PHP nachhelfen
Ich mach das mal für dich - melde mich in Kürze nochmal
Moin!
Danke für die Zusammenstellung.
Ich doppelposte mal, damit Mitlesende hier auch was davon haben:
Hier meine Lösung:
TS:
——————————————-
includeLibs.user_misc = fileadmin/ext/wfqbe/user_misc.php
plugin.tx_wfqbe_pi1.customProcess.34 {
0 = USER
0.userFunc = user_misc->stristrTypoScript
0.userFunc {
# whole string
searchText = TEXT
searchText.data = GPVar:tx_wfqbe_pi1|ID
# keyword to search for
searchFor = X
# TypoScript if keyword found
foundText = TEXT
foundText.value = ###WFQBE_FIELD_0###
foundText.typolink = 1
foundText.typolink.parameter = 85
foundText.typolink.additionalParams = &tx_wfqbe_pi1[TAB]=x
foundText.typolink.additionalParams.stdWrap.dataWrap = |&tx_wfqbe_pi1[COL]=###WFQBE_FIELD_0###&tx_wfqbe_pi1[IDX]={GPVar:tx_wfqbe_pi1|ID}
foundText.typolink.htmlSpecialChars = 1
# TypoScript if keyword not found
notFoundText = TEXT
notFoundText.value = ###WFQBE_FIELD_0###
notFoundText.typolink = 1
notFoundText.typolink.parameter = 85
notFoundText.typolink.additionalParams = &tx_wfqbe_pi1[TAB]=y
notFoundText.typolink.additionalParams.stdWrap.dataWrap = |&tx_wfqbe_pi1[COL]=###WFQBE_FIELD_0###&tx_wfqbe_pi1[IDX]={GPVar:tx_wfqbe_pi1|ID}
notFoundText.typolink.htmlSpecialChars = 1
}
}
——————————————-
PHP:
——————————————-
cObj; // cObject
$conf = $conf['userFunc.']; // ts config
$searchFor = $conf['searchFor']; // get string
$searchText = $local_cObj->cObjGetSingle($conf['searchText'], $conf['searchText.']); // stdWrap for search Text
$foundText = $local_cObj->cObjGetSingle($conf['foundText'], $conf['foundText.']); // stdWrap for found Text
$notFoundText = $local_cObj->cObjGetSingle($conf['notFoundText'], $conf['notFoundText.']); // stdWrap for not found Text
if ( $bDebug )
{
print_r ( “searchText: ” . $searchText . “\n” );
print_r ( “searchFor: ” . $searchFor . “\n” );
}
// let’s go
if (stristr($searchText, $searchFor))
{ // if keyword found
if ( $bDebug )
{
echo (‘keyword found, return: ‘);
print_r ( $foundText );
die ();
}
return $foundText; // return found text
}
else
{ // keyword not found
if ( $bDebug )
{
echo (‘keyword not found, return: ‘);
print_r ( $notFoundText );
die ();
}
return $notFoundText; // return not found
}
}
}
?>
ich hab vergessen, das als gelöst zu markieren - seltsamerweise kann ich das jetzt nicht selbst tun.
wie geht's?
kein Thema - hab ich schnell gemacht