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

Langage PHP Discussion :

Retour d'une fonction en POO


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Points : 144
    Points
    144
    Par défaut Retour d'une fonction en POO
    Bonjour,

    dans un site multilangue, je dois gérer chaque url en fonction de la langue.

    Débutant en POO, je me pose la question suivante avec cette fonction ci-dessous:

    Est ce que je m'y prends bien ou il y a un moyen plus facile ou plus logique de m'y prendre?

    la page contrôleur de mon application:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if($login->isLogged() == true){
        echo 'loggé';
    }else{
        echo 'pas loggé';
        $global = new GlobalFunction();
        $global->langBrowser();
        $global->checkLang($lang_default_back);
        if($_GET['lang'] != $_SESSION['lang_browser']){
            header("Location: ?lang=".$_SESSION['lang_browser']."&section=".$global->setUrlLogin()."");
        }
    }

    Ma classe:
    Code php : 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
    30
    31
    32
     
    class GlobalFunction{
        public $lang;
     
        public function langBrowser(){
            $this->lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
            return $this->lang;
        }
        public function checkLang($lang_default_back){
            $sql = DbConnect::getInstance()->query("SELECT * FROM language 
                                                    WHERE code='".$this->langBrowser()."' 
                                                    AND activeback=1");
     
            if($sql->rowCount() > 0):
                include 'lang/lang_'.$this->langBrowser().'.php';
                $_SESSION['lang_browser'] = $this->langBrowser();
            else:
                include 'lang/lang_'.$lang_default_back.'.php';
                $_SESSION['lang_browser'] = $lang_default_back;
            endif;
            $sql->closeCursor();
        }
        public function setUrlLogin(){
            $sql = DbConnect::getInstance()->query("SELECT url FROM menu_back JOIN 
                                                    menu_back_lang ON id_menu_back=id_group 
                                                    WHERE name_section='login' AND 
                                                    lang='".$_SESSION['lang_browser']."'");
            $row = $sql->fetch();
            return $row->url;
            $sql->closeCursor();
        }
    }

    Merci d'avance de vos réponses

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    $global->langBrowser();
    C'est sensé faire quoi ? Retourner $this->lang ? et alors qu'en fais-tu ?

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Points : 144
    Points
    144
    Par défaut
    Merci abciweb

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $global->langBrowser();

    EDIT:

    Oui cela retourne $this->lang. Dsl je débute en POO
    retour la langue acceptée par le navigateur du client que je tranforme en session pour intégrer le bon fichier de traduction.

    Si celle ci est active dans mon systeme back office, je mets cette langue en session.

    Merci

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Je ne vois nul part que tu enregistre $global->langBrowser() dans une variable de session...

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Points : 144
    Points
    144
    Par défaut
    Oui dans ma function checkLang();

    C'est correct?

    Code php : 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
    30
    31
     
        public $lang;
     
        /**
         * Detect the native language of the browser used
         * @return lang
         */
        public function langBrowser(){
            $this->lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
            return $this->lang;
        }   
        /**
         * Take the default language from application if the browser 
         * not assum the native language of the application
         * @param DEFINE $lang_default_back
         */
     
        public function checkLang($lang_default_back){
            $sql = DbConnect::getInstance()->query("SELECT * FROM language 
                                                    WHERE code='".$this->langBrowser()."' 
                                                    AND activeback=1");
     
            if($sql->rowCount() > 0):
                include 'lang/lang_'.$this->langBrowser().'.php';
                $_SESSION['lang_browser'] = $this->langBrowser();
            else:
                include 'lang/lang_'.$lang_default_back.'.php';
                $_SESSION['lang_browser'] = $lang_default_back;
            endif;
            $sql->closeCursor();
        }

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Si ça fonctionne c'est correct. Mais je répète ma question initiale à quoi sert
    de faire : $global->langBrowser(); ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2013
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Çà me rappel mes petites erreurs de début de POO

    Je parie un billet que c'est pour créer un argument qui contient la langue courante de l'utilisateur pour qu'il puisse la récupérer dans n'importe quelle méthode

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/02/2008, 14h35
  2. [XML][XSLT][debutant]retour d'une fonction
    Par maxvador dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 30/03/2006, 14h12
  3. recuperer en php le retour d'une fonction plsql
    Par gismoblue dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/03/2006, 16h39
  4. PL/SQL retour d'une fonction
    Par aaronw dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h25
  5. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54

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