Répondre

Veuillez composer votre message et l'envoyer
Options
Si vous êtes un être humain ne changez pas le contenu de ces deux champs.

Retour

Résumé de la discussion (messages les plus récents en premier)

jonas
18-01-2007 21:04

J'ai enfin jeter un coup à ce patch, et je trouve qu'on pert beaucoup de fonctionnalité à cause de lui les titres par exemple. Je ne vais donc pas chercher de solution sad

Mais si quelqu'un patch ce patch pour clickimage je serait heureux d'héberger la solution wink

jonas
11-01-2007 18:48

Tient bizarre j'ai eu un bug en testant la demo (ça marchais pas, je comprennais pas l'intéret du patch ... j'ai cru que je n'avait pas compris l'intéret de ce patch). Bon c'est bon ça marche et j'ai compris l'intérêt smile.

Visiblement tu as pas mal chercher mais pour ton utilisation preso si tu est toujours en "Wysiwyg" tu ne peut pas faire un truc pas propre c'est a dire faire un toogleView au début et un à la fin (sans if) ? J'ai bien dis pas propre hein !

Sinon dans la fonction "insImg(src)" que tu as donné au début, je ne vois pas le "isWysiwyg" ? de ou tu le sort ? Si je regarde cette fonction j'ai l'inpersion qu'il détecte l'histoire avec ce code mais ... j'ai regarder tous ça en vitesse.

        if (!(textarea.ownerDocument.getElementById(wysiwygIframeId)
            && textarea.ownerDocument.getElementById(wysiwygIframeId).style.display=="block")

que tu metterai à la place de ton "if (isWysiwyg)"

zeya
11-01-2007 00:16

oops: pour te repondre sur valtab voici le debug :

function mk_chemin(images/test/)
envoi de 20061.jpg : OK
function miniature(images/test/20061.jpg, min)
min-reso : global
extention : jpg
function miniature(images/test/20061.jpg, orig)
extention : jpg
min : images/test/min_20061.jpg , orig : images/test/20061.jpg

valtab : code_html_gauche

zeya
11-01-2007 00:11

re :)

en fait ce n'est pas un plugin, mais un patch ... cela dis, il fonctionne super bien : patchsWysiwyg-0.2.3.1.zip
on peut en voir une demo ici.

evidement, moi j'ai en plus de la demo le bouton clickImage (entre les 2 dernier ;)

j'avais au début testé tout betement un renvoi de insImgClick(src) vers insImg(src), mais ca ne va pas car insImg() (en mode wywiwyg) prend en param seulement le chemin+nom du fichier image, alors que insImgClick() recoit elle en param le tag html complet

