Selaa lähdekoodia

Se agrega editor de plantilla con formato al formulario de Template.

Maxi Schvindt 7 vuotta sitten
vanhempi
commit
14e7b7c9d0

+ 16 - 1
Admin/TemplateAdmin.php

@@ -12,6 +12,19 @@ use TemplateBundle\Entity\Template;
 class TemplateAdmin extends BaseAdmin
 {
 
+    public function getTemplate($name)
+    {
+        switch ($name) {
+            case 'edit':
+                return 'TemplateBundle:Template:template_edit.html.twig';
+                break;
+
+            default:
+                return parent::getTemplate($name);
+                break;
+        }
+    }
+
     function getNewInstance()
     {
         return new Template($this->get('security.token_storage'));
@@ -60,7 +73,9 @@ class TemplateAdmin extends BaseAdmin
     {
         $showMapper
             ->add('name')
-            ->add('content', 'string', array('template' => 'TemplateBundle:CRUD:content_field.html.twig','data' => 'show'));
+            ->add('content','string', array(
+                'template' => 'TemplateBundle:Template:show_template.html.twig',
+            ));
     }
 
 }

+ 30 - 0
Resources/views/Template/show_template.html.twig

@@ -0,0 +1,30 @@
+{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
+
+{% block field %}
+    <textarea id="textarea_ace_editor">{{object.getContent()}}</textarea>
+
+    <script src="{{ asset('bundles/baseadmin') }}/ace_editor/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
+    <script src="{{ asset('bundles/baseadmin') }}/ace_editor/textarea-as-ace-editor.js" type="text/javascript" charset="utf-8"></script>
+     
+    <style type="text/css" media="screen">
+        .ace_editor {
+            height: 450px!important;
+        }
+    </style>
+
+    <script type="text/javascript">
+        $( document ).ready(function() {
+            $("#textarea_ace_editor").asAceEditor();
+            editor = $('#textarea_ace_editor').data('ace-editor');
+            
+            editor.setTheme("ace/theme/github");
+            editor.getSession().setMode("ace/mode/twig");
+            editor.setReadOnly(true);
+            editor.setFontSize(14);
+            editor.setShowInvisibles(true);
+            editor.getSession().setTabSize(2);
+            editor.getSession().setUseSoftTabs(true);
+            editor.getSession().setUseWrapMode(true);
+        });
+    </script>
+{% endblock %}

+ 34 - 0
Resources/views/Template/template_edit.html.twig

@@ -0,0 +1,34 @@
+{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %}
+
+{% block form %}
+    {{ parent() }}
+
+    {#https://github.com/ryanburnette/textarea-as-ace-editor#}
+    {#https://ace.c9.io/#}
+    {#https://ace.c9.io/build/kitchen-sink.html#}
+    <script src="{{ asset('bundles/baseadmin') }}/ace_editor/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
+    <script src="{{ asset('bundles/baseadmin') }}/ace_editor/textarea-as-ace-editor.js" type="text/javascript" charset="utf-8"></script>
+
+    <style type="text/css" media="screen">
+        .ace_editor {
+            height: 450px!important;
+            border: 1px solid #CCCCCC;
+        }
+    </style>
+
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $("textarea").asAceEditor();
+            editor = $('textarea').data('ace-editor');
+
+            editor.setTheme("ace/theme/github");
+            editor.getSession().setMode("ace/mode/twig");
+            editor.setFontSize(14);
+            editor.setShowInvisibles(true);
+            editor.getSession().setTabSize(2);
+            editor.getSession().setUseSoftTabs(true);
+            editor.getSession().setUseWrapMode(true);
+            editor.setShowPrintMargin(false);
+        });
+    </script>
+{% endblock %}