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

Bibliothèques & Frameworks Discussion :

Édition de code PHP


Sujet :

Bibliothèques & Frameworks

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Par défaut Édition de code PHP
    Bonjour,

    J'ai créé une partie administration sur mon site qui me permet d'éditer mes fichier article, news etc..

    pour sa je souhaite utiliser CKEditor, je l'ai installé tout va bien, seulement dans mes fichiers à éditer j'ai du code php et ce code est très mal interprété par CKEditor, je vous donne un exemple:

    Dans mon fichier erreur404.php, j'ai un code php en tout début de fichier qui me permet de modifier la balise <title></title> comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
            $head = "<title>Erreur 404</title>";
     
    ?>
    quand j'édite ce fichier dans CKEditor voila ce qu'il me donne:

    alors je souhaiterais savoir si il est possible soit de ne pas interpréter le code php dans CKEditor soit de l'interpréter mais correctement et surtout pas le modifier parce que quand je sauvegarde une modification il me change les balises php comme ceci:
    code original:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $head = "<title>Erreur 404</title>"; ?>
    après avoir sauvegardé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;?php $head = &quot;&lt;title&gt;Erreur 404&lt;/title&gt;&quot;; ?&gt;
    merci a tous ceux qui m'aider

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    FCKEditor, TinyMCE et autres sont des éditeurs HTML, si tu souhaites mettre du PHP dedans, il faudra soit faire comme tu l'as fait, puis appliquer la fonction html_entity_decode afin de reconstruire les balises pour ensuite évaluer la chaine (vraiment pas propre du tout).

    Ou alors tu peux simplement étendre les éléments HTML valide en autorisant la balise <title> (pas propre du tout).

    Ou alors tu développes un plugin qui t'insères une chaine particulière du type :
    [PHPCODE]
    $var = 'truc';
    echo $var;
    [/PHPCODE]
    Ensuite sur la callback de soumission de ton éditeur WYSIWYG tu peux éviter que l'éditeur échappe le contenu du token [PHPCODE] (ou du moins dés-échapper).

    Mieux, ton plugin pourrait faire référence à un fichier existant (ou à un identifiant de bloc PHP) et simplement insérer quelque-chose comme :

    [PHPFILE src="truc.php"]

    Il te suffirait par la suite de remplacer cette chaine par un include.

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Par défaut
    Merci beaucoup pour ta réponse

    La création d'un tel plugin est-elle difficile d'après toi, parce que je me débrouille un peux mais faut rester modeste

    peut être pourrait-tu me proposer une page ou est expliqué la création des plugin pour CKEditor?

    merci beaucoup

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    Il y a apparement un paliatif qui consiste à décommenter la ligne suivante dans fckconfig.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;
    il faudrait également ajouter cette ligne, si tu n'utilises pas les short_open_tags :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FCKConfig.ProtectedSource.Add( /<\?php[\s\S]*?\?>/g ) ;
    http://cksource.com/forums/viewtopic.php?f=5&t=12766
    http://drupal.org/node/41524

    Concernant la création de plugin, j'ai trouvé ce tutoriel qui me paraît très clair :
    http://www.ingeny.fr/2010/01/ecrire-...itor-partie-1/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Par défaut
    Bonsoir ThomasR,

    Donc j'ai un peu cherché autour de ta solution qui est apparemment utilisé pour FCKeditor sur CKeditor il n'y a pas de dossier "lib" en fouillant un peut dans le dossier "_source" j'ai trouvé un fichier config.js dans lequel j'ai trouvé ça:

    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
     
    	/**
     
    	 * List of regular expressions to be executed over the input HTML,
     
    	 * indicating code that must stay untouched.
     
    	 * @type Array
     
    	 * @default [] (empty array)
     
    	 * @example
     
    	 * config.protectedSource.push( /<\?[\s\S]*?\?>/g );   // PHP Code
     
    	 * config.protectedSource.push( /<%[\s\S]*?%>/g );   // ASP Code
     
    	 * config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi );   // ASP.Net Code
     
    	 */
     
    	protectedSource : [],
    ce qui m'a l'air d'être ce que tu m'indique, par contre je ne comprend pas ce qu'il faut faire maintenant je décommente tout le code ci-dessus?

    ou juste la ligne ?

    merci pour le tuto je préfère attendre ta réponse pour ma demande avant de me lancer dans un plugin.

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Par défaut
    Quel naze j'ai trouvé il faut mettre la ligne dans le fichier config.js du dossier ckeditor !

    Bon sa fonctionne à moitié malheureusement je te montre le code de ma page 404.php pour que tu vois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
            $head = "<title>Erreur 404</title>";
     
    ?>
     
    	<h1>La page que vous avez demander est introuvable !!!</h1>
     
    	<p>Veuillez suivre l'un des liens suivant:</p>
     
    	<p><a href="<?php echo WEBROOT; ?>index.php">Accueil</a><br /><a href="<?php echo WEBROOT; ?>contact.php">Contact</a> <br /> <img src="<?php echo WEBROOT; ?>theme/erreur404.jpg" alt="Erreur 404" /></p>
    dans cette page j'ai une balise php tout en haut qui me permet de changer la balise "title" ce code n'est plus modifié avec la modification par contre tout le reste des balises php son modifié

    c'est rageant à force, voici le résultat une fois enregistré avec CKEditor:

    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
    30
    31
    32
    33
    34
     
    <html>
     
    	<head>
     
    		<title></title>
     
    	</head>
     
    	<body>
     
    <?php
     
            $head = "<title>Erreur 404</title>";
     
    ?>		<h1>
     
    			La page que vous avez demander est introuvable !!!</h1>
     
    		<p>
     
    			Veuillez suivre l'un des liens suivant:</p>
     
    		<p>
     
    			<a href="&lt;!--{cke_protected}%3C%3Fphp%20echo%20WEBROOT%3B%20%3F%3E--&gt;index.php">Accueil</a><br />
     
    			<a href="&lt;!--{cke_protected}%3C%3Fphp%20echo%20WEBROOT%3B%20%3F%3E--&gt;contact.php">Contact</a><br />
     
    			<img alt="Erreur 404" src="&lt;!--{cke_protected}%3C%3Fphp%20echo%20WEBROOT%3B%20%3F%3E--&gt;theme/erreur404.jpg" /></p>
     
    	</body>
     
    </html>
    Si tu a une solution je suis preneur.

    merci

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Le résultat est très bien, tu devrais générer les balises <html> et <head> après avoir utilisé la variable $title.

    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
     
    <?php
    ob_start();
    eval($ckeditor_value);
    $content = ob_get_contents();
    ob_end_clean();
    ?>
    <html>
    <head>
    <?php 
    if(isset($title)){
        echo $title;
    }
    ?>
    </head>
    <body>
    <?php echo $content ?>
    </body>
    </html>

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Par défaut
    bonjour,

    J'ai mis les chemin des images avec une partie en php ce qui fait que CKEditor me le change comme ceci:

    Code original:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?php echo WEBROOT; ?>index.php">Accueil</a>
    code une fois passé par CKEditor:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="&lt;!--{cke_protected}%3C%3Fphp%20echo%20WEBROOT%3B%20%3F%3E--&gt;index.php">Accueil</a><br />
    Pour résoudre ce problème j'ai enlevé le php et mis directement le chemin relatif, sa arrange bien les choses puisque maintenant CKEditor ne me midifie plus le chemin et en plus maintenant je vois les images quand j'édite le fichier dans CKEditor


    Par contre j'ai pas tout compris dans ta réponse, ce n'est pas moi qui génère les balises <html> et <head> c'est CKEditor qui les met une fois que je sauvegarde.
    C'est sur que ce serais bien mieux que ma variable $head ($title) soit mise avant le code html mais je ne vois pas comment lui dire cela à CKEditor

    J'ai éssayé de mettre le code que tu ma proposé dans ma page index qui appel tout les autres fichier mais je ne vois pas trop à quoi cela sert, pourrait tu m'en dire plus s'il te plais ?

    J'ai rajouté cette ligne qui manquais dans mon code:
    mais il faut peut être que je définisse la variable $ckeditor_value mais je ne vois pas à quoi elle correspond !

    merci

Discussions similaires

  1. Transcrire code PHP dans une DLL
    Par LEK dans le forum C++
    Réponses: 16
    Dernier message: 26/09/2005, 14h17
  2. Mettre un code php dans une variable...
    Par kedare dans le forum Langage
    Réponses: 6
    Dernier message: 19/09/2005, 12h55
  3. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58
  4. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

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