2015-11-20 16 views
9

Attualmente sto lavorando su una porta di CKEditor in concrete5. Come parte di questo, concrete5 ha la possibilità di creare "Frammenti" che possono essere inseriti tramite l'editor. Gli sviluppatori hanno la possibilità di definire il tipo di output HTML questi widget producono ma mentre in modalità di modifica, si vede semplicemente un posto da titolare con il seguente codice HTML:CKEditor Inserisci HTML non modificabile con stile

'<span 
    class="ccm-content-editor-snippet" 
    contenteditable="false" 
    data-scsHandle="' + selectedSnippet.scsHandle + '" 
>' + selectedSnippet.scsName +'</span>' 

Ho guardato in widget CKEditor, ma non necessariamente voglio ingombrare la mia barra degli strumenti con un numero potenzialmente elevato di pulsanti per attivare tale funzionalità. Sono curioso di sapere se è possibile aggiungere qualcosa al menu a discesa stylescombo (o dropdown simile) che inserirà quindi uno snippet come quello sopra.

Attualmente ciò che devo provare a fare questo può essere trovato a https://github.com/ExchangeCore/Concrete5-CKEditor/blob/feature/magicstyles/assets/concrete5styles/plugin.js#L17-L30 Questo non funziona abbastanza perché non ho modo di inserire il selectedSnippet.scsName nel innerHTML dello stile. C'è un modo per fare questo o qualche altro modo più ovvio per andare su questo tipo di funzionalità di inserimento all'interno di CKEditor senza fare tonnellate di pulsanti della barra degli strumenti?

Inoltre, il contenuto di tale intervallo dovrebbe poter essere rimosso, ma non modificabile.

risposta

3

Con questo plugin è possibile creare un menu a discesa per inserire qualsiasi blocco HTML che si desidera: http://ckeditor.com/addon/htmlbuttons

Se non si adatta alle tue esigenze, guarda il codice sorgente e scegliere le parti che ti manca.

+0

Ho finito per strappare del codice da qui. Funzionava molto bene, ma dovevo fare attenzione con l'ordine di caricamento, ho scoperto che se avessi provato ad aggiungere un pulsante dopo che tutto era già stato inizializzato, non si sarebbe mostrato (come in una richiesta Ajax) –

Problemi correlati