Win3x.Org

Windows & DOS Community

Legacy [style de forum compatible anciens navigateurs]

Répondre   Page 2 sur 8  [ 120 messages ]
Aller sur la page « 1 2 3 4 58 »
Auteur Message
Big Monstro
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 16:52
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
D'une certaine façon, le problème ne se pose plus...

Depuis l'attaque d'hier soir, une protection DDoS supplémentaire a été réactivée. En tentant d'accéder au site, et avant d'être effectivement redirigé vers celui-ci, vous pouvez obtenir ceci:

[ img ]
Ce dispositif n'est malheureusement pas sans conséquence : d'abord parce que cela impose d'avoir Javascript supporté et activé pour accéder au site. Vous oubliez donc les navigateurs DOS comme Arachne, ainsi que les extensions telles que NoScript sur Mozilla Firefox. Cela a aussi des répercussions sous Windows 3.11 : les anciennes versions d'Opera et Internet Explorer ne parviennent pas à aller au-delà de l'obstacle, Netscape 4.x semble le seul navigateur 16-bit à pouvoir passer outre mais c'est probablement le pire pour consulter win3x.Org (très mauvais support du CSS). Sur les plateformes 32-bit, IE 5.0 devient le minimum pour se connecter. Même IE 4.01 est bloqué.

Dans la mesure où j'ai consacré beaucoup de temps (plusieurs journées) à rendre le site pleinement fonctionnel sur ce dernier navigateur, je ne peux qu'être déçu par ce changement d'accessibilité. D'autant plus que ce dispositif n'est même pas efficace : il a été réactivé hier soir, et cela n'a pas empêché le site d'être encore longuement attaqué durant la nuit et la matinée (j'ai relevé 507 invités aux alentours de 7 h, des erreurs 502 presque systématiques durant la nuit). Mais le pire, c'est que ça peut apparaitre lorsqu'on prévisualise ou tente d'envoyer un message. Résultat : j'ai dû réécrire ce texte en cours de route, puisqu'il avait été effacé de l'éditeur avant l'envoi.

Un tout grand merci à l'auteur des faits, qui est déterminé à exclure une autre personne de revenir par tous les moyens possibles, quitte à rendre le site inaccessible à tous les usagers.


Haut
Profil Citer
timofort
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 17:01
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 86
Inscription : 11 avr. 2010 19:58
 
J'avais remarqué le nombre impressionnant de connexions "guest" en fin de matinée, et je m'étais bien douté qu'il y avait du DDoS derrière tout ça.

Merci de nous avoir informé de ce qui se tramait. C'est triste que des gros c***ards aient du temps à gaspiller pour déboiter un site :/


Haut
Profil Citer
raymater
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 17:30
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 449
Inscription : 12 juin 2008 17:57
PC Rétro : P3 800 MHz ; 384 Mo RAM ; Voodoo 2 ; GeForce 4
 
Du coup si ça s'avère inefficace contre ce genre d'attaque et si ça bloque les vieux navigateurs : est-ce encore utile de garder CloudFare ? Mieux vaut le supprimer ?

_________________

:arrow: Mon site Web
:arrow: Mon serveur Discord


Haut
Profil Citer
Big Monstro
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 18:23
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Le prestataire CloudFlare ne bloque pas les vieux navigateurs en temps normal (sauf IE2/IE3 à ma connaissance), mais le dispositif remis en place - activé aussi au mois de mai - est plus restrictif.

A l'évidence, CloudFlare ne suffit plus, même avec le dispositif renforcé. Virer complètement toute protection ne serait pas une bonne idée; il me semble que c'était bien pire avant l'adoption de Cloudflare en février 2016 : depuis, il y a eu une accalmie pendant quelques temps, puis un piratage lié à notre propre négligence fin mai et enfin une nouvelle accalmie jusqu'à hier. L'auteur des faits aurait-il trouvé un moyen de contourner la "protection" gratuite ? Bref, il semblerait que le gratuit, ça ne vaut rien quand on a affaire à un forcené ! Mais quoi mettre d'autre à la place ? Quoi qu'il en soit, la décision appartient au propriétaire du serveur, c'est-à-dire tombcore.


