[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