loginNews : mieux communiquer avec vos contributeurs sous TYPO3

Publié le Mis à jour le

 Une fonctionnalité qui existe depuis un bon moment sous TYPO3 mais que j’ai découvert très récemment, est la possibilité d’afficher des messages "flash" sous la boite de connexion au back office de TYPO3 :

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 !

Publicités

8 réflexions au sujet de « loginNews : mieux communiquer avec vos contributeurs sous TYPO3 »

    paul a dit:
    08/10/2010 à 15:15

    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 ….

      developpeurtypo3 a répondu:
      11/10/2010 à 16:17

      On a pas forcément tt_news d’installé. J’ai mis les méthodes possibles 🙂

    paul a dit:
    13/10/2010 à 09:16

    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 ?

      Christian BELLET a répondu:
      19/10/2010 à 16:30

      if(t3lib_extMgm::isloaded(‘tt_news‘)){

      On s’en moque de sys_news 🙂

    Cyril a dit:
    28/10/2010 à 12:40

    sys_news ne sera implémenté que dans la 4.5 non ?

    Pascal a dit:
    18/11/2010 à 09:23

    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

      Pascal a dit:
      18/11/2010 à 12:45

      C’est bon. J’ai compris. J’avais lu trop rapidement la procédure…

    Christian BELLET a répondu:
    21/11/2010 à 21:48

    C’est dans la 4.5 il me semble oui 🙂

Les commentaires sont fermés.