Forcer le rendu d’autres champs avec tt_news

Publié le Mis à jour le

En mode SINGLE, le nombre de champ affichés en front office est suffisant mais il s’avère parfois utile d’ajouter des champs disponible en SINGLE dans les marqueurs LATEST ou LIST. J’ai eu affaire à cette demande récemment. L’onglet Media dans l’enregistrement d’une actualité permet d’ajouter des fichiers .doc ou pdf par exemple. Pour afficher ces fichier en mode LATEST, nous devons ajouter le marqueur  ###FILE_LINK### comme ceci :

<!– ###TEMPLATE_LATEST### begin
    This is the template for the latest news, typically displayed on a frontpage
–>
<div class="news-latest-container">
    <!– ###CONTENT### begin
        This is the part of the template substituted with the list of news:
    –>
        <!– ###NEWS### begin
            Template for a single item
        –>
            <div class="news-latest-item">
                <span class="news-latest-date">###NEWS_DATE### ###NEWS_TIME###</span>
                <h2><!–###LINK_ITEM###–>###NEWS_TITLE###<!–###LINK_ITEM###–></h2>
                <!–###LINK_ITEM###–>###NEWS_IMAGE###<!–###LINK_ITEM###–>
                <!–###LINK_ITEM###–>###NEWS_SUBHEADER###<!–###LINK_ITEM###–><hr class="clearer" />
                ###CATWRAP_B### ###TEXT_CAT_LATEST### ###NEWS_CATEGORY### ###NEWS_CATEGORY_IMAGE### ###CATWRAP_E###
                  ###FILE_LINK###
            </div>
        <!– ###NEWS### end–>
    <!– ###CONTENT###  end –>
<div class="news-latest-gotoarchive"><!–###LINK_ARCHIVE###–>###GOTOARCHIVE###<!–###LINK_ARCHIVE###–></div>
</div>
<!– ###TEMPLATE_LATEST### end –>

En revanche, rien ne s’affiche en front office… Si le marqueur n’était pas reconnu, nous l’aurions sur la partie front. Or ici, le tag a été remplacé par du blanc.

J’ai fais un petit tour dans les fichiers de l’extension et nous avons ceci à un endroit donné :

if ($row[‘news_files’] && ($this->isRenderField(‘news_files’) || $this->theCode == ‘XML’))

$this->isRenderField(‘news_files’) se rapporte à une propriété en TS :

plugin.tt_news {

renderFields {
    LIST = image,short,category
    LIST2 = image,short,category
    LIST3 = image,short,category
    HEADER_LIST = short,category
    LATEST = image,short,category
    SEARCH = image,short,category
    SINGLE = *
    SINGLE2 = *
    VERSION_PREVIEW = *
  }

}

Il est ainsi possible "d’ajouter" le rendu pour des champs supplémentaires. J’ai mis ici la configuration par défaut. Pour notre mode LATEST, il faudrait donc avoir
LATEST = image,short,category,news_files

L’option renderFields a été ajoutée dans tt_news le 1er avril 2008. Si un champ n’est pas listé dans tel ou tel code, il ne sera pas affiché.

Voici un extrait du log :

2008-04-01    Rupert Germann <rupi@gmx.li>
TS option "plugin.tt_news.renderFields": Contains an array of CODEs and which fields to render in each code (not used for rss feeds: code=XML).
If a field is not listed here it is not renderend. The fieldlist can be set to "*" to render all fields.
Example: plugin.tt_news.renderFields.SINGLE = *
Actually not all fields can be switched off, I added the condition "if (isRenderfield($field))" only to "image,category,short,bodytext,related,links,news_files".
Reason for this effort is to prevent tt_news from wasting time with unneeded things like f.e. parsing the complete bodytext through lib.parseFunc when showing latest news where the marker ###NEWS_CONTENT### is not displayed at all.

Ca peut paraitre anodin pour certains mais la doc de tt_news est assez consistante Smile

Publicités

Une réflexion au sujet de « Forcer le rendu d’autres champs avec tt_news »

    Aurelie a dit:
    20/04/2009 à 14:17

    Bonjour,Très interressante cette info ^^ Cela dit j\’ai la version 2.5.2 de mars 2008 récupérée sur typo3.org et je me demande où avez-vous récupérer celle d\’avril ?Merci pour la réponse ^^

Les commentaires sont fermés.