Haut
Profil Citer
raymater
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 20:57
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 449
Inscription : 12 juin 2008 17:57
PC Rétro : P3 800 MHz ; 384 Mo RAM ; Voodoo 2 ; GeForce 4
 
Après j'y connais pas grand chose en CloudFare mais je ne sais pas si investir pour une version payante changerai grand chose en sachant que j'ai du mal à saisir techniquement parlant comment est-ce qu'un service extérieur est censé protéger plus des attaques. N'est-ce pas plus à l'hébergeur de faire ce travail de protection anti DDoS ?

_________________

:arrow: Mon site Web
:arrow: Mon serveur Discord


Haut
Profil Citer
KeetKhat
Sujet du message : Re: phpBB et Windows 3.11
Publié : 27 juil. 2016 21:10
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 1842
Inscription : 27 mai 2009 14:04
PC Rétro : IBM ThinkPad 380ED, Windows 95
 
Je pense que si l'attaquant connaît l'ip direct du serveur et bien CloudFare ne sert strictement à rien de ce côté là car d'après l'internet, CloudFare passe par le nom de domaine et pas directement depuis l'ip
raymater a écrit :
Comment est-ce qu'un service extérieur est censé protéger plus des attaques. N'est-ce pas plus à l'hébergeur de faire ce travail de protection anti DDoS ?
En gros c'est un service qui est entre le serveur et le domaine et donc quand le domaine (du site) se fait attaquer ça passe d'abord par CloudFare au lieu d'aller directement vers le serveur


Dernière modification par KeetKhat le 28 juil. 2016 13:21, modifié 1 fois.

Haut
Profil Citer
remax17
Sujet du message : Re: phpBB et Windows 3.11
Publié : 28 juil. 2016 12:55
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 923
Inscription : 22 sept. 2010 15:03
PC Rétro : PIII 500mhz -384Mb RAM - Voodoo 2 en SLI
 
Quelle galère pour poster...


Haut
Profil Citer
Jajan
Sujet du message : Re: phpBB et Windows 3.11
Publié : 28 juil. 2016 13:15
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 1059
Inscription : 01 mai 2010 19:44
PC Rétro : Mon boulier !
 
LiveKiller44 a écrit :
En gros c'est un service qui est entre le serveur et le domaine et donc quand le domaine (du site) se fait attaquer ça passe d'abord par CloudFare au lieu d'aller directement vers le serveur
Comme un bouclier ! :lol:

_________________

>>> http://internetometer.com/give/46797
Άγαθῇ τύχῃ
HowTea : Ƹ̵̡Ӝ̵̨̄Ʒ


Haut
Profil Citer
Big Monstro
Sujet du message : Re: phpBB et Windows 3.11
Publié : 13 sept. 2016 17:11
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Publié : 6 août 2016 00:40

J'ai oublié de notifier quelques changements appréciables depuis la mi-juillet...
  • Réintroduction de la zone de notification (sauf pour phildu80). Cette fonctionnalité a été réécrite pour fonctionner avec IE4 et supérieur.
  • Ajout d'un effet d'ombre sous certains éléments de l'interface, afin de rendre le rendu du style un peu moins vieillot avec IE9 et supérieur.
  • Ajustements mineurs pour Microsoft Internet Explorer 4 et/ou la navigation en mode VGA 16 couleurs.
----
Publié : 13 sept. 2016 17:11

