2

このエディターを定義する前に、symfony プロジェクトで tinymce を使用したいです。tinymce を定義し、twig ファイルの上でセレクターを textarea に設定した後、フォームから読み取り、データベースに書き込むことができます。

{# src/MY/FilmBundle/Resources/views/Page/newfilm.html.twig #}
{% extends 'MYFilmBundle::layout.html.twig' %}
{% block javascripts %}
    <script type="text/javascript" src="{{asset('tinymce/jscripts/tiny_mce/tiny_mce.js')}}"></script>
    <script type="text/javascript">
        tinymce.init({
            selector: "textarea"
        });
    </script>

{% endblock %}

{% block body %}

    <form action="{{ path('MYFilmBundle_submitNewFilm') }}" method="post" {{ form_enctype(form) }} class="movie">
        {{ form_errors(form) }}


        {{ form_row(form.text)}}

        {{ form_rest(form) }}

        <input type="submit" value="{{ 'Submit'}}" />
    </form>
{% endblock %}

このコードを buildfilmform (php クラス) に追加します。フォームから読み取ることができません

   class buildfilmform extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
          $builder->add('text', 'textarea')
        }

        public function getName()
        { // return a unique identifier
            return 'MY_filmbundle_buildfilmform';
        }
}

フォームを読み取って db に保存するアクション:

public function submitNewFilmAction()
{
    $em = $this->getDoctrine()->getEntityManager();

    $newFilm = new Film();

    $user = $this->getUser();
    $user_obj = $em->getRepository('MYFilmBundle:Author')->find($user);

    $newFilm->setAuthor($user);

    $form = $this->createForm(new buildfilmform(), $newFilm);
    $form->bind($this->getRequest());

    if ($form->isValid()) {
        $film = $form->getData();

        $em->persist($film);
        $em->flush();

        return $this->redirect($this->generateUrl('MYFilmBundle_homepage'));
    }


    return $this->render(
        'MYFilmBundle:Page:newfilm.html.twig', array(
        'form' => $form->createView(),

    ));
}

どのように使用できるかわかりません

// Get the HTML contents of the currently active editor
console.debug(tinyMCE.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent({format : 'raw'});

// Get content of a specific editor:
tinyMCE.get('content id').getContent()

それはtinymceサイトで言われました

手伝って頂けますか?

どうもありがとう

ps : tinymce-dev をプロジェクトに追加しました。プロジェクトで上記のコードを使用する方法を知りたいです。

4

3 に答える 3

4

:D その作業 :P ビルドフォームのテキストエリアを変更します

$builder->add('text', 'textarea')

に :

$builder->add('text', 'textarea', array('required'=>false));

このリンクは明確に説明します:)

Symfony2 と TinyMCE でフォームを送信できない

于 2013-07-18T11:43:43.360 に答える
0

TinymceBundleを見てみましょう。これにより、テキストエリアを TinyMCE エディターとして簡単に定義できます。

$builder->add('introtext', 'textarea', array(
    'attr' => array(
        'class' => 'tinymce',
        'data-theme' => 'medium' // simple, advanced, bbcode
    )
));
于 2013-07-18T10:00:24.747 に答える
-1

GenemuFormBundleを使用します。これは TinyMCE をサポートし、Captcha、datepicker、colorpicker、autocomplete、rating などの他の適切なフォーム タイプを備えています。

于 2013-07-18T21:21:30.730 に答える