THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

On a remarqué dernièrement que l'un de nos sites multilingues avait des contenus en français sur des pages qui sont dans d'autres langues. En fouillant dans la base, je vois effectivement que ces contenus n'étaient pas traduits, et ce pour une bonne raison : on ne voulait pas qu'ils apparaissent sur les versions non-françaises du site.
Malheureusement, on ne se souvient pas d'avoir observé ce phénomène avant la mise à jour en 2.3.4, on se demande donc si c'est pas la MAJ qui a fait ça.

Dans la table content_i18n, les contenus qui ne devraient pas apparaître ont juste "false" dans leur title, et tous les autres champs sont à NULL. Du coup Thelia récupère la seule version traduite qui existe, le français, et l'affiche au même endroit sur les sites étrangers. Du coup ça nous met du français au milieu de pages allemandes, espagnoles, italiennes et anglaises...

Le bouton "visible" concerne le content entier, pas juste sa traduction, du coup le cocher fait disparaître le contenu sur les pages françaises aussi.

Vous connaissez un moyen de ne pas faire apparaître un certain contenu dans des langues prédéfinies ?


Développeur web Junior

Offline


Cette fonction n'existe pas dans le core. Ce serait l'occasion rêvée de faire un petit module smile


OpenStudio Toulouse

Offline


Ahah, j'espérai vraiment que tu ne dirais pas ça, je croule déjà sous les projets de module tongue

Merci tout de même, je vais déjà essayer de corriger ça temporairement avec un test dans la loop "content". Si title == "false", je n'affiche rien.


Développeur web Junior

Offline


Bon,  aucune de mes tentatives n'a fonctionné. Ce que je comprends c'est que c'est un fonctionnement normal de Thelia puisque dans le BO, dans Configuration/Langues et urls j'ai effectivement sélectionné l'option de traduction Si une traduction est manquante ou incomplète : Remplacer par la langue par défaut.

Mon problème c'est que je suis obligé d'utiliser cette option parce que l'autre ("Utiliser strictement la langue demandée") bug complètement. Si je l'active, elle remplit bien son rôle, elle n'affiche pas les content dont la traduction est manquante. En revanche, elle répète tout de manière presque arbitraire. On dirait qu'elle multiplie toutes les loops et me ressort les contenus en conséquence.

Voila par exemple ce que l'option produit sur notre site :
bugThelia

Alors qu'en temps normal, notre site ressemble plutôt à ça...


Développeur web Junior

Offline


elle répète tout de manière presque arbitraire

L'arbitraire n'existe pas dans le domaine informatique, quoi qu'on en pense smile Les mêmes causes produisent toujours les même effets.

Tu n'utiliserais pas des libelles (titre, chapo) dans tes boucles 'arbitraires' ? S'ils sont vides, plus de filtrage...


OpenStudio Toulouse

Offline


Ahah, abus de langage. Arbitraire, c'est ma manière à moi de dire que j'ai pas encore compris le schéma qu'elles suivent, ces boucles.
Hum, ah bah si, ça je pense que le site en est rempli... Et effectivement, en base de données je vois que j'ai plein de content_i18n dont le chapo est null.

Une boucle au hasard qui utilise les deux :

{* Applications *}
        {if $DEFAULT_FOLDER == 2}
        <div class="title-container row">
                {loop type="content" name="title" id=$content_id}
                {if $content_id == 1 || $content_id == 2 || $content_id == 3 || $content_id == 4 || $content_id == 5 || $content_id == 6}
                    {assign var="imageUrl" value="assets/img/citerneo/picto-application/content-`$content_id`.png"}
                    <img class="picto-application" src="{image file=$imageUrl}" alt="" />
                {/if}
                <h1 class="application-h1">{$POSTSCRIPTUM}</h1>
                {/loop}
            </div>
            <div class="row">
                <div class="main-features-and-carousel col-xs-12 col-sm-12 col-md-12 col-lg-6">
                    <div class="main-features">
                        {$CHAPO nofilter}
                    </div>

Développeur web Junior

Offline


Par "utiliser", j'entendais "utiliser dans les paramètres de la boucle".


OpenStudio Toulouse

Offline


Dans ce cas non, j'ai vérifié la plupart des loops, elles n'ont que l'ID en paramètre !


Développeur web Junior

Offline


Toujours pas de solution à ce problème. Personne n'a une idée de ce qui pourrait faire se répéter mes loops comme ça quand j'active l'option "Utiliser strictement la langue demandée" ?


Développeur web Junior