Php 禁用TinyMCE自动清理
我想使用tinymce编辑器编辑smarty模板。 问题是编辑器总是重新排列代码。 如果我在HTML窗口中输入此代码:Php 禁用TinyMCE自动清理,php,html,tinymce,smarty,Php,Html,Tinymce,Smarty,我想使用tinymce编辑器编辑smarty模板。 问题是编辑器总是重新排列代码。 如果我在HTML窗口中输入此代码: <table border="0"> <tbody> <tr> <td> </td> <td> </td> </tr> {if empty($test)} <tr> <td> </td> <
<table border="0">
<tbody>
<tr>
<td> </td>
<td> </td>
</tr>
{if empty($test)}
<tr>
<td> </td>
<td> </td>
</tr>
{/if}
</tbody>
</table>
{如果为空($test)}
{/if}
单击“确定”按钮后变为此代码:
<p>{if empty($test)} {/if}</p>
<table border="0">
<tbody>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
{if empty($test)}{/if}
所有文本都需要在html容器中—通常是一个p标签。
这就是原因
{if empty($test)}
转变为
<p>{if empty($test)} {/if}</p>
{if empty($test)}{/if}
。
您可以选择将此代码包装在您选择的标记内,但它必须位于元素内 我从未写过一个,但我认为JavaScript支持的HTML编辑器不会直接在HTML上工作。相反,它们可能在内存中构建DOM树。您使用的不是简单的HTML,而是Smarty代码。这意味着,如果您将其作为HTML处理,您将始终丢失信息,因为它不是这样的东西。您给出的示例很好地说明了这一点:无法将该字符串表示为HTML;如果你在浏览器中打开它,它看起来会坏掉
显而易见的事实是,可视化HTML编辑器是为编辑HTML而设计的。Smarty模板只类似于HTML 改用html注释:
<table border="0">
<tbody>
<tr>
<td> </td>
<td> </td>
</tr>
<!-- {if empty($test)} -->
<tr>
<td> </td>
<td> </td>
</tr>
<!-- {/if} -->
</tbody>
</table>
尚未使用smarty,但此链接可能会有所帮助:或者实际上:将其设置为false?或者更好,只需使用文本编辑器即可没错,我用HTML注释标记替换了括号。现在代码是HTML valide。