Avatar billede learner Praktikant
17. april 2012 - 23:46 Der er 14 kommentarer og
1 løsning

ckeditor tænd sluk plugin

Hejsa

jeg bruger ckeditor og det virker rigtig godt. Jeg har lavet nogen plugins der kan lidt forskelligt jeg havde brug for, men jeg har bug for at tænde og slukke dem efter behov.

Det er eksempelvis dette filter som jeg gerne vil have en tænd/sluk mulighed. Altså jeg forestiller mig en tænd/sluk knap som bestemmer om filteret bruges eller ej.

CKEDITOR.on( 'instanceReady', function(ev){
   
    // ryd op i html der paste's i editoren
    // kunne være rart med en tænd/sluk knap på denne
    ev.editor.on( 'paste', function(evt) {
        var returnText = "" + evt.data['html'];
       
        // do your thing here
        if (tændt){do the filtering...}
        // END do your thing here

        //-- return
        evt.data['html'] = returnText;
    });
});
Avatar billede olebole Juniormester
18. april 2012 - 00:10 #1
<ole>

Du kan vel lave en knap, som sætter en variabel til true eller false. Den kan du så spørge på i funktionen. Eller har jeg misforstået spørgsmålet?

/mvh
</bole>
Avatar billede learner Praktikant
18. april 2012 - 00:19 #2
Hej ole :-)

Du har forstået det korrekt , men jeg har ik lykkes med det og har prøvet.
Avatar billede olebole Juniormester
18. april 2012 - 00:38 #3
Nu er den slags jo ofte modulopbygget, hvor variabler ligger bag closures:

(function(){
  // en hel masse kode her
})();

- men så skal du tænke på, at variabler her ikke er globale. Definerer du en variabel bag en closure, og vil kunne kalde den udenfor, må du 'klistre' den fast på window objektet, så den bliver gjort global. Ellers vil den være undefined udenfor din closure.

Her returnerer alert'en 'undefined':

(function(){
  var foo = "HeyHep";
})();

alert(foo);

Men her returneres 'HeyHep':

(function(){
  window.foo = "HeyHep";
})();

alert(foo);

Kan det mon være årsagen til, det ikke virker for dig?
Avatar billede Slettet bruger
18. april 2012 - 08:33 #4
eller, hvis din tænd/sluk mekanisme er en checkbox: Tjek om den er checked (nu).

En global variabel er måske ikke det bedste valg..
- da CKeditor KAN optræde i flere "inkarnationer" på samme side (window).
Avatar billede learner Praktikant
18. april 2012 - 10:40 #5
hmm
det t4nk32 skriver lyder som en god løsning
men bedst hvis det er i editorens værktøjsliste
er der en som kan hjhælpe mig med at lave det?
Avatar billede olebole Juniormester
18. april 2012 - 13:02 #6
Ingen har foreslået at bruge en global variabel. Det er til gengæld vigtigt at finde ud af, hvilken fejl der er skyld i, at de tidligere forsøg ikke har virket. Ellers lærer man ikke af fejlen - og så er det 'en spildt fejl'. Fejl er værdifulde gaver, som er noget af det vigtigste i ens faglige udvikling  *o)

Instansen af den enkelte editor, må jo have et navn. Så er det jo bare at sætte vaiablen som en property på editoren. Det vigtige er bare, at den er globalt tilgængelig:

MyEditor.doDaDing = true;
Avatar billede learner Praktikant
19. april 2012 - 12:02 #7
Hej

Jamen jeg har lykkedes at lave en ekstra knap i editoren, ved at lave nedenstående plugin.

MEn jeg har brug for hjælp med at lave en plugin, som laver en knap, som tænder/slukker for paste filteret.


// Register the plugin with the editor.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.plugins.html
CKEDITOR.plugins.add( 'buybutton',
{
    // The plugin initialization logic goes inside this method.
    // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.pluginDefinition.html#init
    init: function( editor )
    {
        // Define an editor command that inserts a buybutton.
        // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#addCommand
        editor.addCommand( 'insertBuybutton',
            {
                // Define a function that will be fired when the command is executed.
                // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.commandDefinition.html#exec
                exec : function( editor )
                {   
                    var buybutton = new Date();
                    // Insert the buybutton into the document.
                    // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertHtml
                    editor.insertHtml( 'BUY_ME_BUTTON' );
                }
            });
        // Create a toolbar button that executes the plugin command.
        // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.html#addButton
        editor.ui.addButton( 'Buybutton',
        {
            // Toolbar button tooltip.
            label: 'Insert Buybutton',
            // Reference to the plugin command name.
            command: 'insertBuybutton',
            // Button's icon file path.
            icon: this.path + 'images/buybutton.png'
        } );
    }
} );
Avatar billede learner Praktikant
19. april 2012 - 12:03 #8
PS hvordan indsætter du scripts sådan der ole? i en ramme med anden baggrundsfarve
Avatar billede olebole Juniormester
19. april 2012 - 16:08 #9
Jeg bruger denne her editor  =)
Avatar billede Slettet bruger
19. april 2012 - 17:43 #10
Den bruger vi allesammen, den er genial : )

Men det korte svar er:    [$div] din kode her [/$div]    uden dollartegn
Avatar billede olebole Juniormester
19. april 2012 - 18:37 #11
@T4NK32: Tak  =)

Forneden i guiden linker jeg til mbm2007's guide om Ekspertens BB-koder - som er den, min guide bygger på. Jeg skal jo ikke tage hele æren selv  *o)
Avatar billede learner Praktikant
19. april 2012 - 21:33 #12
tak for det.
Slet ik nogen som kan guide mig på vej med at lave en tænd/sluk knap i den ckeditor?
Avatar billede olebole Juniormester
19. april 2012 - 21:36 #13
Ikke mig. Jeg bruger ikke editoren og har ikke lyst til at sætte mig ind i API'et
Avatar billede learner Praktikant
05. oktober 2012 - 15:19 #14
Tak for Jeres bidrag - jeg har ikke løst opgaven - måske en gang i fremtiden...

Nogen som ønsker point? Så venligst smid svar
Avatar billede olebole Juniormester
05. oktober 2012 - 15:32 #15
Ellers tak - ikke mig  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester