Fr:Trucs et astuces:FCKeditor
Fr:Trucs et astuces:FCKeditor
Créer un formulaire FCKeditor :
$editor_dir="FCKeditor/";
include_once($editor_dir."fckeditor.php") ;
$sBasePath = $_SERVER['PHP_SELF'] ;
$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "login.php" ) ) ;
$oFCKeditor = new FCKeditor('report_text') ;
$oFCKeditor->BasePath = $sBasePath.$editor_dir;
$oFCKeditor->Value = stripslashes($report_text);
$report_text_editor= $oFCKeditor->CreateHtml();
$text.="
<FORM id=main_form action='javascript:void(null)' onsubmit='submit_form(this,Array(\"report_text\"))'>
$report_text_editor
<input type=submit value=' Save >> ' class=submit_button>
</FORM>
";
$objResponse->addScript("__FCKeditorNS = null;");
$objResponse->addScript("FCKeditorAPI = null;");
S'il n'y a pas d'éditeur dans la page : <FORM id=main_form action='javascript:void(null)' onsubmit='submit_form(this)'>.
S'il y a plusieurs éditeurs : <FORM id=main_form action='javascript:void(null)' onsubmit='submit_form(this,Array(\"report_text\",\"other_field_name\"))'>
Les fonctions javascript utilisées lors de la soumission des formulaires.
"rt_editors" correspond au tableau contenant les noms des éditeurs de la page (il peut y avoir de 0 à n editeurs sur la même page)
<script type="text/javascript"><!--
function submit_form(frm,rt_editors)
{
if (arguments.length > 1) {
for (var i = 0; i < rt_editors.length; i++)
{
var val = get_ed_text(rt_editors[i]);
frm.elements[rt_editors[i]].value = val;
}
}
xajax_process_form(xajax.getFormValues(frm));
return false;
}
// --></script>
"xajax_process_form" correspond à votre function xajax pour parser le formulaire.
La fonction javascript pour récupérer le contenu 'innerHTML' indiqué par le nom du champ
<script type="text/javascript"><!--
function get_ed_text(editor_name)
{
var oEditor = FCKeditorAPI.GetInstance(editor_name) ;
if (oEditor.EditorDocument.body.innerHTML) {
// decommenter la ligne suivante pour un retour XHTML propre
// return oEditor.GetXHTML();
return oEditor.EditorDocument.body.innerHTML;
}
else return '';
}
// --></script>