05. juli 2005 - 13:40Der er
4 kommentarer og 1 løsning
FCKeditor menubar
Hejsa
Jeg er ved at udvikle et system hvori FCKeditor skal integreres. Der er bare lige den lille ting, at værktøjslinien i fckeditoren ikke skal være i forbindelse med selve indtastningsområdet, men i toppen af vinduet (fixed position). Et alernativ kunne være at den var floating, så brugeren selv kan flytte den rundt.
Jeg har ikke kunnet finde noget om emnet, så umiddelbart tror jeg ikke at det lader sig gøre, uden heftige modifikationer i FCKeditor'en.
Det kan dog, er jeg sikker på, lade sig gøre at udstede kommandoer til FCKeditor'en via JavaScript, så man kan lave sin egen menubar. Her er problemet så bare at læse "status" på en knap (om den aktuelle markering er fed el. lign. for at "trykke den pågældende knap ned").
Findes der et sted derude et eksempel på hvordan det kan lade sig gøre at flytte den eksisterende menu, eller konstruere en ny?
//Funktion der læser status på knapperne i FCKeditor (disabled, on, off) function updateToolbar() { var toolbar = document.getElementById('mlToolbar');
var items = toolbar.getElementsByTagName('a'); var i; for (i=0; i < items.length; i++) { var item = items[i]; if (item.name) updateButton (item); }
setTimeout('updateToolbar()', 300); }
//Funktion der opdaterer en enkelt knap's status function updateButton( button ) { var command = button.name; var state = getState(command);
switch (state) { case -1: if (button.className != 'disabled') button.className = 'disabled'; break; case 0: if (button.className != '') button.className = ''; break; case 1: if (button.className != 'down') button.className = 'down'; break; } }
//Funktion, der kontakter FCKeditor instansen, og returnerer status for en knap function getState( commandName ) { var oEditor = FCKeditorAPI.GetInstance('PageContent') ; return oEditor.Commands.GetCommand( commandName ).GetState(); }
//Funktion til at eksekvere en kommando i FCKeditor function press( button ) { var commandName = button.name; var oEditor = FCKeditorAPI.GetInstance('PageContent') ; oEditor.Commands.GetCommand( commandName ).Execute() ; }
//FCKeditor eksekverer denne, når den er færdig med at loade function FCKeditor_OnComplete( editorInstance ) { // Vis masterlab toolbar'en document.getElementById('mlToolbar').style.visibility = ''; updateToolbar(); }
Nu er problemet bare at kunne vælge farver, og vælge i comboboxes... Der er en kommando til at vælge farve, der hedder TextColor, men den virker bare ikke. Der sker intet når man sender den. Derfor forsøger jeg med at finde en dialog frem, hvori man kan vælge en farve. Det skal foregå ved at der et sted, derinde i det praktisk talt udokumenterede mørke, findes noget der hedder FCKDialog, som har en OpenDialog kommando. Den kan jeg selvfølgelig bare ikke liiige finde frem til. Er der nogen der ved hvor denne kunne være til at finde? Eller eventuelt ved hvordan man får den lille smarte "dropdown" farve-selektor frem i editoren?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.