8722 sujets

Développement web côté serveur, CMS

Voilà j'ai récuperé un petit editeur de textes wysiwyg. Je ne suis pas assez calé ni en php ni en javascript pour comprndre son fonctionnement. Je cherche en fait à transformer tout ce qu'il y a dans le formulaire ( texte+html) pour le mettre dans une variable qui se nomme $texte.
Si quelqu'un de courageux et de sympa pouvait me donner un coup de main, ce sera vraiment très gentil, car je me casse la tête depuis ce matin Smiley sweatdrop
Voici d'abord le code javascript:
var isRichText = false;
var rng;
var currentRTE;
var allRTEs = "";

var isIE;
var isGecko;
var isSafari;
var isKonqueror;

var wizimagesPath;
var includesPath;
var cssFile;

var language;


function initRTE(imgPath, incPath, css, lang) {
	//set browser vars
	var ua = navigator.userAgent.toLowerCase();
	isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
	isGecko = (ua.indexOf("gecko") != -1);
	isSafari = (ua.indexOf("safari") != -1);
	isKonqueror = (ua.indexOf("konqueror") != -1);

	//check to see if designMode mode is available
	if (document.getElementById && document.designMode && !isSafari && !isKonqueror) {
		isRichText = true;
	}

	if(!isIE) document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN | Event.MOUSEUP);
	document.onmouseover = raiseButton;
	document.onmouseout  = normalButton;
	document.onmousedown = lowerButton;
	document.onmouseup   = raiseButton;

	//set paths vars
	wizimagesPath = imgPath;
	includesPath = incPath;
	cssFile = css;
        language = lang;

	//for testing standard textarea, uncomment the following line
	//isRichText = false;
}

function writeRichText(rte, html, width, height, buttons, readOnly) {
	if (isRichText) {
		if (allRTEs.length > 0) allRTEs += ";";
		allRTEs += rte;
		writeRTE(rte, html, width, height, buttons, readOnly, language);
	} else {
		writeDefault(rte, html, width, height, buttons, readOnly);
	}
}

function writeDefault(rte, html, width, height, buttons, readOnly) {
	if (!readOnly) {
		document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;">' + html + '</textarea>');
	} else {
		document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;" readonly>' + html + '</textarea>');
	}
}

function raiseButton(e) {
	if (isIE) {
		var el = window.event.srcElement;
	} else {
		var el= e.target;
	}

	className = el.className;
	if (className == 'btnImage' || className == 'btnImageLowered') {
		el.className = 'btnImageRaised';
	}
}

function normalButton(e) {
	if (isIE) {
		var el = window.event.srcElement;
	} else {
		var el= e.target;
	}

	className = el.className;
	if (className == 'btnImageRaised' || className == 'btnImageLowered') {
		el.className = 'btnImage';
	}
}

function lowerButton(e) {
	if (isIE) {
		var el = window.event.srcElement;
	} else {
		var el= e.target;
	}

	className = el.className;
	if (className == 'btnImage' || className == 'btnImageRaised') {
		el.className = 'btnImageLowered';
	}
}

