2012-06-15 7 views
0

У меня вопрос о внедрении редакторов WYSIWYG в CakePHP. Я занимаюсь разработкой интрасети для сотрудников, где я работаю. В настоящее время я использую CakePHP 1.3. Я нашел этот репозиторийРедактор CakePHP и WYSIWYG

https://github.com/josegonzalez/cakephp-wysiwyg-helper/tree/1.3

, который содержит несколько различных редакторов WYSIWYG в комплекте вместе. Я последовал инструкциям и убедился, что загрузил дистрибутив JS NicEdit (вместе с TinyMCE, после того, как я боролся с NicEdit, но ни один из них не работает).

Я бегу

echo $this->Nicedit->input('content'); 

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

<div class="input textarea required"><label for="AnnouncementContent">Content</label><textarea name="data[Announcement][content]" cols="30" rows="6" id="AnnouncementContent" ></textarea></div><script type="text/javascript"> 
     var area1; 
     function makePanel() { 
      area1 = new nicEditor({fullPanel : true}).panelInstance(
       'AnnouncementContent', 
       {hasPanel : true} 
      ); 
     } 
     bkLib.onDomLoaded(function() { makePanel(); });</script>  

Я получаю эту ошибку: неперехваченный ReferenceError: bkLib не определен

Я провел часы, пытаясь не решить эту проблему, чтобы не помогло. У кого-нибудь есть понимание относительно приближения к этой проблеме?

ответ

0

Вот как я установил TinyMCE в недавнем 1.3 проекта, без использования этого плагина:

С моей точки зрения, что используется редактор TinyMCE:

//tell template to include the tinyMCE javascript file 
<?php 
if(isset($javascript)): 
    echo $javascript->link('tiny_mce/tiny_mce.js'); 
endif; 
?> 

//Build the form I need 
<div class="responses form"> 
<?php echo $this->Form->create(null, array('controller' => 'Responses', 'action' => 'add')); ?> 
    <fieldset> 
     <legend>Add Response</legend> 
    <?php 
     echo $form->hidden('listing_id', array('value' => $tempid)); 
     echo $this->Form->input('content'); 
    ?> 
    </fieldset> 
<?php echo $this->Form->end(__('Submit', true));?> 
</div> 

//set up the editor 
<script type="text/javascript"> 
    tinyMCE.init({ 
     theme : "simple", 
     mode : "textareas", 
     convert_urls : false 
    }); 
</script> 

Я знаю, что это на самом деле не отвечать на ваши вопрос, если вы действительно хотите использовать этот плагин, но если вы в порядке, просто используя TinyMCE, вы можете легко настроить его таким образом. Лучшая часть - это автоконвертироваться в HTML, чтобы вы могли просто сохранить в своей базе данных. Когда вы извлекаете данные из своей базы данных, они будут в правильно отформатированном html, поэтому вы можете легко отобразить его.

Вы также можете быть более конкретным в методе init, с точки зрения которого область текста вы хотите использовать. Мне не удалось заставить его активироваться только в определенной текстовой области, но у вас может быть другая удача. Документация: here. Вы также можете включить более продвинутые темы. В документации описаны параметры.

Смежные вопросы