Sympathique, non ?
Comment procéder ? La solution est sur le blog de l’agence Marit AG. Si vous avez quelques difficultés à comprendre l’allemand, voici comment procéder !
Il y a deux solutions mais dans tous les cas, il faut passer par une extension maison, depuis le kickstarter par exemple. En effet, le code PHP doit être ajouté dans un fichier local ext_tables.php. Ensuite, deux méthodes s’offrent à vous :
- la méthode "cracra"
- la méthode plus propre
1. Méthode "cracra"
Elle est rapide mais ce n’est pas terrible car pas très dynamique car vous devez passer obligatoirement pas ext_tables.php pour rajouter ou modifier un message
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][] = array(
‘date’ => ’23.10.2010′,
‘header’ => ‘New feature available’,
‘content’ => ‘This is a description how you can use the feature’
);
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][] = array(
‘date’ => ’15.10.2010′,
‘header’ => ‘Cool news below login box’,
‘content’ => ‘This news are shown below the backend login box’
);
Voilà, vous rajoutez des entrées dans le tableau $GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews']. Vous l’aurez compris, je déconseille fortement cette méthode.
2. Méthode plus propre
Cette méthode consiste à se servir des atouts d’un CMS : passer par le back office pour faciliter la maintenance de vos messages. Vous pouvez créer une table news depuis le kickstarter et compléter les champs depuis le back office. Il suffit juste de 3 ou 4 champs : crdate, date, title et short. Sinon, et il est possible de s’appuyer sur l’exemple ci-dessous, utiliser tt_news !
Pour tt_news, il est conseillé de recréer un sysfolder spécifique et non visible par vos contributeur. Pour celà, modifier les droits de ce dossier avec la fonction "Accès" dans Web. Pas besoin de créer une catégorie supplémentaire.
Ensuite, dans le fichier ext_tables.php :
if(!t3lib_div::_GET(‘loginRefresh’)){
if(t3lib_extMgm::isloaded(‘tt_news’)){
require_once(PATH_t3lib.’class.t3lib_befunc.php’);
$table = ‘tt_news’;
$enableFields = t3lib_BEfunc::BEenableFields($table).t3lib_BEfunc::deleteClause($table);
$pid = 251; // sysfolder news
$limit = 20; // nombre max de news
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(‘*’, $table, ‘pid = ‘.intval($pid).’ ‘.$enableFields, ”, ‘crdate DESC’, intval($limit));
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][] = array(
‘date’ => strftime(‘%e. %B %Y’, $row['datetime']),
‘header’ => $row['title'],
‘content’ => nl2br($row['short'])
);
}
}
}
La variable $pid est l’id du dossier qui stocke vos message en back office tandis que $limit, limite le nombre de messages à afficher.
Si un message doit être effacé, il suffit de la cacher ou de le supprimer tout simplément !

Heeeuu, en fait tu peux tout simplement créer un enregistrement de type Sys-news en racine de ton site… pas de php ou de ts ….
On a pas forcément tt_news d’installé. J’ai mis les méthodes possibles
je crois que la table sys_news n’a rien à voir avec tt_news, c’est une table système… livrée par défaut dans la dernière version de TYPO3, non ?
if(t3lib_extMgm::isloaded(‘tt_news‘)){
On s’en moque de sys_news
sys_news ne sera implémenté que dans la 4.5 non ?
Bonjour,
J’aime bien cette fonctionnalité. très pratique mais désolé pour mon ignorance mais au trouve-t-on ce fichier “ext_tables.php”?
Merci
C’est bon. J’ai compris. J’avais lu trop rapidement la procédure…
C’est dans la 4.5 il me semble oui