function writeRTE(rte, html, width, height, buttons, readOnly,language) {
	if (isIE) {
		var tablewidth = width;
	} else {
		var tablewidth = width + 4;
	}

        switch(language) {
            case 'FR' :
               var styleWord     = 'Style';
               var fontWord      = 'Fontes';
               var sizeWord      = 'Taille';
               var boldWord      = 'Gras';
               var italicWord    = 'Italique';
               var underlineWord = 'Souligné';
               var alignLWord    = 'Alignement à gauche';
               var alignCWord    = 'Alignement au centre';
               var alignRWord    = 'Alignement à droite';
               var alignFWord    = 'Alignement justifié';
               var rulerWord     = 'Ajouter une barre horizontale';
               var orderWord     = 'Numerotation'
               var unorderWord   = 'Puces'
               var outdentWord   = 'Diminuer le retrait'
               var indentWord    = 'Augmenter le retrait'
               var textColorWord = 'Couleur du texte'
               var backColorWord = 'Couleur de fond du texte'
               var linkWord      = 'Ajouter un hyperlien'
               var imageWord     = 'Ajouter une image'
               break;
            case 'EN' :
            default   :
               var styleWord     = 'Style';
               var fontWord      = 'Font';
               var sizeWord      = 'Size';
               var boldWord      = 'Bold';
               var italicWord    = 'Italic';
               var underlineWord = 'Interligne';
               var alignLWord    = 'Aligner gauche';
               var alignCWord    = 'Centrer';
               var alignRWord    = 'Aligner droite';
               var alignFWord    = 'Justifier';
               var rulerWord     = 'Horizontal Rule';
               var orderWord     = 'Liste à puce'
               var unorderWord   = 'Liste à puce'
               var outdentWord   = 'Retrait'
               var indentWord    = 'Retrait'
               var textColorWord = 'Couleur de texte'
               var backColorWord = 'Couleur de fond'
               var linkWord      = 'Lien'
               var imageWord     = 'Image'
               break;
            }


	if (readOnly) buttons = false;
	if (buttons == true) {
		document.writeln('<style type="text/css">');
		document.writeln('.btnImage { background-color:silver; border: 2px solid silver; cursor: pointer; cursor: hand;}');
		document.writeln('.btnImageRaised { background-color:silver; border: 2px outset; cursor: pointer; cursor: hand;}');
		document.writeln('.btnImageLowered { background-color:silver; border: 2px inset; cursor: pointer; cursor: hand;}');
		document.writeln('.vertSep { background-color:silver; border:1px inset;font-size:0px; width:1px; height:20px; }');
		document.writeln('.btnBack { background-color:silver; border:1px outset; letter-spacing:0; padding-top:2px; padding-bottom:2px }');
		document.writeln('img { border-style:none; }');
		document.writeln('</style>');
		document.writeln('<table class="btnBack" cellpadding=2 cellspacing=0 id="Buttons1_' + rte + '" width="' + tablewidth + '">');
		document.writeln('	<tr>');
		document.writeln('		<td>');
		document.writeln('			<select id="formatblock_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
		document.writeln('				<option value="">[' + styleWord + ']</option>');
		document.writeln('				<option value="<p>">Paragraphe</option>');
		document.writeln('				<option value="<h1>">Taille 1 <h1></option>');
		document.writeln('				<option value="<h2>">Taille 2 <h2></option>');
		document.writeln('				<option value="<h3>">Taille 3 <h3></option>');
		document.writeln('				<option value="<h4>">Taille 4 <h4></option>');
		document.writeln('				<option value="<h5>">Taille 5 <h5></option>');
		document.writeln('				<option value="<h6>">Taille 6 <h6></option>');
		document.writeln('				<option value="<address>">Addresse <ADDR></option>');
		document.writeln('				<option value="<pre>">Formater <pre></option>');
		document.writeln('			</select>');
		document.writeln('		</td>');
		document.writeln('		<td>');
		document.writeln('			<select id="fontname_' + rte + '" onchange="Select(\'' + rte + '\', this.id)">');
		document.writeln('				<option value="Font" selected>[' + fontWord + ']</option>');
		document.writeln('				<option value="Arial, Helvetica, sans-serif">Arial</option>');
		document.writeln('				<option value="Courier New, Courier, mono">Courier New</option>');
		document.writeln('				<option value="Times New Roman, Times, serif">Times New Roman</option>');
		document.writeln('				<option value="Verdana, Arial, Helvetica, sans-serif">Verdana</option>');
		document.writeln('			</select>');
		document.writeln('		</td>');
		document.writeln('		<td>');
		document.writeln('			<select unselectable="on" id="fontsize_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
		document.writeln('				<option value="Size">[ ' + sizeWord + ']</option>');
		document.writeln('				<option value="1">1</option>');
		document.writeln('				<option value="2">2</option>');
		document.writeln('				<option value="3">3</option>');
		document.writeln('				<option value="4">4</option>');
		document.writeln('				<option value="5">5</option>');
		document.writeln('				<option value="6">6</option>');
		document.writeln('				<option value="7">7</option>');
		document.writeln('			</select>');
		document.writeln('		</td>');
		document.writeln('		<td width="100%">');
		document.writeln('		</td>');
		document.writeln('	</tr>');
		document.writeln('</table>');
		document.writeln('<table class="btnBack" cellpadding="0" cellspacing="0" id="Buttons2_' + rte + '" width="' + tablewidth + '">');
		document.writeln('	<tr>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'bold.gif" width="25" height="24" alt="' + boldWord + '" title="' +boldWord + '" onClick="FormatText(\'' + rte + '\', \'bold\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'italic.gif" width="25" height="24" alt="' + italicWord + '" title="' + italicWord + '" onClick="FormatText(\'' + rte + '\', \'italic\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'underline.gif" width="25" height="24" alt="' + underlineWord + '" title="' + underlineWord + '" onClick="FormatText(\'' + rte + '\', \'underline\', \'\')"></td>');
		document.writeln('		<td><span class="vertSep"></span></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'left_just.gif" width="25" height="24" alt="' + alignLWord + '" title="' + alignLWord + '" onClick="FormatText(\'' + rte + '\', \'justifyleft\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'centre.gif" width="25" height="24" alt="' + alignCWord + '" title="' + alignCWord + '" onClick="FormatText(\'' + rte + '\', \'justifycenter\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'right_just.gif" width="25" height="24" alt="' + alignRWord + '" title="' + alignRWord + '" onClick="FormatText(\'' + rte + '\', \'justifyright\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'justifyfull.gif" width="25" height="24" alt="' + alignFWord + '" title="' + alignFWord + '" onclick="FormatText(\'' + rte + '\', \'justifyfull\', \'\')"></td>');
		document.writeln('		<td><span class="vertSep"></span></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'hr.gif" width="25" height="24" alt="' + rulerWord + '" title="' + rulerWord + '" onClick="FormatText(\'' + rte + '\', \'inserthorizontalrule\', \'\')"></td>');
		document.writeln('		<td><span class="vertSep"></span></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'numbered_list.gif" width="25" height="24" alt="' + orderWord + '" title="' + orderWord + '" onClick="FormatText(\'' + rte + '\', \'insertorderedlist\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'list.gif" width="25" height="24" alt="' + unorderWord + '" title="' + unorderWord + '" onClick="FormatText(\'' + rte + '\', \'insertunorderedlist\', \'\')"></td>');
		document.writeln('		<td><span class="vertSep"></span></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'outdent.gif" width="25" height="24" alt="' + outdentWord + '" title="' + outdentWord + '" onClick="FormatText(\'' + rte + '\', \'outdent\', \'\')"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'indent.gif" width="25" height="24" alt="' + indentWord + '" title="' + indentWord + '" onClick="FormatText(\'' + rte + '\', \'indent\', \'\')"></td>');
		document.writeln('		<td><div id="forecolor_' + rte + '"><img class="btnImage" src="' + wizimagesPath + 'textcolor.gif" width="25" height="24" alt="' + textColorWord + '" title="' + textColorWord + '" onClick="popup(\'conceptRTEpalette.html?language=' + language + '&rte=' + rte + '&command=forecolor\', \'palette\',170,250)"></div></td>');
		document.writeln('		<td><div id="hilitecolor_' + rte + '"><img class="btnImage" src="' + wizimagesPath + 'bgcolor.gif" width="25" height="24" alt="' + backColorWord + '" title="' + backColorWord + '" onClick="popup(\'conceptRTEpalette.html?language=' + language + '&rte=' + rte + '&command=hilitecolor\', \'palette\',170,250)"></div></td>');
		document.writeln('		<td><span class="vertSep"></span></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'hyperlink.gif" width="25" height="24" alt="' + linkWord + '" title="' + linkWord + '" onClick="popup(\'conceptRTEurl.html?language=' + language + '&rte=' + rte + '\', \'selectUrl\',400,500)"></td>');
		document.writeln('		<td><img class="btnImage" src="' + wizimagesPath + 'image.gif" width="25" height="24" alt="' + imageWord + '" title="' + imageWord + '" onClick="popup(\'conceptRTEimage.html?language=' + language + '&rte=' + rte + '\', \'selectImage\',400,500)"></td>');
		document.writeln('	    <td><img class="btnImage" src="' + wizimagesPath + 'smiley.gif" width="25" height="24" alt="Smileys" title="Smileys" onClick="popup(\'conceptRTEsmiley.html?language=' + language + '&rte=' + rte + '\', \'selectSmiley\',169,249)"></td>');
		document.writeln('		<td width="100%"></td>');
		document.writeln('	</tr>');
		document.writeln('</table>');
	}
	document.writeln('<iframe id="' + rte + '" name="' + rte + '" width="' + width + 'px" height="' + height + 'px"></iframe>');
	document.writeln('<input type="hidden" id="hdn' + rte + '" name="' + rte + '" value="">');
	document.getElementById('hdn' + rte).value = html;
	enableDesignMode(rte, html, readOnly);
}

function enableDesignMode(rte, html, readOnly) {
	var frameHtml = "<html id=\"" + rte + "\">\n";
	frameHtml += "<head>\n";
	//to reference your stylesheet, set href property below to your stylesheet path and uncomment
	if (cssFile.length > 0) {
		frameHtml += "<link media=\"all\" type=\"text/css\" href=\"" + cssFile + "\" rel=\"stylesheet\">\n";
	}
	frameHtml += "<style>\n";
	frameHtml += "body {\n";
	frameHtml += "	background: #FFFFFF;\n";
	frameHtml += "	margin: 0px;\n";
	frameHtml += "	padding: 0px;\n";
	frameHtml += "}\n";
	frameHtml += "</style>\n";
	frameHtml += "</head>\n";
	frameHtml += "<body class=rte>\n";
	frameHtml += html + "\n";
	frameHtml += "</body>\n";
	frameHtml += "</html>";

	if (document.all) {
		var oRTE = frames[rte].document;
		oRTE.open();
		oRTE.write(frameHtml);
		oRTE.close();
		if (!readOnly) oRTE.designMode = "On";
	} else {
		try {
			if (!readOnly) document.getElementById(rte).contentDocument.designMode = "on";
			try {
				var oRTE = document.getElementById(rte).contentWindow.document;
				oRTE.open();
				oRTE.write(frameHtml);
				oRTE.close();
				if (isGecko && !readOnly) {
					//attach a keyboard handler for gecko browsers to make keyboard shortcuts work
					oRTE.addEventListener("keypress", kb_handler, true);
				}
			} catch (e) {
				alert("Error preloading content.");
			}
		} catch (e) {
			//gecko may take some time to enable design mode.
			//Keep looping until able to set.
			if (isGecko) {
				setTimeout("enableDesignMode('" + rte + "', '" + html + "', " + readOnly + ");", 10);
			} else {
				return false;
			}
		}
	}
}

function updateRTEs() {
	var vRTEs = allRTEs.split(";");
	for (var i = 0; i < vRTEs.length; i++) {
		updateRTE(vRTEs[i]);
	}
}

function updateRTE(rte) {
	if (!isRichText) return;

	//set message value
	var oHdnMessage = document.getElementById('hdn' + rte);
	var oRTE = document.getElementById(rte);
	var readOnly = false;

	//check for readOnly mode
	if (document.all) {
		if (frames[rte].document.designMode != "On") readOnly = true;
	} else {
		if (document.getElementById(rte).contentDocument.designMode != "on") readOnly = true;
	}

	if (isRichText && !readOnly) {

		if (oHdnMessage.value == null) oHdnMessage.value = "";
		if (document.all) {
			oHdnMessage.value = frames[rte].document.body.innerHTML;
		} else {
			oHdnMessage.value = oRTE.contentWindow.document.body.innerHTML;
		}

		//if there is no content (other than formatting) set value to nothing
		if (stripHTML(oHdnMessage.value.replace("&nbsp;", " ")) == ""
			&& oHdnMessage.value.toLowerCase().search("<hr") == -1
			&& oHdnMessage.value.toLowerCase().search("<img") == -1) oHdnMessage.value = "";
		//fix for gecko
		if (escape(oHdnMessage.value) == "%3Cbr%3E%0D%0A%0D%0A%0D%0A") oHdnMessage.value = "";
	}
}

//Function to format text in the text box
function FormatText(rte, command, option) {
	var oRTE;
	if (document.all) {
		oRTE = frames[rte];

		//get current selected range
		var selection = oRTE.document.selection;
		if (selection != null) {
			rng = selection.createRange();
		}
	} else {
		oRTE = document.getElementById(rte).contentWindow;

		//get currently selected range
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}

	try {
		oRTE.focus();
	  	oRTE.document.execCommand(command, false, option);
		oRTE.focus();
	} catch (e) {
		alert(e);
	}
}

function getOffsetTop(elm) {
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;

	while(mOffsetParent){
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
	}

	return mOffsetTop;
}

function getOffsetLeft(elm) {
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;

	while(mOffsetParent) {
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
	}

	return mOffsetLeft;
}

function Select(rte, selectname) {
	var oRTE;
	if (document.all) {
		oRTE = frames[rte];

		//get current selected range
		var selection = oRTE.document.selection;
		if (selection != null) {
			rng = selection.createRange();
		}
	} else {
		oRTE = document.getElementById(rte).contentWindow;

		//get currently selected range
		var selection = oRTE.getSelection();
		rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
	}

	var idx = document.getElementById(selectname).selectedIndex;
	// First one is always a label
	if (idx != 0) {
		var selected = document.getElementById(selectname).options[idx].value;
		var cmd = selectname.replace('_' + rte, '');
		oRTE.focus();
		oRTE.document.execCommand(cmd, false, selected);
		oRTE.focus();
		document.getElementById(selectname).selectedIndex = 0;
	}
}

function kb_handler(evt) {
	var rte = evt.target.id;

	//contributed by Anti Veeranna (thanks Anti!)
	if (evt.ctrlKey) {
		var key = String.fromCharCode(evt.charCode).toLowerCase();
		var cmd = '';
		switch (key) {
			case 'b': cmd = "bold"; break;
			case 'i': cmd = "italic"; break;
			case 'u': cmd = "underline"; break;
		};

		if (cmd) {
			FormatText(rte, cmd, true);
			//evt.target.ownerDocument.execCommand(cmd, false, true);
			// stop the event bubble
			evt.preventDefault();
			evt.stopPropagation();
		}
 	}
}

function stripHTML(oldString) {
	var newString = oldString.replace(/(<([^>]+)>)/ig,"");

	//replace carriage returns and line feeds
   newString = newString.replace(/\r\n/g," ");
   newString = newString.replace(/\n/g," ");
   newString = newString.replace(/\r/g," ");

	//trim string
	newString = trim(newString);

	return newString;
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") return inputString;
   var retValue = inputString;
   var ch = retValue.substring(0, 1);

   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);

   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }

	// Note that there are two spaces in the string - look for multiple spaces within the string
   while (retValue.indexOf("  ") != -1) {
		// Again, there are two spaces in each of the strings
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   }
   return retValue; // Return the trimmed string back to the user
}

function popup(page,popupname,height,width) {
var topPosition = (screen.height - height) / 2;
var leftPosition = (screen.width - width) / 2;
var windowprops = "width=" + width + ",height=" + height + ",top=" + topPosition + ",left=" + leftPosition + ",location=no,menubar=no,toolbar=no,scrollbars=no,resizable=no,status=no";
newWindow = window.open(page,popupname,windowprops);
}


puis le php

<?

$PHP_SELF=$_SERVER["PHP_SELF"];
if (isset($_POST["language"])){$language = $_POST["language"];}else{$language = 'EN';}
if (isset($_POST["action"])){$action = $_POST["action"];}else{$action = '';}
if (isset($_POST["conceptRTEvalue"])){$conceptRTEvalue = $_POST["conceptRTEvalue"];}else{$conceptRTEvalue = '';}

echo "<html>";
echo "<head>";
echo "<title>ConceptRTE Demo - Rich Text Editor</title>";
echo "<script language='JavaScript' type='text/javascript' src='conceptRTE.js'></script>";
echo "<link rel='STYLESHEET' type='text/css' href='style.css'>";
echo "</head>";
echo "<body>";





//============================================================================//
// ConceptRTE creation                                                        //
//============================================================================//

echo "<div class=row>";
echo "<span class=rteColumn>";
echo "<script language='JavaScript' type='text/javascript'>";

$content = RTESafe($conceptRTEvalue);

//============================================================================//
// Usage: initRTE(wizimagesPath, includesPath, cssFile, language)                //
//============================================================================//
echo "initRTE('wizimages/', '', 'style.css', '$language');";

//============================================================================//
// Usage: writeRichText(fieldname, html, width, height, buttons)              //
//============================================================================//
echo "writeRichText('rte', '$content', 520, 200, true, false);";
echo "</script>";
echo "</span>";

//============================================================================//
// Download the source                                                        //
//============================================================================//



echo "<div class=row>&nbsp;</div>";
echo "<div class=row>";
switch ($language) {
   case 'EN' :
      echo "<span class=label>Cliquez sur Go pour voir le document cree:</span>";
      echo "<span class=field><input class=button type=submit value='Valider' onClick=\"updateRTE('rte');demo.action.value='show';demo.conceptRTEvalue.value = demo.rte.value;this.form.submit();\"></span>";
      break;
   case 'FR' :
      echo "<span class=label>Cliquez sur Go pour voir le document cree:</span>";
      echo "<span class=field><input class=button type=submit value='Go' onClick=\"updateRTE('rte');demo.action.value='show';demo.conceptRTEvalue.value = demo.rte.value;this.form.submit();\"></span>";
      break;
   }
echo "</div>";

echo "<input type=hidden name='action'>";
echo "<input type=hidden name='language' value='$language'>";
echo "<input type=hidden name='conceptRTEvalue'>";
echo "</form>";
echo "</body>";
echo "</html>";

//============================================================================//
// write resulting document in a separate html page and display in a pop-up   //
//============================================================================//

if ($action == 'show') {
   $currentDate = date("Ymd");
   $currentTime = date("His");
   $fileName = $currentDate . $currentTime . ".html";
   $conceptRTEvalue = str_replace(chr(92).chr(34),chr(34),$conceptRTEvalue);
   $fp = fopen($fileName,"w");
   fputs($fp,"<html>");
   fputs($fp,"<head>");
   fputs($fp,"<title>ConceptRTE Demo - Rich Text Editor</title>");
   fputs($fp,"<link rel='STYLESHEET' type='text/css' href='style.css'>");
   fputs($fp,"</head>");
   fputs($fp,"<body>");
   fputs($fp,$conceptRTEvalue);
   fputs($fp,"</body>");
   fputs($fp,"</html>");
   fclose($fp);
   echo "<script>";
   echo "parameter = 'toolbar=no,menubar=no,location=no,resizable=no,status=no,scrollbars=yes,height=400,width=800,left=150,top=150';";
   echo "OpenWin = this.open('$fileName', 'conceptRTEpopUp', parameter);";
   echo "</script>";
   }

//============================================================================//
// providing safe data for ConceptRTE                                         //
//============================================================================//

function RTESafe($strText) {
	$tmpString = trim($strText);
   if ($tmpString == "") {
      $tmpString = "<P class=MsoNormal style=\"MARGIN: 0cm 0cm 0pt\"></P>";
      }

	//convert all types of single quotes
	$tmpString = str_replace(chr(145), chr(39), $tmpString);
	$tmpString = str_replace(chr(146), chr(39), $tmpString);
	$tmpString = str_replace("'", "&#39;", $tmpString);

	//convert all types of double quotes
	$tmpString = str_replace(chr(147), chr(34), $tmpString);
	$tmpString = str_replace(chr(148), chr(34), $tmpString);

	//replace carriage returns & line feeds
	$tmpString = str_replace(chr(10), " ", $tmpString);
	$tmpString = str_replace(chr(13), " ", $tmpString);

	return $tmpString;
}
?>
[/i]
Bonjour,

Inutile de donner le code de RTE, qui ne fait que manipuler le contenu du textarea qui, comme tout textarea, est défini par son attribut "name".

C'est ce que récupère RTE pour effectuer son traitement, c'est également le nom de variable que tu utiliseras pour envoyer, par POST je suppose, ce contenu au serveur qui le traitera en php.

J'ai l'impression que le "name" de ce textarea est ici "rte" (document.getElementById(rte)).
Merci pour ta réponse, donc dans ce cas présent ma variable se nommerai $rte?
Si c'est le cas je peux donc facilement transformer cette variable en $texte...juste ainsi?
$rte = $texte ;
Mais à quel endroit du script?
Et à quoi servent donc tous les $tmpstring en bas du script php?

Je suis désolé d'être aussi lourd.. Smiley confused
Modifié par Byld (17 Dec 2005 - 10:08)
Bonjour,

Tu vas faire un formulaire qui utilisera RTE, dans lequel le textarea se nomme soit "rte" soit plus probablement "rte1", d'après la source du site rte.

Fais l'essai pour ta variable texte, mais pas dans le sens que tu as donné !!!

En effet ta variable texte doit récupérer le contenu du formulaire, et non l'inverse !!!

Donc :
$texte = $rte;


A moins que "$tmpstring" soit la valeur à récupérer, je ne connais pas trop ce script, mais tente :



$texte = $tmpstring;


et tu seras fixé !
Le contenu est celui de la variable : $conceptRTEvalue

Il faut juste que tu mettes cette ligne en fin de script.

$texte ="$conceptRTEvalue"; Smiley smile