Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-是否可以使用web编辑器编辑细枝模板_Php_Symfony_Twig - Fatal编程技术网

Php Symfony-是否可以使用web编辑器编辑细枝模板

Php Symfony-是否可以使用web编辑器编辑细枝模板,php,symfony,twig,Php,Symfony,Twig,我们有一个建立在Symfony框架之上的网站,我被赋予了一项任务,允许管理员通过管理面板(如WordPress)对电子邮件模板甚至细枝模板进行更改,您可以在编辑器中对文件进行更改 我知道Symfony不是CMS,我想知道允许管理员编辑电子邮件模板和其他小树枝模板是否可行。模板未保存在数据库中,它们位于其正常位置NameBundle/Resources/views,正如我们在生产中所知,Symfony使用缓存。 在网上搜索的时候,我遇到了一个编辑器,但我又一次被困在如何在Symfony中使用类似的

我们有一个建立在Symfony框架之上的网站,我被赋予了一项任务,允许管理员通过管理面板(如WordPress)对电子邮件模板甚至细枝模板进行更改,您可以在编辑器中对文件进行更改

我知道Symfony不是CMS,我想知道允许管理员编辑电子邮件模板和其他小树枝模板是否可行。模板未保存在数据库中,它们位于其正常位置
NameBundle/Resources/views
,正如我们在生产中所知,Symfony使用缓存。

在网上搜索的时候,我遇到了一个编辑器,但我又一次被困在如何在Symfony中使用类似的东西上

如果有人能把我推向正确的方向,我将不胜感激。

Twig可以让你使用,你可以将模板存储为字符串而不是文件。其中一个例子可能正好说明了您需要什么。他们正在使用

我想这个功能最近已经改变了,因为我记得以前有。它似乎已从
1.15
中删除

在本例中,您将模板存储在数据库中,然后将其添加到过滤器链,如下所示:


Symfony配置也有添加新加载器的标签。

我最近也有同样的需求

我选择将编辑的内容放在
app/Resources/AcmeBundle/views/Include/menu.html.twig
文件中,因为我不想将其放在捆绑包中。首次加载此页面时,将加载文件
src/AcmeBundle/Resources/views/Include/menu.html.twig
,其内容将用作可编辑twig模板的基础。该文件也可以为空

控制器的功能: 树枝锉 关联的Twig文件
editMenu.html.Twig
仅包含以下表单:

{{ form(form) }}
用法 以下是如何使用可编辑模板来显示以前编辑的文件:

{% include('AcmeBundle:Include:menu.html.twig') %}
由于,将使用
app/Resources/AcmeBundle/views/Include/menu.html.twig
文件,而不是包中的文件

吉特 如果使用git,则必须在
.gitignore
文件中添加文件路径:

# File that can be edited from the admin:
/app/Resources/AcmeBundle/views/Include/menu.html.twig
如果不这样做,git更新可能会更改或删除此文件

HTML编辑器 如果您想要所见即所得编辑器,可以安装提供HTML编辑器的。如果您已经有了jQuery,下面是使用它的快速指南。否则,请遵循文档

composer require "stfalcon/tinymce-bundle:dev-master"
要添加到
app/config/config.yml
的简单配置:

stfalcon_tinymce:
    selector: ".tinymce"
    language: %locale%
    theme:
        simple:
            theme: "modern"
            plugins: "link"
            toolbar1: "undo redo | bold italic | bullist numlist outdent indent | link"

并在Javascript中添加
'class'=>'tinymce'、
'rows'=>16、
{{tinymce\u init()}

由于细枝模板是普通文件,所以您可以编写一个代码,该代码将归档\u get\u contents(),然后进行修改,然后使用file\u put\u contents()将其放回或类似的文件读/写函数。两个martin。。。在这里花了一段时间,但现在StackOverflow把我弄糊涂了。hah@Martin(s) :)非常感谢,我将查看这些资源,知道如何在web编辑器中显示这些资源,并在通过管理面板保存时进行更新吗?我不使用Wordpress,所以我不知道。无论如何,编辑和存储庙宇与细枝无关。你可以用任何你想用的方式来做。你能与我分享真是太好了,我会看一下这些然后再给你回复。你能给我解释一下
小树枝文件
用法
,我的理解是在
app/Resources/AcmeBundle/views/Include/menu.html.小树枝
里我只需要
{{form(form)}
但是我应该把
{%include('AcmeBundle:include:menu.html.twig')%%}放在哪里呢?
请注意,每当更新模板时清除生产服务器上的缓存可能会给用户带来不愉快的惊喜。还要注意,更新资源下的文件可能会有源代码控制问题。很遗憾在下次运行composer update时丢失了所有更改。@a.L-基本问题是,每当更新模板文件时,您确实需要刷新缓存才能看到更改。我从未尝试过实施这种解决方案。如果面临类似的任务,我会看看一些现有的cms解决方案,看看它们能做些什么。我肯定会将更改后的模板文件存储在专用目录(或数据库)中。然后想一想如何只更新树枝缓存。@A.L-所有我不知道答案的好问题。Twig将模板“编译”成php。您可以查看缓存目录以了解结果。我很有信心你可以让twig编译一个模板,但我必须研究确定细节。由此产生了一种观念,即看别人是如何做的。
stfalcon_tinymce:
    selector: ".tinymce"
    language: %locale%
    theme:
        simple:
            theme: "modern"
            plugins: "link"
            toolbar1: "undo redo | bold italic | bullist numlist outdent indent | link"