Le site étant redevenu accessible via Arachne et Internet Explorer 5.0 16-bit, je relance la discussion le concernant...
Big Monstro a écrit :
Depuis quelques années (au moins 2013, cf. vogons.org), il n'est plus possible de participer à un forum phpBB via Windows 3.11 : lorsqu'on tente de poster, on obtient souvent l'erreur 'votre message ne contient pas assez de caractères', et bien sûr on perd le contenu envoyé. Virer la limite de caractères dans le PCA ne résout rien. Si on réussit à publier un (court) message, c'est qu'on a de la chance! Le problème se pose aussi bien sur les machines virtuelles que les ordinateurs physiques, Vorro me l'a d'ailleurs fait remarquer en avril dernier. Quant aux téléchargements, seuls les petits fichiers sont récupérables via la balise upload. Au delà de quelques Mo, ça devient impossible.

C'est quand même troublant une telle galère avec IE5, Nestcape 4, Opera 3.6,... en fait avec n'importe quel navigateur que j'ai eu l'occasion de tester sous Windows 3.11. Alors que sous Windows 95, même IE4 permet de publier un message et de télécharger avec un taux de réussite de 100%. Le problème ne date pas de phpBB 3.1, ni du passage à Cloudflare, c'est bien antérieur.

Il est tout à fait possible de participer à Win3x.Org via IE4 sous Windows 95, ou via Firefox sous Windows NT 3.51, mais c'est impossible sous Windows 3.11. Pourquoi en est-il ainsi ?
Pour information, le problème décrit supra se produit également sous Windows 95 si on utilise Microsoft Internet Explorer 3.02 !!!

J'ai pu m'en rendre compte en testant un autre forum phpBB (en version 3.2.0-RC1), hébergé sur un serveur non protégé par Cloudflare.
raymater a écrit :
Serait-ce lié au type d'encodage des caractères du message ?
Tout porte à croire que le souci vient de là. Une idée pour résoudre enfin ce bug ?

Sous IE 3.02 32-bit, certains caractères sont déformés, comme sur cette page => http://www.win3x.org/index.htm

Le rendu semble parfait 'en apparence' sous IE 5.0 16-bit, mais le souci se pose quand même, comprenne qui poura !


Haut
Profil Citer
KeetKhat
Sujet du message : Re: phpBB et Windows 3.11
Publié : 13 sept. 2016 17:23
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 1842
Inscription : 27 mai 2009 14:04
PC Rétro : IBM ThinkPad 380ED, Windows 95
 
Big Monstro a écrit :
raymater a écrit :
Serait-ce lié au type d'encodage des caractères du message ?
Tout porte à croire que le souci vient de là. Une idée pour résoudre enfin ce bug ?

Sûrement un paramètre à modifier dans les options du navigateur ou dans les fichiers du CMS
Big Monstro a écrit :
Sous IE 3.02 32-bit, certains caractères sont déformés, comme sur cette page => http://www.win3x.org/index.htm
Tout simplement car le charset n'a pas l'air bon, ça le fait aussi sur les navigateurs récents


Haut
Profil Citer
Big Monstro
Sujet du message : Re: phpBB et Windows 3.11
Publié : 13 sept. 2016 18:17
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Si on analyse les pages du forum, on constate qu'elles commencent systématiquement de la manière suivante :
<!DOCTYPE html>
<html dir="ltr" lang="fr">
<head>
<meta charset="utf-8" />
Bien entendu, le lang="fr" devient lang="en-gb" si vous sélectionnez British English dans votre PCU ou que vous vous connectez au site avec un navigateur non francophone, mais qu'importe...

Je me demande si le souci ne viendrait pas de <meta charset="utf-8" />, dont l'utilisation semble ne s'être répandue que durant ces dix dernières années >>> http://en.wikipedia.org/wiki/UTF-8.

Pensez-vous que cela aurait une conséquence fâcheuse si je virais cette balise des templates ? Par quoi devrais-je éventuellement la remplacer ?


Haut
Profil Citer
Der Siebte Schatten
Sujet du message : Re: phpBB et Windows 3.11
Publié : 13 sept. 2016 18:24
Modérateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 2365
Inscription : 09 févr. 2010 21:10
PC Rétro : Toshiba Satellite 220CS (WFW3.11/95/NT4)
 