et je t'avoue que c'est un peu hard car insImg() en mode wysiwyg ca insere le tag (qui est d'abord 'construit') en tant qu'element dans la structure dom de l'html et non simplement comme ajout de 'texte' (je ne sais pas si je suis tres claire :)

ensuite (apres divers essai de réecrire insImgClick() ..) j'ai essayé d'automatiser le changemet de mode au moment de l'utilisation de insImgClick(), ca me semblais une bonne meme si 'demi' solution ... (puisque si je change manuellement clickImage va tres bien) :
puisque le bouton [<>] appelle une fonction toggleView() je pensais que se serais simple a faire, mais visiblement j'ai des prob de scope de variable :(

function insImgClick(src)
	{
		var memoWysiwyg=false;
		if (isWysiwyg){ // si on est en mode wysiwyg, on troggle pour passer en mode normal ... 
			memoWysiwyg=true;
			toggleView();
		}
		
		if (document.all) {
			textarea.focus();
			textarea.value = textarea.value+src;
		} else {
			encloseSelection('','',
			function() {
				return src;
			});
		}
		
		if(memoWysiwyg) toggleView(); // si on a changé de mode on rechange ...
	}
/*
apparement ma fonction voit 'isWysiwyg' comme undefined ... et je ne comprend pas pourquoi ... :'(
par conre l'acces a toggleView() semble ok, mais je ne sais pas si cela fonctionne bien ... ni si on peu en js faire ces 2 troggle si 'vite' .. ?
*/

bref, je pense qu'il y a 3 solutions
- arriver a inserer un 'tag tout fait' dans le dom html (glup :)
- modifier la fonction domInsertTag(tag, needClosingTag, attributsArray) qui fait cela tres bien mais devrait accepter les tag image "clickImage" ou un tag 'tout fait' et juste l'inserer.
- ou mon dernier essai : arriver a "switcher" de mode pour l'insertion (ce qui me semble quant meme le plus simple :)

remarque peut etre importante... : je ne sais plus si j'ai installé clickImage avant le patch ou inversément ... (je crois le patch avant, mais pas certaine..)

cela dis, je ne sais pas si ce patch est tres connu ou tres utilisé, donc si cela vaut la peine de se pencher tellement dessus ? si le temps passé sera utile aussi a d'autres quoi ...

zeya

//ps, rien avoir, mais il y a un prob avec clickImage et lightbox (en tout cas chez moi :) si je ne veux pas d'album il met par defaut "[LIGHT]", mais si j'ai plusieurs image cliquables sur une meme page, ca me fait donc un album pour toute les image sans album :/

ama c'est quelque part dans les scripts de clickImage, il faudrait remplacer "LIGHT" par autre chose ? (par ex l'id du post pour etre sur qu'il est unique ?) c'est p-e aussi dans les script ligthbox cette valeur par defaut ... je n'ai pas plus regardé que cela..
... oops je devrais p-e faire un nouveau thread .. :/

jonas
10-01-2007 22:31

Salut

en faite moi aussi le java c'est pas ça roll tellement pas ça que clickimage créer le code (html ou wiki) grâce à du php.

Je n'ai pas le temps ces temps-ci de regarder mais 2-3 explication de mon code et blabal sur une piste (je réfléchit en même temps tongue):

Je le copie pour l'avoir sous les yeux

	//ajout pour clickimage----------------------------------------------------

	function btImgClick(label,url) {
		addButton(img_path+'../tools/clickimage/bouton.png',label,
		function() {
			urlf = url+'?format='+getFormat();
			popup(urlf);
		});
	}
	
	function insImgClick(src)
	{
		if (document.all) {
			textarea.focus();
			textarea.value = textarea.value+src;
		} else {
			encloseSelection('','',
			function() {
				return src;
			});
		}
		
	}
	//fin ajout----------------------------------------------------------------

La fonction btImgClick()
Elle ouvre le popup avec une adresse du type "/tools/clickimage/clickimage.php?format=html" (ou wiki) ensuite le code de clickimage récupère le format avec un $_GET['format'].
Il faudrait que je sache ce que retourne format avec "wysiwig" (via "valtab : " dans le popup en mode debug)

La fonction insImgClick()
Elle insère le code dans le texte et est appeler dans clickimage.php et est appeler dans clickimage.php ligne 111

As-tu le lien ou je peux trouver pour wysiwig (j'ai pas cherché), je ne promet rien mais si j'ai le temps je regarde (en plus ça pourrait me servir sur un autre blog ou j'ai de rédac-newbie pas capable de taper un code wiki big_smile (si vous me lisez les gas, tans pis pour vous)

[edit] Si tu trouves la solution, évidement je suis intéressé, merci de me le signaler wink

zeya
09-01-2007 21:18

salut,

j'ai installé un plugin wysiwig pour l'edition en mode html.
j'aimerais que clickimage fonctionne dans ce mode, pour le moment c'est la 'classique' page de degug sans debug activé qui s'affiche dans la popup si je ne déselectionne pas le mode wisiwyg avant d'utiliser clickimage (je sais que la manip n'est pas bien compliquée, mais bon ... :)

c'est normal.
en effet la fonction insImgClik(src) ne peux pas inserer le code, elle est adaptée au toolbas.js standard.

je met ici pour reference la fonction insImg(scr) 'normale' et modifiée pour le wisiwig , j'ai essayé d'adapter insImgClick mais sans succes, je ne suis pas une geek en js meme si je vois bien que le problème est là ... ;)

function insImg(src)
	{
		if (document.all) {
			textarea.focus();
			if (getFormat() == 'wiki') {
				textarea.value = textarea.value+'(('+src+'))';
			} else {
				textarea.value = textarea.value+'<img src="'+src+'" alt="" />';
			}
		} else {
			encloseSelection('','',
			function(str) {
				if (getFormat() == 'wiki') {
					if (str) {
						return '(('+src+'|'+str+'))';
					} else {
						return '(('+src+'))';
					}
				} else {
					if (str) {
						return '<img src="'+src+'" alt="'+str+'" />';
					} else {
						return '<img src="'+src+'" alt="" />';
					}
				}
			});
		}
	}

//la meme modifiée .. :

function insImg(src)
	{
		if (!(textarea.ownerDocument.getElementById(wysiwygIframeId)
			&& textarea.ownerDocument.getElementById(wysiwygIframeId).style.display=="block"))
		{
			if (document.all) {
				textarea.focus();
				if (getFormat() == 'wiki') {
					textarea.value = textarea.value+'(('+src+'))';
				} else {
					textarea.value = textarea.value+'<img src="'+src+'" alt="" />';
				}
			} else {
				encloseSelection('','',
				function(str) {
					if (getFormat() == 'wiki') {
						if (str) {
							return '(('+src+'|'+str+'))';
						} else {
							return '(('+src+'))';
						}
					} else {
						if (str) {
							return '<img src="'+src+'" alt="'+str+'" />';
						} else {
							return '<img src="'+src+'" alt="" />';
						}
					}
				});
			}
		} else {
			wysiwygWin = textarea.ownerDocument.getElementById(wysiwygIframeId).contentWindow;			
			var html = '';

			if (wysiwygWin.getSelection) { //gecko
				var alt = wysiwygWin.getSelection().toString();
				var propImg = [
					['src', src],
					['alt', alt]
				];
				domInsertTag('img', false, propImg);

			} else { //ie
				var range = wysiwygWin.document.selection.createRange();
				html = '<img src="'+src+'" alt="'+range.text + '" />';
				IEpasteHTML(range, html);
			}
		}
	}

qqu serais il capable d'adapter insImgClick() ?

Pied de page des forums

Propulsé par FluxBB