Как использовать конфиг с ckeditor и jeditable? - PullRequest
0 голосов
/ 29 марта 2011

Я использую jeditable: http://www.appelsiini.net/projects/jeditable с ckeditor http://ckeditor.com/

Я нашел плагин, который отлично работает: http://blog.amps211.com/this-is-me-professing-my-love-for-jquery-and-how-i-got-ckeditor-working-with-jeditable/

Но у меня проблема, я могуНе добавляйте customConfig.

Мой код:

var config = {
          toolbar: [
            ['Source'],['ShowBlocks'],
            ['PasteText'],
            ['Image','HorizontalRule','SpecialChar'],
            '/',
            ['Bold','Italic','Underline','Strike','-','Superscript','Format'],
            ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
            ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
            ['Link','Unlink']
          ],
          toolbarStartupExpanded: true,
          toolbarCanCollapse: false,
          toolbarLocation: 'top',
          startupShowBorders: false,
          forcePasteAsPlainText: true,
          skin: 'office2003',
          filebrowserBrowseUrl : 'mylinkbrowse',
          filebrowserUploadUrl : 'mylinkupload',
          resize_enabled: 'true',
          resize_dir: 'vertical',
          height: '300px',
          width: '100%',
          uiColor: '#123456',
          language: 'en'
        }

 $('.editreply').click(function(){
          var editor = $(this).parent().find('.replyeditor');

          editor.editable('mylink',{
            type:'ckeditor',
            cancel:'Cancel',
            submit: 'OK',
            rows:3,
            onblur: 'ignore'                
          }); // END OF EDITABLE
          CKEDITOR.replace(editor.find("textarea"),{customConfig:config});
          editor.click();
          //alert(editor.attr('id'));

        }); // ENF editreply CLICK

Цель состоит в том, чтобы нажать на кнопку редактирования, чтобы отобразить ckeditor.Я добавляю editor.click () для имитации клика.

Как передать конфиг ckeditor?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Хитрость в том, чтобы отправить конфигурацию из jEditable через параметр "ckeditor".Вот так выглядит мой конфиг и он отлично работает.

$(".editable_textarea").editable("<?php echo $_SERVER['PHP_SELF'] ?>", { 
    indicator : "<img src='img/indicator.gif'>",
    type   : 'ckeditor',
    submitdata: { _method: "post" },
    select : true,
    submit : 'OK',
    cancel : 'cancel',
    cssclass : "editable",
    onblur: "ignore",
    ckeditor : {
    toolbar:
    [
    ['Source', '-', 'Bold', 'Italic', 'Format', 'Styles', '-', 'NumberedList', 'BulletedList', 'Blockquote', 'HorizontalRule', '-', 'Link', 'Unlink', '-', 'Image', '-', 'Maximize'],
    ['UIColor']
    ],
    filebrowserBrowseUrl: baseUrl + 'admin/assets/?target=ckeditor',
    contentsCss : baseUrl + 'media/css/custom_styles.css',
    stylesSet : []
    }
    });
0 голосов
/ 01 апреля 2011

Я думаю, что функция CKEditor ищет URL для конфига, а не сам конфиг.например, CKEDITOR.replace ('myfiled', {customConfig: '/myconfig.js'});

Я уверен, что если вы обновите "config.js", он будет использоваться во время каждой инициализации.(Я не использую этот подход)

Поскольку у меня простая настройка (все мои редакторы используют одну и ту же конфигурацию), я сначала обновляю базовый CKEditor ...

function initializeCKEditor() { 

var customToolBar =
    [
        ['LocalSave','NewPage','-','Templates'],
        ['Cut','Copy','Paste','PasteText','PasteFromWord','-', 'Scayt'],
        ['Undo','Redo','-','SelectAll','RemoveFormat','-','About','Preview'],
        ['Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', ...];

    //Enable Spell as you Type 
CKEDITOR.config.scayt_autoStartup = true;
    CKEDITOR.config.extraPlugins = 'localSave'; 
    CKEDITOR.config.removePlugins = 'elementspath';
    CKEDITOR.config.toolbar = customToolBar;

, затем какМне нужно создать / уничтожить экземпляры редактора

    function initializeEditor(orientation) {
    //ckeditor config 
var ckeditor_config = {
        sharedSpaces : {
            top : 'editor-toolbar'
        },
        width : (scrnWidth+ckeditor_width_border),
        height: scrnHieght};

//this is why we're here
$('.editor').ckeditor(ckeditor_config);

Надеюсь, это поможет.Я не вижу причин, почему вы не можете использовать тот же подход.Если вы установите базовый CKEditior один раз, я чувствую, что при создании экземпляра у вас будет меньше накладных расходов, но вы никогда не отметите его.

...