[TYPO3-UG France] tt_news: defaut news id et sys_language_uid

Laurent Cherpit laurent at eosgarden.com
Wed Jan 27 17:25:18 CET 2010


Bon, pour finir, la solution temporaire sera de désactiver la
possibilité de publier une news si elle n'existe pas dans la langue
originale.

showNewsWithoutDefaultTranslation = 0



Laurent Cherpit a écrit :
> Bonjour à tous,
>
> je vais tenter d'exposer mon "problème".
>
> Sur un site en multi-langue, j'ai une page où j'affiche une news en vue
> Single et où j'ai mis en place le typoscript ci-dessous afin d'afficher
> la dernière news disponible en fonction de la catégorie (pas important
> dans le prob. actuel)  et du champ datetime lorsqu'aucun news id
> 'tt_news' n'est reçu en GET.
>
> Jusque là tout va bien, que ce soit dans la langue par défaut ou la
> langue alternative.
>
> Comme j'ai paramétré tt_news pour qu'il autorise la publication d'une
> news dans la langue alternative même si elle n'existe pas dans la langue
> par défaut (showNewsWithoutDefaultTranslation = 1), je souhaiterais que
> ce soit cette dernière qui s'affiche si elle est la plus récente.
>
> Mais ce n'est pas le cas. En y accédant depuis le mode LIST ne passant
> l'id de la news en GET pas de problème et lorsque que j'exécute la
> requête générée par ce typoscript ci-dessous en sql cela me sort bien la
> news voulue.
> Par contre en TS, niet, cela ne me sort que la dernière des news publiée
> dans la langue alternative ayant une news dans la langue par défaut.
>
> Voici le typoscript, il est dans un FCE( je récupère les valeurs d'autre
> champs du FCE pour les params ). Et en dessous la requête sql qu'il
> génère (et qui sort bien le bon résultat).
> Si quelqu'un peut m'éclairer ce serait super:
>
> Je vous remercie d'avance.
> Laurent
>
>     <TypoScript><![CDATA[
>     // remove msg
>     plugin.tt_news._LOCAL_LANG.fr.noNewsIdMsg =
>     plugin.tt_news._LOCAL_LANG.de.noNewsIdMsg =
>
>     10 < plugin.tt_news
>     10 {
>         code >
>         code = SINGLE
>         pid_list >
>         
>         pid_list.field = field_news_pidlist
>         
>         showRelatedNewsByCategory = 0
>         categoryMode = 2
>         
>         categorySelection.field = field_news_single_cat
>         
>         catImageMode = 0
>         catTextMode = 1
>     }
>
>     lib.fceSingleView < .10
>     10 >
>
>     10 = COA
>     10 {
>         
>         10 = CONTENT
>         10.table = tt_news
>         10.select {
>         	
>     	//ce paramètre ne change rien à la chose
>         	//languageField = sys_language_uid
>
>             pidInList.field = field_news_pidlist
>
>             where = tt_news_cat_mm.uid_local=tt_news.uid AND tt_news_cat_mm.uid_foreign=tt_news_cat.uid
>             
>             andWhere {
>             	cObject = COA
>             	cObject {
>             	    	10 = COA
>     		        10.1 = TEXT
>     		        10.1.field = field_news_single_cat
>     		        10.1.wrap = tt_news_cat.uid IN( | )
>     		        
>     		        // check if alternative language is more recent of default language
>     		        10.2 = TEXT
>     		        10.2.data = GPvar:L
>     		        //10.2.debugData=1
>     		        10.2.noTrimWrap = | OR (tt_news.sys_language_uid=| AND tt_news.l18n_parent=0)|
>     		}
>             }
>             
>             join = tt_news_cat_mm join tt_news_cat
>             orderBy = datetime desc
>             max = 1
>         }
>         
>         10.stdWrap.if.isFalse.data = GPvar:tx_ttnews|tt_news
>         
>         30 < lib.fceSingleView
>     }
>     ]]></TypoScript>
>       
>
> Et voici la requête sql que le TS génère et qui excutée en tant que tel
> sort le bon résultat:
>
>     |SELECT  *
>     FROM tt_news
>     JOIN tt_news_cat_mm
>     JOIN tt_news_cat
>     WHERE tt_news.pid IN ( 16  ) 
>     AND tt_news_cat_mm.uid_local = tt_news.uid
>     AND tt_news_cat_mm.uid_foreign = tt_news_cat.uid
>     AND sys_language_uid IN ( 1  ) 
>     AND tt_news_cat.uid IN ( 1  ) 
>     OR (
>     tt_news.sys_language_uid =1 AND tt_news.l18n_parent =0
>     )
>     AND tt_news.deleted =0
>     AND tt_news.t3ver_state <=0
>     AND tt_news.hidden =0
>     AND tt_news.starttime <=1264596060
>     AND (
>     tt_news.endtime =0 OR tt_news.endtime >1264596060
>     )
>     AND (
>     tt_news.fe_group = '' OR tt_news.fe_group IS NULL OR
>     tt_news.fe_group ='0' OR (
>     tt_news.fe_group LIKE '%,0,%' OR tt_news.fe_group LIKE '0,%' OR
>     tt_news.fe_group LIKE '%,0' OR tt_news.fe_group ='0'
>     ) OR (
>     tt_news.fe_group LIKE '%,-1,%' OR tt_news.fe_group LIKE '-1,%' OR
>     tt_news.fe_group LIKE '%,-1' OR tt_news.fe_group ='-1'
>     )
>     )
>     ORDER  BY datetime DESC 
>     LIMIT 1 
>
>
>
>     |
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> TYPO3-france mailing list
> TYPO3-france at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-france

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~
 web solutions
~~~~~~~~~~~~~~~~~~~~~~~~~~
 Cherpit Laurent
 
 Rte de Mex 5
 1036 Sullens
 +41 (0)76 332 32 38
 laurent at eosgarden.com
~~~~~~~~~~~~~~~~~~~~~~~~~~



More information about the TYPO3-france mailing list