Ben euh les navigateurs ne sauront pas en quoi est encodé la page HTML. Autant je crois que les navigateurs récents sont capable de le deviner, autant les navigateurs anciens, surtout s'ils ne connaissent pas l'UTF-8, vont encore moins bien comprendre. Le pire étant ceux qui connaissent l'UTF-8 mais qui ne sauront pas le deviner et qu'ils vont utiliser le mauvais encodage...

En gros, pas de changement sur Internet Explorer 3.02 et inférieurs ni sur Internet Explorer 8 (encore que) et supérieurs, mais ceux entre les deux vont afficher les mauvais caractères comme IE 3.02 par défaut, jusqu'à ce que tu leur précises que c'est de l'UTF-8 manuellement... :roll:

_________________

[ img ]
[ img ]
Dunkle Träume, Roter Mond... In den Bäumen lauert ein Phantom...


Haut
Profil Citer
KeetKhat
Sujet du message : Re: phpBB et Windows 3.11
Publié : 13 sept. 2016 19:58
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 1842
Inscription : 27 mai 2009 14:04
PC Rétro : IBM ThinkPad 380ED, Windows 95
 
Der Siebte Schatten a écrit :
Ben euh les navigateurs ne sauront pas en quoi est encodé la page HTML. Autant je crois que les navigateurs récents sont capable de le deviner, autant les navigateurs anciens, surtout s'ils ne connaissent pas l'UTF-8, vont encore moins bien comprendre.
Ancien ou récent, si pas de balise, pas d'accents ni de caractères spéciaux


Haut
Profil Citer
Big Monstro
Sujet du message : Problème avec l'insertion des BBcode (JavaScript)
Publié : 25 sept. 2016 01:18
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Publié : 13 septembre 2016

Je laisse tomber cette piste...

J'ai supprimé brièvement la balise <meta charset="utf-8" />, puis je l'ai remplacé par <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> et ensuite par <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> : sous IE5 16-bit, le problème d'envoi de message demeure encore et toujours :evil: ! Le seul changement, c'est l'affichage du texte (effectivement fantaisiste s'il n'y a pas de référence à UTF-8). Modifier la balise <!DOCTYPE html> n'a pas l'air de résoudre quoi que ce soit non plus. J'ai donc tout rétabli comme c'était avant.

Plus le temps passe, plus j'ai l'impression que le problème est insoluble, qu'on n'arrivera jamais à le résoudre en éditant les templates ou qu'il faille carrément modifier le code interne de phpBB...

Ce qui est quand même sidérant, c'est que le navigateur Arachne 1.97 - pourtant compilé en 2013 !!! - éprouve lui aussi des difficultés à envoyer des messages sur un simple forum.


----
Publié : 25 septembre 2016

Comme vous le savez tous, je cherche à améliorer la compatibilité du site avec IE4 32-bit et IE5 16-bit. J'ai laissé de côté le second (le problème qui affecte les navigateurs 16-bit semble insoluble sans toucher au code de phpBB, voir ci-dessus) pour me concentrer sur le premier... après de très nombreuses retouches, le style subsilver2 legacy a le même rendu de IE4 jusqu'à Firefox 50, ce qui est une belle performance en soi. Mais il y a un MAIS. Des différences de comportement demeurent entre IE4 d'un côté, et IE5+ de l'autre ; différences que je cherche à faire disparaitre.

