Použitie objektu USER_INT a CONTENT
Zadanie
Potrebujeme ošetriť výstup obsahu v závislosti od stavu registrácie FE usera.
Možné stavy:
- neregistrovaný: dostane hlásenie, že sa má zaregistrovať
(zobrazí sa obsahový prvok na stránke - pid = 90, uid =10) - zaregistrovaný s chýbajúcimi položkami: hlásenie o možnosti doplniť registračné údaje
(zobrazí sa obsahový prvok na stránke - pid = 90, uid =15) - zaregistrovaný s kompletne vyplnenými požadovanými údajmi: žiadne hlásenie
Riešenie
Typoscript pripraví konfiguračné údaje pre užívateľskú funkciu user_club:
includeLibs.functions = fileadmin/sitename/inc/functions.inc
page.10.marks {
CONTENT = COA
CONTENT.10 = USER_INT
CONTENT.10.userFunc = user_functions->user_club
CONTENT.10.bannerUnreg {
table = tt_content
select {
pidInList = 90
where = uid=10
}
}
CONTENT.10.bannerReg < page.10.marks.CONTENT.10.bannerUnreg
CONTENT.10.bannerReg.select.where = uid=15
CONTENT.20 < styles.content.get
}
Užívateľská funkcia vyhodnotí podmienky a vráti požadovaný vyrenderovaný obsah:
class user_functions {
/**
* Switch content item by FE user registration status
*
*/
function user_club( $content, $conf ) {
$local_cObj = t3lib_div::makeInstance( 'tslib_cObj' );
// Unregistered
if( !( $GLOBALS['TSFE']->fe_user->user['uid'] > 0 ) ) {
$out = $local_cObj->CONTENT( $conf['bannerUnreg.'] );
}
// Registered
elseif( $GLOBALS['TSFE']->fe_user->user['name'] == ''
|| $GLOBALS['TSFE']->fe_user->user['tx_rtgproject_surname'] == ''
|| $GLOBALS['TSFE']->fe_user->user['address'] == ''
|| $GLOBALS['TSFE']->fe_user->user['city'] == ''
) {
$out = $local_cObj->CONTENT( $conf['bannerReg.'] );
}
return $out;
}
}
| Žiadne dokumenty ani odkazy k tejto stránke. | ||
Generátor typoscriptu
Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.