rtgx

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:

  1. neregistrovaný: dostane hlásenie, že sa má zaregistrovať
    (zobrazí sa obsahový prvok na stránke - pid = 90, uid =10)
  2. 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)
  3. 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.