1) Si vous sélectionnez du texte dans l'éditeur de message et que vous cliquez sur un bouton de BBcode, la sélection s'intercalera entre les balises d'ouverture et de fermeture du BBcode choisi. Par ex:
[b]Sélection[/b]
Mais sur Internet Explorer 4 (et aussi sur IE5 16-bit, mais là n'est pas la question), cela donne ceci :
[b][/b]Sélection
Cela n'a l'air de rien comme ça, mais c'est une perte ergonomique non négligeable ! Dans le fichier editor.js, j'ai placé un code alternatif pour IE4 pour qu'il se comporte comme il le fait, mais ce serait préférable de rendre la fonction JavaScript bbfontstyle compatible avec ce navigateur (actuellement compatible avec IE5+).

Voici la fonction bbfontstyle(bbopen, bbclose) incriminée
/**
* Apply bbcodes
*/
function bbfontstyle(bbopen, bbclose) {
  
	theSelection = false;

	var textarea = document.forms[form_name].elements[text_name];

	textarea.focus();

	if ((clientVer >= 4) && is_ie && is_win) {
		// Get text selection
		theSelection = document.selection.createRange().text;

		if (theSelection) {
			// Add tags around selection
			document.selection.createRange().text = bbopen + theSelection + bbclose;
			textarea.focus();
			theSelection = '';
			return;
		}

	} else if (textarea.selectionEnd && (textarea.selectionEnd - textarea.selectionStart > 0)) {
		mozWrap(textarea, bbopen, bbclose);
		textarea.focus();
		theSelection = '';
		return;
	}

	//The new position for the cursor after adding the bbcode
	var caret_pos = getCaretPosition(textarea).start;
	var new_pos = caret_pos + bbopen.length;

	// Open tag
	insert_text(bbopen + bbclose);

	// Center the cursor when we don't have a selection
	// Gecko and proper browsers
	if (!isNaN(textarea.selectionStart)) {
		textarea.selectionStart = new_pos;
		textarea.selectionEnd = new_pos;
	}
	// IE
	else if (document.selection) {
		var range = textarea.createTextRange(); 
		range.move("character", new_pos); 
		range.select();
		storeCaret(textarea);
	}

	textarea.focus();
	return;
}
2) Le deuxième et dernier problème identifié concerne la fonction addquote, mais j'y viendrais ensuite si besoin, le problème est de même nature ^^


IE4 étant le navigateur par défaut de Windows 98, avoir un forum 100% fonctionnel avec IE4 serait génial.

Je remercie d'avance ceux qui se pencheront sur le(s) problème(s) !


Dernière modification par Big Monstro le 01 oct. 2016 19:34, modifié 1 fois.

Haut
Profil Citer
raymater
Sujet du message : Re: Problème avec l'insertion des BBcode (JavaScript)
Publié : 25 sept. 2016 13:17
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 449
Inscription : 12 juin 2008 17:57
PC Rétro : P3 800 MHz ; 384 Mo RAM ; Voodoo 2 ; GeForce 4
 
Ok, je vais procéder à un examen du code par interrogations successives pour tenter de résoudre ton problème :

:?: - Est ce que cette condition est remplie quand on exécute sous IE4 ?
if ((clientVer >= 4) && is_ie && is_win) {
      // Get text selection
      theSelection = document.selection.createRange().text;

      if (theSelection) {
         // Add tags around selection
         document.selection.createRange().text = bbopen + theSelection + bbclose;
         textarea.focus();
         theSelection = '';
         return;
      }

   }
