0

WYSIWYGエディターをCakePHPに実装することについて質問があります。勤務先の従業員向けのイントラネットを開発しています。私は現在CakePHP1.3を使用しています。このリポジトリを見つけました

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

これには、いくつかの異なるWYSIWYGエディターがバンドルされています。私は指示に従い、NicEditのJSディストリビューションをダウンロードしたことを確認しました(NicEditで苦労した後、TinyMCEと一緒に、どちらも機能しません)。

走る

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>    

このエラーが表示されます:Uncaught ReferenceError:bkLibが定義されていません

私はこの問題を無駄に修正するために何時間も費やしました。誰かがこの問題に取り組むことについて何らかの洞察を持っていますか?

4

1 に答える 1

0

プラグインを使用せずに、最近の1.3プロジェクトでTinyMCEを設定する方法は次のとおりです。

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メソッドをより具体的にすることもできます。特定のテキスト領域でのみアクティブ化するのに問題がありましたが、運が違う可能性があります。ドキュメントはこちらです。より高度なテーマをオンにすることもできます。ドキュメントにはオプションが記載されています。

于 2012-06-16T00:56:13.810 に答える