Bonjour.
Je souhaiterais installer un éditeur de texte dynamique dans mon cms de blog. ( Les codes sont ici : https://github.com/bpesquet/OC-MicroCMS/tree/iteration-10 ). On utilise Twig..
J'aimerais qu'à la page 'ajouter un article' il y ai à la place du textaera , un editeur de texte où l'ont puisse changer la couleur des polices, taille,.. Etc Pour que l'article puisse être mis en forme directement dans l'espace d'administration.
Je me suis renseignée pour CKEditor : J'ai essayé de l'installer sans succès... J'ai mis le dossier CKEditor dans mon répertoire /web
Etant donné que le code ne contient pas de formulaire en HTML pur, j'ai du mal ( pas de balises )
Je pense que ce sont ces deux fichiers à modifier :

dans src/form/type/ArticleType

<?php
namespace cmsblog\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
class ArticleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', TextType::class);
            ->add('content', TextareaType::class);
    }
    public function getName()
    {
        return 'article';
    }
}

La vue article_form.html.twig

{% extends 'layout.html.twig' %}
{% set adminMenu = true %}

{% block title %}{{ title }}{% endblock %}

{% block content %}
<h2 class="text-center">{{ block('title') }}</h2>
{% for flashMessage in app.session.flashbag.get('success') %}
<div class="alert alert-success">
    {{ flashMessage }}
</div>
{% endfor %}

<div class="well">
{{ form_start(articleForm, { 'attr': {'class': 'form-horizontal'} }) }}
    <div class="form-group">
        {{ form_label(articleForm.title, null, { 'label_attr':  {
            'class': 'col-sm-4 control-label'
        }}) }}
        <div class="col-sm-6">
            {{ form_errors(articleForm.title) }}
            {{ form_widget(articleForm.title, { 'attr':  {
                'class': 'form-control'
            }}) }}
        </div>
    </div>
    <div class="form-group">

        {{ form_label(articleForm.content, null, { 'label_attr':  {
            'class': 'col-sm-4 control-label'
        }}) }}
        <div class="col-sm-6">
            {{ form_errors(articleForm.content) }}
            {{ form_widget(articleForm.content, { 'attr':  {
                'class': 'form-control',
                'rows': '8'
            }}) }}
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-4 col-sm-3">
            <input type="submit" class="btn btn-primary" value="Save" />
        </div>
    </div>
{{ form_end(articleForm) }}
</div>

{% endblock %}

Merci beaucoup à la personne qui pourra m'apporter son aide !

2 réponses


Personnellement j'utilise highlightjs, donc gérer en javascript, l'interface est suffisante et c'est du markdown.
Je te conseil d'utiliser cette librairie en plus => php-markdown, avec un peu de bidouille tu peux obtenir quelque chose de bien je pense.

Salut,
Il y a Tinymce aussi