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 :

Fonction dans une fonction


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut Fonction dans une fonction
    Bonjour,

    J'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function deplacement_widget ($role) {
    	function move_dashboard_widget($role) {
    	global $wp_meta_boxes;
            $widget = $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'];
            unset( $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'] );
            $wp_meta_boxes['dashboard']['side']['core'][$role.'_dashboard_activity'] = $widget;
    	}
    add_action( 'wp_dashboard_setup', 'move_dashboard_widget' ); 
    }
     
    deplacement_widget('redacteur');
    qui ne donne rien, alors que si je vérifie en ajoutant la ligne :
    $role = 'redacteur'; avant global $wp_meta_boxes;, ça fonctionne.

    Qu'est-ce que j'ai raté dans le passage de la variable ?

    Merci !

  2. #2
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Salut !

    Vérifie déjà le contenu de la variable dans ta première fonction en utilisant var_dump.
    Si ça te retourne "redacteur" essaie alors un var_dump sur la deuxième fonction.

    Ensuite je rajouterai des étapes intermédiaires perso. Mais bon il est fort probable que ça ne serve à rien ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function deplacement_widget ($role) {
            $role1 = $role;
    	function move_dashboard_widget($role1) {
            $role2 = $role1;
    	global $wp_meta_boxes;
            $widget = $wp_meta_boxes['dashboard']['normal']['core'][$role2.'_dashboard_activity'];
            unset( $wp_meta_boxes['dashboard']['normal']['core'][$role2.'_dashboard_activity'] );
            $wp_meta_boxes['dashboard']['side']['core'][$role2.'_dashboard_activity'] = $widget;
    	}
    add_action( 'wp_dashboard_setup', 'move_dashboard_widget' ); 
    }
     
    deplacement_widget('redacteur');
    Cordialement,
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Le var_dump ne renvoie rien. (et en effet, du coup les étapes intermédiaires ne donnent rien non plus

    EDIT : pardon, problème d'actualisation, si, le var_dump renvoie bien 'redaction' après la 1ere fonction, mais NULL après la 2e.

  4. #4
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Test peut-être de séparer les fonctions...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function deplacement_widget ($role) {
            move_dashboard_widget($role);
    	add_action( 'wp_dashboard_setup', 'move_dashboard_widget' ); 
    }
     
    function move_dashboard_widget($role) {
    	global $wp_meta_boxes;
            $widget = $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'];
            unset( $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'] );
            $wp_meta_boxes['dashboard']['side']['core'][$role.'_dashboard_activity'] = $widget;
    }
    deplacement_widget('redacteur');
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Non, toujours pas :-(

  6. #6
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function deplacement_widget ($role) {
    	function move_dashboard_widget() use $role {
    	global $wp_meta_boxes;
            $widget = $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'];
            unset( $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'] );
            $wp_meta_boxes['dashboard']['side']['core'][$role.'_dashboard_activity'] = $widget;
    	}
    add_action( 'wp_dashboard_setup', 'move_dashboard_widget' ); 
    }
     
    deplacement_widget('redacteur');
    Si ça ne marche pas j'en ai aucune idée
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    Ca ne marchait toujours pas. Du coup j'ai fait autrement, avec global, et ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function deplacement_widget ($role) {
    	function move_dashboard_widget($role) {
            global $role;
    	global $wp_meta_boxes;
            $widget = $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'];
            unset( $wp_meta_boxes['dashboard']['normal']['core'][$role.'_dashboard_activity'] );
            $wp_meta_boxes['dashboard']['side']['core'][$role.'_dashboard_activity'] = $widget;
    	}
    add_action( 'wp_dashboard_setup', 'move_dashboard_widget' ); 
    }
     
    $role='redacteur';
    deplacement_widget();
    Par contre, comment faire pour réeffectuer la fonction une 2e fois de suite ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $role='autre_role';
    deplacement_widget();

  8. #8
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Yes en effet j'avais vu plusieurs sujets ou ils utilisaient global.

    Pense à mettre le sujet en résolu !
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Response.Redirect dans une fonction dans une classe
    Par jpower dans le forum ASP.NET
    Réponses: 14
    Dernier message: 24/08/2007, 09h45
  3. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  4. Import d'une fonction, dans une fonction
    Par Goupo dans le forum Général Python
    Réponses: 2
    Dernier message: 12/01/2007, 16h50
  5. [PHP-JS] une fonction dans une fonction
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 25/06/2006, 19h14

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