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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Utilisation de Easy AJAX inline text edit 2.0


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Utilisation de Easy AJAX inline text edit 2.0
    Bonjour bonjour,

    J'ai trouvé ce script qui m'intéresse car il permet une édition 'en contexte', très pratique en terme de vue globale et de gain de place.
    Le problème est que je n'arrive pas à l'utiliser de manière dynamique sur un contenu qui est édité à la volé, par expression régulière, pour ajouter les balises HTML nécessaires au fonctionnement.
    En réalité, j'ai un contenu structuré de manière... classique, dans des paragraphes et des titres que je veux donc éditer. Pour cela, directement à l'intérieur des containers que sont les balises <p> et <hX>, je veux poser un <span id="id_généré_par_compteur" class="editText"> [... contenu ...]</span>.
    Pour cela, j'ai deux problèmes. Le premier est de réussir à appliquer ma regexp au HTML de la page, qui pour plusieurs raisons est stocké de manière difficile d'accès :
    dans un fichier de stockage en PHP, on a la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php function contenu() { ?>
    <h1>Titre</h1><p>Lorem Ipsum</p>...
    <?php } ?>
    fichier inclus, et fonction appelée dans la page principale avec un simple contenu();. Je n'ai pas réussi à appliquer ma regexp sur cette source, sauriez-vous me dire comment faire ?
    J'utilise pour l'instant ce type de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php preg_replace('/<((p|h[1-6]))((\W[^>]*))?>(.*?)<\/\1>/',
     '<$1$2><span class="editText">$3</span></$1>',
     contenu()); ?>
    Comme toutes les regexp, c'est très peu lisible et compréhensible à qui n'en a pas l'habitude . En vert le nom de la balise, en bleu ses éventuels attributs, en rouge son contenu.
    Le problème est que le contenu sort brut, et non traité par la regexp.
    Mon deuxième problème est moins lourd : je ne sais générer un compteur, pour rajouter un id='X' en fonction du numéro de l'occurrence (id="p1" pou le premier paragraphe rencontré, id="p2" pour le suivant, etc.).

    Je serais très reconnaissant à qui pourra m'aider en partageant son savoir.
    Merci d'avance !
    Wadzar

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai réussi à me répondre quant à l'utilisation de la regexp sur le produit de la fonction : j'utilise désormais la fonction ob_start pour mettre en buffer le contenu, avant de lui appliquer une fonction de rappel constituée par la regexp, puis l'envoyer avec ob_end_flush().
    Quant à la création des ID, je n'y suis toujours pas...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bon, après découverte des fonctions de rappel, les choses s'éclaircissent : on va appliquer la regexp avec une fonction de rappel qui va se charger du décompte. Si jamais quelqu'un a une idée plus simple, qu'il le dise, mais je pense que ça convient comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $contenu = preg_replace_callback("#<p(\s[^>]*)?>#", create_function('$matches', 'static $compteurp; $compteurp++; return ("<p".$matches[1]."><span class=\"editText\" id=\"p".$compteurp."\">");'), $contenu); // ajout des balises de paragraphes
    $contenu = preg_replace_callback("#<h([1-6])(\s[^>]*)?>#", create_function('$matches', 'static $compteurh; $compteurh++; return ("<h".$matches[1].$matches[2]."><span class=\"editText\" id=\"h".$compteurh."\">");'), $contenu); // ajout des balises de titres
    $contenu = preg_replace('#</(p|(h[1-6]))>#', '</span></$1>', $contenu); //ajout des balises de clôture
    Voilà voilà, bonne journée à tout le monde.

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

Discussions similaires

  1. Calcul en utilisant la valeur d'un "text Edit"
    Par cedji dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 03/06/2013, 15h26
  2. utilisation du contenu d'un champ edit dans une requete sql
    Par amri2006 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/01/2006, 16h05
  3. utilisation d'un CopyFile avec des edits.??
    Par EssaiEncore dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2005, 16h32
  4. Utilisation de replace dans champs text
    Par cdelamarre dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 01/12/2004, 17h26
  5. [GNU Pascal] Utiliser la souris en mode texte
    Par jack412f dans le forum Autres IDE
    Réponses: 6
    Dernier message: 21/05/2004, 01h09

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