Pour tester : rajouter la ligne dans le if ((clientVer >= 4) && is_ie && is_win) { :
alert("Passé sous IE4");
et regarde ensuite si le message de pop-up apparait lors du chargement de cette fonction. Si oui alors c'est qu'on est sûr que ta condition fonctionne, si non alors c'est que ça ne marche pas.[/i]



:?: - Essaye d'afficher dans un pop-up les valeurs des paramètres de ta fonction bbfontstyle() à savoir bbopen et bbclose. Pour cela sélectionne le même texte d'un même texte d'exemple en guise d'essai sur deux navigateurs différents : un récent et un sous IE4 et vois si tu as les mêmes valeurs bbopen et bbclose des deux côtés. Pour cela rajoute une ligne :
alert("Valeur de bbopen : " + bbopen + "  ;  Valeur de bbclose : " + bbclose);
Si tu vois que les deux valeurs sont identiques d'une part et d'autres alors tu peux écarter le problème de valeurs. Si non je pense que cela viens de là.



Enfin serait-il possible d'avoir le code des fonctions getCaretPosition(), storeCaret() et insert_text() afin que je puisse tester tout ça sur une page HTML ?

_________________

:arrow: Mon site Web
:arrow: Mon serveur Discord


Haut
Profil Citer
Big Monstro
Sujet du message : Re: Problème avec l'insertion des BBcode (JavaScript)
Publié : 25 sept. 2016 15:36
Administrateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 3213
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Merci raymater pour ta contribution.

J'ai inséré le code alert("Passe sous IE4") au début de la fonction, dans la partie if (theSelection) { ... },

ainsi que le code if ((clientVer >= 4) && is_ie && is_win) { alert("Valeur de bbopen : " + bbopen + " ; Valeur de bbclose : " + bbclose); } en fin de parcours.
Concrètement, les navigateurs Microsoft - en principe de IE3 à IE10 - sont susceptibles de faire apparaitre des messages lors de l'insertion de balises.

Résultats
Internet Explorer 4 => http://zupimages.net/up/16/38/9vni.jpg
Internet Explorer 5 => http://zupimages.net/up/16/38/679x.jpg
Internet Explorer 9 => http://zupimages.net/up/16/38/ril8.jpg

Constat
Même en sélectionnant préalablement du texte, IE4 se comporte de la même façon que IE5/IE9 lorsque j'insère une balise SANS avoir sélectionné quoi que ce soit. Mon intuition étant que IE4 ne comprend pas la condition if (theSelection), existe-t-il une alternative à theSelection ou est-ce que ma compréhension est erronée ?
raymater a écrit :
Enfin serait-il possible d'avoir le code des fonctions storeCaret() et insert_text() afin que je puisse tester tout ça sur une vraie page ?
Si tu es en train de publier une réponse en style subsilver2/legacy et que tu demandes à ton navigateur d'enregistrer la page, tu récupéreras le fichier editor.js (c'est ça le "désavantage" de JavaScript pour certaines personnes, c'est qu'on ne peut pas masquer le code source aux visiteurs curieux). Sinon, le voici dans son intégralité :
/**
* bbCode control by subBlue design [ www.subBlue.com ]
*/

// Startup variables
var imageTag = false;
var theSelection = false;
var bbcodeEnabled = true;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion, 10); // Get browser version

var is_ie = ((clientPC.indexOf('msie') !== -1) && (clientPC.indexOf('opera') === -1));
var is_win = ((clientPC.indexOf('win') !== -1) || (clientPC.indexOf('16bit') !== -1));
var baseHeight;

/**
* Shows the help messages in the helpline window
*/
function helpline(help) {
	document.forms[form_name].helpbox.value = help_line[help];
}

/**
* Fix a bug involving the TextRange object. From
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
*/ 
function initInsertions() {
	var doc;

	if (document.forms[form_name]) {
		doc = document;
	} else {
		doc = opener.document;
	}

	var textarea = doc.forms[form_name].elements[text_name];

	if (is_ie && typeof(baseHeight) !== 'number') {
		textarea.focus();
		baseHeight = doc.selection.createRange().duplicate().boundingHeight;

		if (!document.forms[form_name]) {
			document.body.focus();
		}
	}
}

/**
* bbstyle
*/
function bbstyle(bbnumber) {
	if (bbnumber !== -1) {
		bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
	} else {
		insert_text('[*]');
		document.forms[form_name].elements[text_name].focus();
	}
}

