рд╕реЛрдирд╛рдЯрд╛рд╕реНрдорд┐рдирдмрдВрдбрд▓ рдореЗрдВ CKEditor рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди

рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ WYSIWYG рд╕рдВрдкрд╛рджрдХ "рдХрд▓рд╛рдИ рдХреА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ" рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреГрд╖реНрда рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдХреНрд╕реНрдЯрд╛рд░рд┐рдпрд╛ рдлрд╝реАрд▓реНрдб рдореЗрдВ ckeditor рд╡рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдмреБрд░реА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред



CKEditor рддреАрди рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдореЗрдВ SonataAdminBundle рдХреЗ рдЕрдВрджрд░ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ:

1. рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ SonataAdminBundle рдкреЗрдЬ рдПрдбрд┐рдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ

AcmeDemoBundle :: sonata_admin_base_layout.html.twig

{% extends 'SonataAdminBundle::standard_layout.html.twig' %} {% block javascripts %} {{ parent() }} <script src="{{ asset('js/ckeditor/ckeditor.js') }}" type="text/javascript"></script> {% endblock %} 


2. рд╣рдо config.yml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ


 sonata_admin: ... templates: layout: AcmeDemoBundle::sonata_admin_base_layout.html.twig 


3. рд╣рдо ckeditor рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдлрд╛рд░реНрдо рддрддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


 protected function configureFormFields(FormMapper $form) { тАж $form ->with('General') тАж ->add('text', 'textarea', array('attr'=>array('class'=>'ckeditor'))); тАж. } 


рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╣рд╛рд▓рд╛рдБрдХрд┐, "рдХрд▓рд╛рдИ рдХреА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ" рдХреЗ рд╕рд╛рде рдХреА рдЧрдИ рдХрдИ рдЪреАрдЬреЛрдВ рдХреА рддрд░рд╣, рд╕рдВрдкрд╛рджрдХ рдХреЛ рдереЛрдбрд╝реЗ рдЯреЗрдврд╝реЗ-рдореЗрдврд╝реЗ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рд╡рд┐рдХреГрдд, рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЖрджрд┐ рд╣реИрдВред рд╕рдВрдкрд╛рджрдХ рд▓рдЧрднрдЧ "рдЕрдирдлрд╝рд┐рд▓рд┐рдмрд▓" рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реЛрдирд╛рдЯрд╛ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ ckEditor рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред



рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ рд╡рд┐рдХреГрдд рддрддреНрд╡реЛрдВ рдХреЗ CSS рд▓реЗрдЖрдЙрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЦреИрд░, рдкреНрд░рд┐рдп рдкрд╛рдардХ рдХреЛ рдлрд╛рдпрд░рдмрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рдХреГрдд рддрддреНрд╡реЛрдВ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдбрд╝рд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рддреИрдпрд╛рд░ рд╕реАрдПрд╕рдПрд╕ рдмреНрд▓реЙрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рд╣реА AcmeDemoBundle рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :: son_admin_base_layout.html.twig рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓

 {% block stylesheets %} {{ parent() }} <style> .cke_skin_kama table{ width: inherit; margin: inherit; } .cke_skin_kama input, .cke_skin_kama textarea, .cke_skin_kama select{ width: inherit; -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .cke_skin_kama label{ padding-top: inherit; line-height: inherit; float: inherit; width: inherit; color: inherit; text-align: inherit; } .cke_skin_kama table td{ border-top: none; } .cke_skin_kama table th, .cke_skin_kama table td{ padding: 0px; line-height: inherit; } .cke_skin_kama select{ height: inherit; } .cke_skin_kama input, .cke_skin_kama textarea{ display: inherit; border-radius: 0px; line-height: inherit; } </style> {% endblock stylesheets %} 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рд╡рд┐рдХреГрддрд┐рдпрд╛рдВ рддрдп рд╣реЛ рдЧрдИ рд╣реИрдВред рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛, рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдореИрдВ рджреЛрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЦреБрд╢ рд╣реИрдВред



рдкреБрдирд╢реНрдЪ

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдиреНрдп рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рдХреГрдд рддрддреНрд╡реЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирдП рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рджреЛрд╖ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╢реИрд▓реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рди рд╣реЛрдВ - рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдереА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In142304/


All Articles