после переключения редактора tinymce он не отправляет возвращаемую строку - PullRequest
2 голосов
/ 08 июля 2010

я использую редактор tinymce на компоненте joomla, который ведет себя странно

tinymce уже присутствует (automaticaaly) при загрузке страницы ... теперь, если я что-то пишу в крошечном редакторе mce (например: 'with tinymce') &затем нажмите кнопку toggle editor (теперь появляется простая текстовая область), и я вижу <p>with tinymce</p>, сейчас, если я добавлю какой-нибудь текст (например: 'with tinymce but this time toggled') и нажму кнопку отправки, тогда я получу только эту строку 'with tinymce'в массиве записей, а не полная строка' with tinymce but this time toggled '.

означает, что если я напишу что-нибудь, когда на странице присутствует несколько символов (пусть 'x'), то переключаю редактор, теперь появляется только текстовая область), редактирую X (пусть 'x + Y') и нажимаю на кнопку отправить, тогда я получаютолько та строка, которая была написана, когда крошечный mce присутствовал на странице (значит, я получаю только 'x', а не 'x + Y')

, пожалуйста, скажите мне, что я должен написать в приведенном ниже коде, чтобы получитьполная строка либо пишется с tinymce, либо без tinymce

мой код указан ниже

jQuery(document).ready(function(){    
jQuery("#add_cat").click(function() {
if(jQuery("#description_parent").is(":hidden")==false){ // if editor is shown then 
    var content = tinyMCE.activeEditor.getContent(); // get the content
    jQuery("#cat_description").val(content); // put it in the textarea
}
});

jQuery("#addCategoryForm").validate({
        rules: {
            category_name: {
                required: true,
                minlength: 2
            },          
            cat_description: "required"
        },
        messages: {
            category_name: {
                required: "Please write category name",
                minlength: "category name must consist of at least 2 characters"
            },
            cat_description:"Please write description"
        }
    });
});
</script>
<form action="" method="post" name="addCategoryForm" id="addCategoryForm"  >    
  <table >
    <tr>
        <th >Category Name :</th>
        <td ><input type="text" name="category_name" id="category_name" size="50"></td>
    </tr>       
    <tr>
       <th valign="top"><span class="mandatory">*</span>Description :</th>
       <td >
    <?php
        $editor =& JFactory::getEditor();
        $params = array('smilies'=> '0' ,'style'  => '0' ,'layer'  => '0' ,'table'  => '0' ,'clear_entities'=>'0');
        $value = isset($this->data['description']) ? $this->data['description'] : '';
        echo $editor->display('cat_description', $value,'400','300','20','20',false, $params);
    ?>
      </td>
    </tr>   
    <tr><td colspan="2"><input type="submit" name="add_cat" id="add_cat" ></td>
  </table>
  <input type='hidden' value='com_advertise' name='option' />
  <input type='hidden' value='advertise' name='controller' />   
  <input type='hidden' value='modifyCategory' name='task' />
  <input type="hidden" value='<?php echo $this->imageid; ?>' name="image_id" /> 
  <input type='hidden' value='<?php echo $this->categoryid; ?>' name='category_id' />   
  <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />
</form>

1 Ответ

2 голосов
/ 08 июля 2010

Хммм. Tinymce использует скрытую текстовую область для хранения содержимого редактора. Я просто догадываюсь, что твоя заявка на Joomla не обновляет эту текстовую область. В этом случае перед отправкой вам необходимо вызвать функцию сохранения tinymces. Код для этого (как обработчик событий в плагине tinymce) может выглядеть следующим образом (вам может понадобиться использовать другое событие редактора suitabel, чем onChange):

//call save using an event handler
ed.onChange.add(function(editor, event){
       editor.save();
});

// call save directly without handler
editor_instance = tinymce.EditorManager.getInstanceById('content'); // 'content' is used as default editor id, it might be another id

editor_instance.save();
...