/**
* Apply bbcodes
*/
function bbfontstyle(bbopen, bbclose) {
	theSelection = false;

	var textarea = document.forms[form_name].elements[text_name];

	textarea.focus();

	if ((clientVer >= 4) && is_ie && is_win) {
		// Get text selection
		theSelection = document.selection.createRange().text;

		if (theSelection) {
			// Add tags around selection
			document.selection.createRange().text = bbopen + theSelection + bbclose;
			textarea.focus();
			theSelection = '';
		alert("Passe sous IE4");	return;
		}
	} else if (textarea.selectionEnd && (textarea.selectionEnd - textarea.selectionStart > 0)) {
		mozWrap(textarea, bbopen, bbclose);
		textarea.focus();
		theSelection = '';
		return;
	}

	//The new position for the cursor after adding the bbcode
	var caret_pos = getCaretPosition(textarea).start;
	var new_pos = caret_pos + bbopen.length;

	// Open tag
	insert_text(bbopen + bbclose);

	// Center the cursor when we don't have a selection
	// Gecko and proper browsers
	if (!isNaN(textarea.selectionStart)) {
		textarea.selectionStart = new_pos;
		textarea.selectionEnd = new_pos;
	}
	// IE
	else if (document.selection) {
		var range = textarea.createTextRange(); 
		range.move("character", new_pos); 
		range.select();
		storeCaret(textarea);
	}

	textarea.focus();
	if ((clientVer >= 4) && is_ie && is_win) {
		alert("Valeur de bbopen : " + bbopen + "  ;  Valeur de bbclose : " + bbclose);
}	return;
}

/**
* Insert text at position
*/
function insert_text(text, spaces, popup) {
	var textarea;

	if (!popup) {
		textarea = document.forms[form_name].elements[text_name];
	} else {
		textarea = opener.document.forms[form_name].elements[text_name];
	}

	if (spaces) {
		text = ' ' + text + ' ';
	}

	// Since IE9, IE also has textarea.selectionStart, but it still needs to be treated the old way.
	// Therefore we simply add a !is_ie here until IE fixes the text-selection completely.
	if (!isNaN(textarea.selectionStart) && !is_ie) {
		var sel_start = textarea.selectionStart;
		var sel_end = textarea.selectionEnd;

		mozWrap(textarea, text, '');
		textarea.selectionStart = sel_start + text.length;
		textarea.selectionEnd = sel_end + text.length;
	} else if (textarea.createTextRange && textarea.caretPos) {
		if (baseHeight !== textarea.caretPos.boundingHeight) {
			textarea.focus();
			storeCaret(textarea);
		}

		var caret_pos = textarea.caretPos;
		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) === ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
	} else {
		textarea.value = textarea.value + text;
	}

	if (!popup) {
		textarea.focus();
	}
}

/**
* Add inline attachment at position
*/
function attachInline(index, filename) {
	insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
	document.forms[form_name].elements[text_name].focus();
}

/**
* Add quote text to message
*/
function addquote(post_id, username, l_wrote) {
	var message_name = 'message_' + post_id;
	var theSelection = '';
	var divarea = false;
	var i;

	if (typeof l_wrote === 'undefined') {
		// Backwards compatibility
		l_wrote = 'wrote';
	}

	if (document.all) {
		divarea = document.all[message_name];
	} else {
		divarea = document.getElementById(message_name);
	}

	// Get text selection - not only the post content :(
	// IE9 must use the document.selection method but has the *.getSelection so we just force no IE
	if ((window.getSelection && !is_ie && !window.opera) || (window.opera && window.matchMedia)) {
		theSelection = window.getSelection().toString();
	} else if (document.getSelection && !is_ie) {
		theSelection = document.getSelection();
	} else if (document.selection) {
		theSelection = document.selection.createRange().text;
	}

	if (theSelection === '' || typeof theSelection === 'undefined' || theSelection === null) {
		if (divarea.innerHTML && document.getElementById) {
			theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
			theSelection = theSelection.replace(/<br\/>/ig, '\n');
			theSelection = theSelection.replace(/&lt\;/ig, '<');
			theSelection = theSelection.replace(/&gt\;/ig, '>');
			theSelection = theSelection.replace(/&amp\;/ig, '&');
			theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
		} else if (document.all) {
			theSelection = divarea.innerText;
		} else if (divarea.textContent) {
			theSelection = divarea.textContent;
		} else if (divarea.firstChild.nodeValue) {
			theSelection = divarea.firstChild.nodeValue;
		}
	}

	if (theSelection) {
		if (bbcodeEnabled) {
			insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
		} else {
			insert_text(username + ' ' + l_wrote + ':' + '\n');
			var lines = split_lines(theSelection);
			for (i = 0; i < lines.length; i++) {
				insert_text('> ' + lines[i] + '\n');
			}
		}
	}

	return;
}

