Inserer un lien dans un textarea depuis un popup....
jacknikolson
Messages postés134Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 novembre 2012
-
17 nov. 2006 à 10:15
cs_neof1
Messages postés1Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention11 décembre 2006
-
11 déc. 2006 à 12:23
Bonjour,
J'aimerais réaliser un truc mais je ne sais pas du tout comment faire. Il s'agit de JS mais comme je ne maîtrise pas du tout je demande de l'aide.
Voici le projet:
Je travaille sur un portail.
J'ai une page pour poster des articles, avec un petit éditeur de texte. Depuis cette page je peux ouvrir une popup pour visualiser les images d'un dossier (l'URL de l'image s'affiche sous celle-ci). Si je veux insérer une image dans mon article je dois prendre son url, la coller dans l'éditeur de texte et entourer cette url avec des balises .
Ce que je voudrais, si c'est réalisable, c'est que depuis ma popup, en cliquant sur un bouton "insérer" situé sous chaque image ça insère dirrectement dans le champ de texte de ma page principale là où se trouve le curseur....
J'ai trouvé ailleurs dans le portail une page qui gère le choix d'avatars de cette façon mais je ne réussis pas à adapter ça à mon cas.
Dans la popup l'image s'affiche avec ce lien:
Dans la page de base il y a cette fonction:
<script type= "text/javascript">
function showimage() {
if (!document.images)
return
document.images.avatar.src=
\'./images/avatars/\' + document.new_user.user_avatar.options[document.new_user.user_avatar.selectedIndex].value
}
</script>
L'endroit où l'avatar change quand on clique sur celui de la popup indique ceci:
Je ne réussis pas à adapter ça à mon cas. Si quelqu'un a la solution merci d'avance.
Voici mon code:
<?php
####################################################################
######## générer la popup de gestion des images du module ##########
####################################################################
if (isset($_REQUEST['avatar']) && $_REQUEST['avatar'] == 'voir')
{
if(!file_exists('../../themes/'.$theme.'/themeinfo.php'))
{
$dir=opendir('../../themes');
while(($theme=readdir($dir))!==FALSE)
{
if(file_exists('../../themes/'.$theme.'/themeinfo.php')){break;}
}
if(!file_exists('../../themes/'.$theme.'/themeinfo.php')){
function bloc_head($titre)
{
echo ''.$titre.'
';
## UPLOAD##
error_reporting(0);
$err = '';
if (isset ($_GET['type']) && $_GET['type'] == 'valid')
{
// A adapter
$largeur_max = 800;
$hauteur_max = 1200;
$poids_max = 1000000;
// Pas touche à la suite
$poids_max_txt = round($poids_max / 1024).' ko';
if (is_uploaded_file ($_FILES['image']['tmp_name']))
{
if ($infos_img = getimagesize ($_FILES['image']['tmp_name']))
{
if ($infos_img[0] > $largeur_max)
$err = 'Taille ou format incorects (voir mode d\'emploi)';
if ($infos_img[1] > $hauteur_max)
$err = 'Taille ou format incorects (voir mode d\'emploi)';
if ($image_size > $poids_max)
$err = 'Taille ou format incorects (voir mode d\'emploi)';
if ($infos_img[2] == 5 || $infos_img[2] == 6)
$err = 'Taille ou format incorects (voir mode d\'emploi)';
if (file_exists('../../modules/publications/images/'.$image_name))
$err .= 'Il y a déjà une image avec ce nom.
';
if ($err == '')
{
move_uploaded_file ($_FILES['image']['tmp_name'], '../../modules/publications/images/'.$_FILES['image']['name']);
$err = 'L\'image a bien été transférée';
}
}
else
$err .= 'Ce n\'est pas une image qui a été uploadée.
';
}
else
$err .= 'Aucune image n\'a été uploadée.';
}
echo '
----
1) Si nécessaire, ajoutez vous images dans la base de données d\'images du module.
2) Copiez le lien complet situé sous l\'image et collez-le dans l\'éditeur de texte.
2) Sélectionnez ce lien dans l\'éditeur de texte et cliquez sur l`\'icône "image"
** Attention cliquer sur [Supprimer] supprime définitivement l\'image***
';
// Fonction pour deleter une image.
if ($faire_image == 'del'){
unlink('../../modules/publications/images/'.$_GET['nom_img']);
echo '
<center>L"image a été supprimée du serveur !
// Modification : On insère 0 à la valeur de validation pour que l'publications soit validé directement
## ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ Modif par VANGARDIS ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ##
//Modif pour remplir le champ position que j'ai rajouté
//--> on prend la position
$req=reqmysql("SELECT position FROM `publications` WHERE `publications`.`ref`=".$_POST['ref']."
ORDER BY position DESC");
$result = mysql_fetch_object($req) ;
$new_pos = $result->position + 1 ;
// Au post de l'article on rajoute le champ "position" ("'.$new_pos.'")
$req = reqmysql('INSERT INTO `publications` (titre,date,auteur,ref,texte,type,attribut,validation,position) VALUES ("'.addslashes($_POST['titrenews']).'","'.$temps.'","'.$pseudo.'","'.$_POST['ref'].'","'.addslashes($_POST['texte']).'","'.$_POST['type'].'","'.bbcode($_POST['smileys']).'","0", "'.$new_pos.'");') or die ('
<center>Une erreur est survenue !</center>') ;
## ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ FIN Modif par VANGARDIS ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ##
bloc_head('Information');
echo '
Merci de votre participation !
<form action="index.php">
</form>';
close_table();
}
else
{
bloc_head('Poster une publication :');
echo '
----
<script type="text/javascript" src="bbcode.js"></script>
<script type="text/javascript">
function envoyer(formulaire)
{
if (formulaire.titrenews.value=="")
{
alert("Veuillez indiquer un titre pour votre publications.");
formulaire.titrenews.focus();
return false;
}
if (formulaire.texte.value=="")
{
alert("Veuillez indiquer un contenu pour votre publications.");
formulaire.texte.focus();
return false;
}
formulaire.submit();
}
</script>
jacknikolson
Messages postés134Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention18 novembre 2012 17 nov. 2006 à 17:38
un autre détail.
Quand je clique ça met bien le lien mais si je clique une autre image ça remplace le lien.....j'aimerais bien que ça le mette à la queue...
Que ça l'insère là où se trouve le curseur en fait.
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010 22 nov. 2006 à 14:31
excuse moi c'est pas "wysiwig" mais "wysiwyg" sur les adresses que jai mis ou aussi http://www.codes-sources.com tu y verras des exemple d'éditeur de texte
voici un exemple de code :
------------------------------------------------index.htm----------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>WYSIWYG</title>
<script language= "javascript" src="wysiwyg.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</html>
-----------------------------------~~~~~~----------------------------~~~~~~---------------------------------
-------------------------------------------------wysiwyg.js------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////
//script réalisé par Andrei Savin (Glork) //
//////////////////////////////////////////////////////////////////////////////////////////
var icon_list = new Array();
icon_list[0] = new Array("bold", "bold", "Bold");
icon_list[1] = new Array("underline", "underline", "Underline");
icon_list[2] = new Array("italic", "italic", "Italic");
icon_list[3] = new Array("bar", "bar", "bar");
icon_list[4] = new Array("JustifyLeft", "left", "Left Align");
icon_list[5] = new Array("JustifyCenter", "center", "Center");
icon_list[6] = new Array("JustifyRight", "right", "Right Align");
icon_list[7] = new Array("bar", "bar", "bar");
icon_list[8] = new Array("insertorderedlist", "orderlist", "Ordered List");
icon_list[9] = new Array("insertunorderedlist", "turnorderlist", "Bulleted List");
icon_list[10] = new Array("bar", "bar", "bar");
icon_list[11] = new Array("forecolor", "charcolor", "Character Color");
icon_list[12] = new Array("backcolor", "backgroundcolor", "Highlighted Color");
icon_list[13] = new Array("bar", "bar", "bar");
icon_list[14] = new Array("createlink", "link", "Add Link");
icon_list[15] = new Array("insertimage", "image", "Add Image");
icon_list[16] = new Array("inserthorizontalrule", "rule", "Rule");
icon_list[17] = new Array("bar", "bar", "bar");
var font_list = new Array();
font_list[0] = new Array("Arial", "Arial");
font_list[1] = new Array("Courier", "Courier");
font_list[2] = new Array("Sans Serif", "Sans Serif");
font_list[3] = new Array("Tahoma", "Tahoma");
font_list[4] = new Array("Verdana", "Verdana");
font_list[5] = new Array("Wingdings", "Wingdings");
var fontsize_list = new Array();
fontsize_list[0] = new Array("1", "Tres petit");
fontsize_list[1] = new Array("2", "Petit");
fontsize_list[2] = new Array("3", "Moyen");
fontsize_list[3] = new Array("4", "Gros");
fontsize_list[4] = new Array("5", "Tres gros");
fontsize_list[5] = new Array("6", "Enorme");
var handing_list = new Array();
handing_list[0] = new Array("Heading 1", "H1");
handing_list[1] = new Array("Heading 2", "H2");
handing_list[2] = new Array("Heading 3", "H3");
handing_list[3] = new Array("Heading 4", "H4");
handing_list[4] = new Array("Heading 5", "H5");
handing_list[5] = new Array("Heading 6", "H6");
if (commande == 'formatblock'){
//var select_font_op = document.getElementById("selectfontsize").options[document.getElementById("selectfontsize").selectedIndex].value);
window.frames[zone_html].document.execCommand('fontname',"",select_font_op);
}
if (commande == 'fontname'){
//alert(option);
select_font_op = option;
}
window.frames[zone_html].focus();
}
function Reset(zone) {
var txt_zone_tags;
if (zone == 'all'){
txt_zone_tags = document.getElementsByTagName("textarea");
for (var i = 0; i < txt_zone_tags.length ; i++) {
makeFrame(txt_zone_tags[i].id);
}
}
else{
makeFrame(zone);
}
}
function copy2(zone1, zone2) {
var iframe_area = zone1;
var txt_area = zone2;
document.getElementById(txt_area).value = window.frames[iframe_area].document.body.innerHTML;
}
function copy(zone1, zone2) {
var txt_area = zone1;
var iframe_area = zone2;
window.frames[iframe_area].document.body.innerHTML=document.getElementById(txt_area).value;
}
function makeFrame(txt_zone) {
var parent=document.getElementById(txt_zone).parentNode;
var icons_tab = "";
var iframe_name = txt_zone + "_iframe";
var div_name = txt_zone + "_div";
var div_name2 = txt_zone + "_div_contener";
var div_wysiwyg_name = txt_zone + "div_wysiwyg";
//crée la zone tools
tab_tool = document.createElement("TABLE");
document.write("<style type="text/css"> div {background-color: #CCCCCC;border: 1px solid #333333;}</style>");
}
------------------------------------------------------------------------------------------------------------------------
excuser moi pour les images !!!
var HSelect = document.selection.createRange().text;
if( HSelect.length > 0){
var Chaine = document.selection.createRange();
Chaine.text = txt_ ;
Chaine.collapse();
Chaine.select();
}
else{
var Chaine = Obj.value;
var HMark ="~~";
var HTmp = document.selection.createRange().duplicate();
HTmp.text = HMark;
var PosDeb = Obj.value.search(HMark);
var HAvant = Chaine.substring( 0 , PosDeb);
var HApres = Chaine.substring( PosDeb, Obj.textLength );
Obj.value = HAvant + txt_ + HSelect + HApres;
PosDeb += txt_.length;
PosDeb -= Get_NbrCR( HAvant);
Chaine = Obj.createTextRange();
Chaine.moveStart('character', PosDeb);
Chaine.collapse();
Chaine.select();
}
}
}
}
function Fct_Btn3(){
Cursor_AddTexte('T_MESS', document.getElementById('I_TXT3').value);
}
/*T_MESS défigne l'ID et le NAME qui doivent etre les meme
I_TST3 désigne l'ID et le NAME de l'inout qui contient le texte a ajouter.*/