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 :

Interpréter le nom d'une fonction en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 63
    Par défaut Interpréter le nom d'une fonction en php
    Bonjour,

    Je travaille actuellement sur un projet de création d'un petit CMS tout simple, et me retrouve confrontée à un soucis.

    Voici le topo :

    J'ai une table en BDD "display" dont voici le contenu :

    Cette table liste l'intégralité de mes fonctions (chacune ici ayant pour rôle d'appeller un widget), leur ordre, leur endroit d'appartion, et leur apparition.

    J'ai donc ensuite essayé de créer une fonction qui me permettra d'appeller toutes les fonctions qui doivent être affichées par région.

    Voici la fonction que j'ai pour l'instant codée pour l'affichage des widgets dans la colonne latérale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	function display_aside_widgets() {
     
    		echo '<aside>';	
     
    		$request_display_aside_widgets = mysql_query("SELECT * FROM display WHERE displayShow=1 and displayRegion='aside' ORDER BY displayOrder ASC;");
    		while ($widget_to_display = mysql_fetch_object($request_display_aside_widgets))
    		{
    			echo $widget_to_display->displayFunction ;
    		}
     
    		echo '</aside>';
    	}
    Bref, j'espère avoir bien exposé le contexte, venons-en maintenant à mon soucis .

    Il se situe dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $widget_to_display->displayFunction
    Pour l'instant j'ai affiché le résultat de mes fonctions par un echo (pour vérifier que ma fonction fonctionne bien). En revanche, je cherche à écrire en PHP le nom de cette fonction pour qu'elle soit appelée en PHP.

    En clair, j'ai besoin que cette fonction m'affiche, dans la page HTML où elle est appelée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <aside>
    Mon widget catégories
    Mon widget articles
    etc
    </aside>
    Pour cela, j'imagine que c'est dans mon fichier comprenant mes fonctions qu'il faut que ces fonctions soient appelées, mais je ne sais pas comment procéder.

    Bref, si quelqu'un à une idée, je le venererais tel un Dieu .

    Merci d'avance !

    EDIT : Au besoin, je peux rajouter le ";" au nom de mes fonctions dans ma table.

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,

    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while ($widget_to_display = mysql_fetch_object($request_display_aside_widgets))
    {
        $taClasse = new TaClasse(); // Classe contenant les fonctions enregistrées dans ta tabme
        $displayFunction = $widget_to_display['displayFunction'];
        $taClasse->$displayFunction;
    }

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 63
    Par défaut
    Bonsoir et merci à toi de ta réponse.
    Cependant, je suis une m**** en POO (je sors pour le jeu de mots ...), donc, bien évidemment, cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Class 'myWidget' not found in /opt/lampp/htdocs/cms/includes/functions.php on line 10
    Dois-je déclarer autre part la création de cette classe ?

    Voici mon code actuel avec les modifications que tu m'a suggéré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function display_aside_widgets() {
     
    	echo '<aside>';	
     
    	$request_display_aside_widgets = mysql_query("SELECT * FROM display WHERE displayShow=1 and displayRegion='aside' ORDER BY displayOrder ASC;");
    	while ($widget_to_display = mysql_fetch_object($request_display_aside_widgets))
    	{
    		$myWidget = new myWidget(); // Classe contenant les fonctions enregistrées dans la table
      		$displayFunction = $widget_to_display['displayFunction'];
        		$myWidget->$displayFunction;
    	}
     
    	echo '</aside>';
    }
    Merci d'avance

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,

    Ta classe est dans un autre fichier ?
    Si oui tu doit inclure ce fichier avant d'instancier la classe

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 63
    Par défaut
    Euh non en fait mon code se résume à ca.
    Je disais : je n'y connais rien

  6. #6
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par Pauloscorps Voir le message
    Euh non en fait mon code se résume à ca.
    Je disais : je n'y connais rien
    Mais elles sont ou les fonctions widget_categories(), widget_latest_articles(), etc... que tu à en base de données ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/11/2006, 11h28
  2. Réponses: 11
    Dernier message: 06/11/2006, 22h51
  3. [FAQ][VBA-E] Traduire le nom d'une fonction excel
    Par SfJ5Rpw8 dans le forum Contribuez
    Réponses: 0
    Dernier message: 23/09/2006, 10h18
  4. test sur le nom d'une fonction
    Par Art19 dans le forum C
    Réponses: 6
    Dernier message: 26/06/2006, 18h29
  5. [Tableaux] Oubli du nom d'une fonction
    Par Ekimasu dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2006, 10h50

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