function split_lines(text) {
	var lines = text.split('\n');
	var splitLines = new Array();
	var j = 0;
	var i;

	for(i = 0; i < lines.length; i++) {
		if (lines[i].length <= 80) {
			splitLines[j] = lines[i];
			j++;
		} else {
			var line = lines[i];
			var splitAt;
			do {
				splitAt = line.indexOf(' ', 80);

				if (splitAt === -1) {
					splitLines[j] = line;
					j++;
				} else {
					splitLines[j] = line.substring(0, splitAt);
					line = line.substring(splitAt);
					j++;
				}
			}
			while(splitAt !== -1);
		}
	}
	return splitLines;
}

/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close) {
	var selLength = (typeof(txtarea.textLength) === 'undefined') ? txtarea.value.length : txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var scrollTop = txtarea.scrollTop;

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd);
	var s3 = (txtarea.value).substring(selEnd, selLength);

	txtarea.value = s1 + open + s2 + close + s3;
	txtarea.selectionStart = selStart + open.length;
	txtarea.selectionEnd = selEnd + open.length;
	txtarea.focus();
	txtarea.scrollTop = scrollTop;

	return;
}

/**
* Insert at Caret position. Code from
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
*/
function storeCaret(textEl) {
	if (textEl.createTextRange && document.selection) {
		textEl.caretPos = document.selection.createRange().duplicate();
	}
}

/**
* Caret Position object
*/
function caretPosition() {
	var start = null;
	var end = null;
}

/**
* Get the caret position in an textarea
*/
function getCaretPosition(txtarea) {
	var caretPos = new caretPosition();

	// simple Gecko/Opera way
	if (txtarea.selectionStart || txtarea.selectionStart === 0) {
		caretPos.start = txtarea.selectionStart;
		caretPos.end = txtarea.selectionEnd;
	}
	// dirty and slow IE way
	else if (document.selection) {
		// get current selection
		var range = document.selection.createRange();

		// a new selection of the whole textarea
		var range_all = document.body.createTextRange();
		range_all.moveToElementText(txtarea);

		// calculate selection start point by moving beginning of range_all to beginning of range
		var sel_start;
		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {
			range_all.moveStart('character', 1);
		}

		txtarea.sel_start = sel_start;

		// we ignore the end value for IE, this is already dirty enough and we don't need it
		caretPos.start = txtarea.sel_start;
		caretPos.end = txtarea.sel_start;
	}

	return caretPos;
}


Par rapport à celui fourni par l'équipe de phpBB, j'ai viré les dépendances à jQuery (ce qui l'a rendu pleinement compatible avec IE 5.x 32-bit) et corrigé un bug spécifique à Opera 12.1x. Les modifications que tu m'as suggéré à titre de diagnostic sont toujours incluses dans le code. Notes qu'il y a aussi du code JavaScript au sein de la page HTML de l'éditeur de message.


Dernière modification par Big Monstro le 01 oct. 2016 19:36, modifié 1 fois.

Haut
Profil Citer
Afficher : Trier par : Ordre :
Répondre   Page 2 sur 8  [ 120 messages ]
Revenir à « Projets aboutis » | Aller sur la page « 1 2 3 4 58 »
Aller :