IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Afficher les drapeaux des langues disponibles (traduction) dans une liste de l'admin


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Afficher les drapeaux des langues disponibles (traduction) dans une liste de l'admin
    Bonjour à tous,

    J'ai une application de type vente privé. Le site est traduit en 2 langues Français et Anglais, jusqu'ici pas de souci.

    Sur le frontend je n'affiche les produits que si le titre et la description sont disponible dans la langue d'affichage actuel du site, jusqu'ici pas de souci.

    Dans le backend j'aimerais afficher dans la liste des articles des petits drapeaux pour que l'utilisateur sache si le titre et la description du produit sont traduit (non vide dans la langue).

    Dans la liste de mes articles j'ai réussi a affiché mes drapeaux en créant le fichiers _drapeaux.php et en l’appelant depuis le fichier generator.yml du module

    Fichier generator.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    generator:
      class: sfDoctrineGenerator
      param:
        model_class:           Objet
        theme:                 admin
        non_verbose_templates: true
        with_show:             false
        singular:              ~
        plural:                ~
        route_prefix:          objet
        with_doctrine_route:   true
        actions_base_class:    sfActions
     
        config:
          actions: ~
          fields:
            new_ObjetOption:  { label: Nouvelle option }
          list:
            title:   Liste des articles
            display: [=titre,_drapeaux, =valeur, _image]
            object_actions:
              _edit:      ~
          filter:
            display: [titre,valeur]
          form:    ~
          edit:
            title:   Modification de l'article "%%titre%%"
          new:
            title:   Création d'un article
    Fichier _drapeaux.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php if($objet->getTranslation()->fr->titre){?>
    <img src="/images/front/flag_fr.gif"/>
    <?php }; ?>
    <?php if($objet->getTranslation()->en->titre){?>
    <img src="/images/front/flag_en.gif"/>
    <?php }; ?>
    L'affichage fonctionne mais si j'effectue une recherche via le filtre "titre" alors seul le drapeaux français s’affiche. Ce qui est normal puisque le backend n'est utilisé qu'en français et donc que la recherche se fait sur la langue fr si je change de langage dans le back alors c'est l'inverse recherche sur la traduction "EN" est affichage des drapeaux en anglais seulement. Quelqu'un aurait il une idée pour que les drapeaux s'affiche bien tout en utilisant le filtre.

    En gros comment avoir accès aux différentes traductions de mon objet indépendamment de la langue de navigation actuelle ?

    Autre problème lié :

    Lorsque j'ajoute une nouvelle vente je voudrait qu'au moment de choisir l'article à mettre en vente dans le select du formulaire new ou edit je puisse savoir dans quel langue est traduit cet article en ajoutant à la suite du nom du produit les chaines : "FR" et/ou "EN".

    Pour cela j'ai voulu utilisé la fonction toString (ci dessous) de mon article et là même problème seul FR s'affiche car je navigue dans l'admin en français inversement si je navigue sur l'admin en anglais.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public function __toString()
    	{
    		$titre=$this->getTitre();
    		if(strlen($titre)>30){
    		//$this->getId().' - '.
    			$titre=substr($this->getTitre(),0,30).'... - '.number_format($this->getValeur(),2,'.','').'€  -  '; 
    		}else{
    		//$this->getId().' - '.
    			$titre=$this->getTitre().' - '.number_format($this->getValeur(),2,'.','').'€  -  '; 
    		}
    		if($this->getTranslation()->fr->titre){
    				$titre.='FR  ';
    			};
    			if($this->getTranslation()->en->titre){
    				$titre.='EN';
    			};
    		return $titre;
    	}
    Encore une fois je pense qu'on en revient ici :

    En gros comment avoir accès aux différentes traductions de mon objet indépendamment de la langue de navigation actuelle dans la fonction toString ?


    Voila si quelqu'un a une idée je suis preneur car ce problème me trotte depuis un moment.

    Merci d'avance Yoann

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Peux t -on avoir les schemas de la base de donnée, stp?

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 18h16
  2. [Dojo] Afficher les sous elements d'un dossier dans une tree
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 18/09/2009, 00h03
  3. [Complexité] recherche des n points les plus proches d'un point dans une liste
    Par Benoit_T dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 20/06/2009, 15h55
  4. Réponses: 0
    Dernier message: 24/02/2008, 18h19
  5. Réponses: 5
    Dernier message: 27/04/2007, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo