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

WinDev Discussion :

Insérer un lien dans un champ HTML


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Insérer un lien dans un champ HTML
    Bonjour,

    Je me lance dans la création d'un éditeur HTML wysiwyg.

    Mon problème :
    Je souhaite insérer un lien dans le champ HTML.
    J'ai essayé la fonction RTFInsere mais cela provoque une erreur.

    Quelle fonction ou méthode utiliser pour insérer le lien ?

    Merci
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 91
    Points : 136
    Points
    136
    Par défaut
    bonjour

    HTM_Site = [
    <A href="http://www.pcsoft.fr" target="_blank"> PC SOFT</A>
    ]

    bon devs

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci de ton aide digi12,
    Merci pour la syntaxe.

    Mon souci maintenant c'est de trouver le moyen d'insérer cela au bon endroit dans le code html du champ html

    Je fais comment selon toi ?
    Les solutions les plus simples sont les plus efficaces

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    vous faites un amalgame entre le champ HTML et un éditeur HTML.
    Garder en tête que le champ HTML de windev, c'est une fenêtre IE...

    Et donc si je vous pose la question, comment fait-on pour modifier le paragraphe de la page d'accueil du site de M. Dupont.... ça m'étonnerait que je puisse via IE modifier directement le code

    Par contre si on me donne accès au fichier (donc un ficher .html ou .php, etc...), naturellement on va modifier ce contenu dans un bloc-note.

    En conclusion, le champ HTML de windev est là pour montrer le résultat d'un fichier texte.

    Je vous laisse donc réfléchir sur le moyen d'écrire dans un fichier texte ou plus simplement dans un champ de saisie multiligne pour afficher le rendu dans un champ HTML.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci des conseils Ry_Yo
    Je comprend bien la démarche et il est effectivement plus facile de modifier directement le code html en direct. Le problème c'est que l'outil est destiné à des utilisateurs qui ne connaissent par le langage html (moi même, je n'ai que peu de connaissance). Du coup, je souhaite automatiser les modifications.

    Exemple :
    Dans un champ HTML s'affiche "Bonjour ceci est un lien"
    L'utilisateur veut ajouter un lien hypertexte sur le mot "lien"
    Il sélectionne le texte, il déclenche la procédure de création, il renseigne les paramètres (lien, type de lien...) il valide et voilà, le lien est créé
    La difficulté est donc d'automatiser la modification du code HTML pour y insérer ce lien :
    - Localiser le texte sélectionné dans le code HTML
    - Selon le texte sélectionné, apporter les modifications qui conviennent

    Je cherche, je cherche mais j'ai du mal.

    J'espérais trouver un activex ou un dll permettant de me simplifier la tâche mais je n'ai rien trouvé.
    Les solutions les plus simples sont les plus efficaces

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Pour en revenir au champ HTML, il est bien directement modifiable.

    Il y a même cette barre d'outil trop limitée à mon goût mais qui permet les manip de base. D'ailleurs, où peut on voir le code exécuter par les différentes fonctions de cette barre d'outil ?
    Les solutions les plus simples sont les plus efficaces

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Personnellement, je pense que vous vous engagez sur un dev. sans fin.

    Prenez l'exemple du forum et de bien d'autres, même lorsque vous insérer un lien hypertexte ou insérer une image, ou tout simplement de la mise en forme, du pseudo-code HTML apparait dans le texte... et c'est ensuite pour le rendu final que tout est traduit.
    Même une personne ne connaissant pas HTML devra ne pas s'offusquer à voir apparaître des signes cabalistique lorsqu’ils veulent écrire en gras, rouge, souligné, insérer un lien ou image, etc...
    Si vous voulez vous approchez au plus près de l'édition HTML en direct, ça reste du RTF... et priez pour que IE via le champ html de windev interprète correctement la conversion... gestion du CSS3 ou HTML 5, gestion de la supperposition des DIV, etc...
    Au mieux que vous puissiez faire niveau ergonomie, est de de permettre la sélection de texte ou autre et de remplacer le tout par programmation, mais encore une fois, le champ HTML n'est qu'un activeX déguisé de IE... donc il est impossible d'écrire directement dedans.

    Donc tout votre travail de modification/ajout/suppression se fera soit dans une variable de type texte qu'il faudra parser, soit au plus simple dans un champ RTF sur un onglet par exemple, et ensuite montrer le rendu HTML sur un autre onglet...


    EDIT : Ok, pour un "champ de saisie de type HTML", mais pas pour un champ HTML. Or si vous devez modifier le contenu HTML... ça sera toujours avec via un champ texte, ou mieux de type RTF.

    EDIT2 : le code n'est pas accessible, c'est natif à Windev, mais le principe est simple, un champ de saisie de type HTML est un champ RTF avec une conversion implicite des balises HTML. Donc si vous voulez faire la même choses, le process est toujours le même :
    - récupérer les positions de début et fin de sélection
    - insérer au début une balise ouvrante correspondant à l'action voulu
    - insérer à la fin une balise fermante correspondant à l'action voulu
    PS : toujours faire les insertions en partant de la fin, sinon vous changez les positions de référence

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Donc Ry_Yo,

    tu me conseil de creer le visuel dans un champ RTF et ensuite de convertir en html ?

    On peut gerer des lien hypertexte dans un champs RTF ?
    Les solutions les plus simples sont les plus efficaces

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Avancement de mes travaux pour avis,
    Je continue sur ma lancée,

    J'ai donc créé un champ HTML et un bouton pour insérer un lien (lien figé pour l'instant).

    Le code html avant insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <BODY bgColor=#ffffff><P><FONT color=#2d2d2d size=1 face="Trebuchet MS">lien</FONT></P></BODY>
    Le code html après insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <BODY bgColor=#ffffff text=#000000><P><FONT color=#2d2d2d size=1 face="Trebuchet MS"><A href="http://www.anofab.fr">lien</FONT></P></A></BODY>
    Le code utilisé pour l'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Html_debut est une chaîne
    Html_fin est une chaîne
    Html_Complet est une chaîne = SAI_HTML
    Html_Selection est une chaîne = SAI_HTML..TexteSélectionné
    Html_Taille est un entier = Taille(SAI_HTML..TexteSélectionné)
    Html_Position est un entier = Position(Html_Complet,Html_Selection)
    Html_Nouveau est une chaîne
     
    SI SAI_HTML..TexteSélectionné <> "" ALORS
    	Html_debut = Gauche(Html_Complet,Html_Position-1)
    	Html_fin = Droite(Html_Complet,Taille(Html_Complet)-Html_Position-Html_Taille+1)
    	Html_Nouveau = Html_debut + "<A href=""http://www.anofab.fr"">" + Html_Selection + Html_fin	
    	SAI_HTML = Html_Nouveau
    FIN
    Avis de pros du HTML ou/et de windev ?

    Pour l'instant :
    - Le lien est programmé en dur
    - L'insertion ne fonctionne que si un texte est sélectionné

    Merci de votre aide
    Les solutions les plus simples sont les plus efficaces

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    l'approche est bonne, par contre, le souci va venir des contrôles. Ca sera le plus gros du dev. (d'où ma remarque d'un dev sans fin) :

    Il va falloir contrôler la "sémantique" HTML. en gros, imaginé un bouton pour mettre en gras, si je clic 5 fois dessus, comment allez-vous gérer l'affaire ?
    Idem, je clic 3 fois sur la mise en gras mais que je sélectionne du texte à cheval entre 2 sélections. comment allez-vous le gérer ?

    Je veux supprimer la mise en gras, au niveau ergonomie ? le fais de sélectionner du texte gras fera que votre bouton gras sera enfoncé et on clic de nouveau dessus pour enlever le gras, mais il faudra gérer le cas d'une mise en gras partielle

    etc... des exemples de contrôles comme celui là il y en a une multitude... A partir du moment où vous voulez proposer un éditeur HTML, il va falloir le blinder au niveau contrôle... Et ce travail est sans fin...

  11. #11
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    As tu regardés le composant que je t'ai précédemment communiqué ?
    Il est très facile d'utilisation et a de nombreuses fonctionnalités en plus de celles de la barre d'outils prévu pour le type html

    http://www.ics-informatique.com/html/html_editor.html

    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci de votre aide
    A priori, la gestion des textes (police, gras, italique, taille, alignements...) est assez simple puisque que les fonction rtf fonctionnent sur un champ html.

    J'ai en partie géré l'insertion de lien. Je dis bien en partie parce que j'ai bien conscience de la multitude de cas de figure.

    Il me reste bien du chemin à faire et c'est certain qu'un outil près développé serais plus pratique.

    Je vais de nouveau jeter un oeil à l'outil que tu suggères Laurent. Ce qui me gène c'est de ne pas avoir la main sur le code.

    question technique :
    Est-ce qu'une page html est paramétrable en largeur ? Autrement dit, est-ce que je peux bloquer la largeur d'affichage d'une page ?
    Les solutions les plus simples sont les plus efficaces

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Oui, tu as raison laurent, le composant est bien et je ne ferais pas mieux avant longtemps alors... je ne vais pas réinventer l'eau chaude

    merci
    Les solutions les plus simples sont les plus efficaces

  14. #14
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    Oui, tu as raison laurent, le composant est bien et je ne ferais pas mieux avant longtemps alors... je ne vais pas réinventer l'eau chaude
    merci
    Si tu en as vraiment besoin les sources sont à vendre...

    On n'a jamais intégré ce composant dans nos applications, je l'avais juste testé il y a quelques années... de souvenir il y avait un petit problème avec les tableaux qui ne s’inséraient pas au niveau du curseur, mais s'ajoutait à la fin de la saisie... peut être que ce problème a été résolu ???
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    ...
    question technique :
    Est-ce qu'une page html est paramétrable en largeur ? Autrement dit, est-ce que je peux bloquer la largeur d'affichage d'une page ?
    La réponse est oui, le principe est d'encapsuler votre contenu dans un DIV et de jouer avec le CSS pour avoir le rendu voulu.

    Je vous invite à faire une formation ou suivre des tuto HTML5/CSS3, afin de construire votre page html dans les normes et coutumes du web.

Discussions similaires

  1. [WD14] Ouvrir le navigateur par un Lien dans un champ HTML
    Par fweds dans le forum WinDev
    Réponses: 3
    Dernier message: 15/09/2015, 16h33
  2. Insérer du texte dans un champ depuis un lien (smiley)
    Par arnolem dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/04/2006, 11h27
  3. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  4. Comment insérer un espace dans un champ
    Par davyd dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/03/2005, 10h00

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