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 :

portée des variables


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Par défaut portée des variables
    bonjour,
    C'est certainement une question de débutant mais bon...

    Donc voilà, j'ai modifié mon module backend country (tjs le pb i18n...) aussi je voudrais modifier la requête de la liste donc :

    au niveau du generator, j'ai modifié le table method :

    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
        config:
          actions: ~
          fields:  ~
          list:
            title: Country Management
            display: [_countryflag,country,lang]
            fields:
              countryflag: { label: Flag}
            table_method: BackendCountryListi18n
          filter:
            class: false
          form:
            class: BackendcountryForm
          edit:
            title: Editing Country %%country%%
          new:
            title: New Country
    au niveau de countryTable.class.php , j'ai crée la fonction adéquate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public function BackendCountryListi18n(Doctrine_Query $q , $culture)
        {
     
        $rootAlias = $q->getRootAlias();
        $q->leftJoin($rootAlias . '.Translation t WITH t.lang = ?', $culture);
        return $q;
        }
    Ca marche, mais le seul problème est que je voudrais charger $culture avec la culture de user (du style $this->getUser()->getCulture() )
    le seul problème est que je me fais jetter pour variable non déclarée un peu partout, aussi si une nouvelle fois vous pouviez m'aider...

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne suis pas sur de comprendre ce que tu veux faire et où cela coince.

    A lire :
    http://www.symfony-project.org/jobee...Doctrine/fr/19

    http://www.symfony-project.org/forms...d-Localisation

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Par défaut
    En fait, dans mon backend, dans la liste des pays, je voudrais ramener la liste des pays dans la langue de l'utilisateur soit la création de la requête BackendCountryListi18n (et suppression de beaucoup d'accès a la base). Seulement, il me faut la langue de l'utilisateur en critère de requête $culture.....malheureusement je n'arrive pas à rapatrier le contenu de la variable culture de sfuser
    Comment faire a l'interieur d'une classe ou via une variable d'entrée?

    merci

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En principe cela devrait se faire tous seul...

    Peux-tu mettre ton schema.yml

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Juste un truc, si c'est juste pour afficher une liste des langues possibles dans la langue actuel du site, il y a le widget sfWidgetFormI18nChoiceLanguage qui le fait très bien et sans avoir à s'embéter.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Par défaut
    oui, bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    country:
      connection: doctrine
      tableName: country
      actAs:
        I18n:
          fields: [country]
      columns:
        country:
          type: string(150)
          notnull: true
        flag:
          type: string(255)
    Une liste indépendante est importante car c'est une données qui je vais lier a d'autres objets après...

  7. #7
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    OK pour la liste.

    En fait, vu la déclaration de la table, tu n'as pas à t'occuper de la table liée avec les traductions. Pour toi, c'est une seule table et tu ne fais ta requête que sur les champs de la table, pas sur la table générée avec l'I18N. Et automatiquement le système va consulter la culture de ton user et afficher la liste qui correspond.

    C'est pas beau ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Par défaut
    Si ca marche, c'est pas mal

    Voici mes variables :
    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
    User 
    options:
      auto_shutdown: false
      culture: null
      default_culture: en
      use_flash: true
      logging: '1'
      timeout: 1800
    attributeHolder:
      admin_module: { country.sort: [null, null] }
      sfGuardSecurityUser: { user_id: '1' }
      symfony/user/sfUser/attributes: {  }
      symfony/user/sfUser/flash: {  }
      symfony/user/sfUser/flash/remove: {  }
    culture: fr
    Et pourtant dansd mon tableau j'ai toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Flag Country Lang Actions 
    2 results  
        en Edit Delete  
        en Edit Delete
    La langue ne s'appuie pas sur la culture du user ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Par défaut
    C'est bon ca marche, ca devait etre une histoire de rafraichissement du cache....justement le clear cache ne semble pas tjs fonctionner...il y aune autre methode ?

    Sinon j'ai trouvé pour ma table de translation et country !!!
    Il ne faut pas nommer un champ country dans la table country....

  10. #10
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Il semblerait que dans le cadre des I18N le cc ne marche pas toujours correctement.

    Dans ce cas, je passe par l'effacement du contenu du dossier cache. Radical mais efficace.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2005, 09h05
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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