2

作成中のカスタム ブロック内からモーダル ダイアログで TinyMCE を開きたいと思います。モーダル ダイアログを実装する方法は知っていますが、TinyMCE をダイアログ内に統合する方法がわかりませんでした。

私が達成しようとしているのは、ブロックの追加/編集ポップアップでテキストがクリックされたときに、TinyMCE でダイアログを開いて、クリックしたテキストを編集することです。誰もこれを以前にやったことがありますか?

これは、追加/編集フォームで達成しようとしているものです:

$this->addHeaderItem(Loader::helper('html')->javascript('tiny_mce/tiny_mce.js'));
Loader::element('editor_init');
Loader::element('editor_config');
Loader::element('editor_controls');

<textarea name="field-name" class="text-area-value ccm-input-textarea">Some text here or empty....</textarea>

$bt = BlockType::getByHandle('myblock');
<a class="dialog-launch ccm-block-type-inner" 
dialog-on-close="ccm_blockWindowAfterClose()" dialog-append-buttons="true" 
dialog-modal="false" dialog-width="500" 
dialog-height="500" dialog-title="<?php echo t('Add/Edit Text)?>"
href="<?php echo $th->getBlockTypeToolsURL($bt); ?>/tinymce_dialog.php?text=<?php echo $text-area-value; ?>">
  Edit the above text in TinyMCE
</a>

tools フォルダの tinymce_dialog.php で:

<textarea name="textarea-name" 
class="ccm-input-textarea advancedEditor ccm-advanced-editor">
  <?php echo $_GET['text']; ?>
</textarea>

<div class="ccm-buttons dialog-buttons">
    <a href="javascript:void(0)" onClick="ccm_blockWindowClose();" 
       class="ccm-button-left btn">Cancel</a>
    <a href="" onClick="" class="btn primary">Ok</a>
</div>

しかし、テキストエリアの値をモーダル ダイアログ ポップアップに渡すことができません。hrefツールフォルダーにあるスクリプトに textarea の値を渡すためにアンカータグで使用しようとしましたが、どちらも機能していないようです。

編集: tinymce_dialog.php にボタンも追加しました (上記のコードを参照)。これらのボタンを<a dialog-on-close="ccm_blockWindowAfterClose()" dialog-append-buttons="true".....>フォームに渡すことができるかどうかはわかりません。

4

2 に答える 2

2

他の場所と同じように機能するはずです。まず、次のコード行をダイアログに 1 回含めます (TinyMCE の数に関係なく、一度だけ必要です)。

<?php Loader::element('editor_config'); ?>

次に、必要な TinyMCE ごとに、これを使用します。

<?php Loader::element('editor_controls'); ?>
<textarea name="your-field-name" class="ccm-advanced-editor"></textarea>
于 2013-04-22T16:47:27.717 に答える