2010-12-29 2 views
1

Je souhaite utiliser l'éditeur tinymce pour éditer des modèles smarty. Le problème est que l'éditeur réorganise toujours le code. Si j'entre ce code dans la fenêtre HTML:Désactiver le nettoyage automatique de TinyMCE

<table border="0"> 
<tbody> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
{if empty($test)} 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
{/if} 
</tbody> 
</table> 

se transforme en code après avoir cliqué sur le bouton OK:

<p>{if empty($test)} {/if}</p> 
<table border="0"> 
<tbody> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
</tbody> 
</table> 
+0

ont pas utilisé Smarty, mais peut-être ce lien aider: http://tinymce.moxiecode.com/forum/viewtopic.php?id=2694 ou ce fait : http://tinymce.moxiecode.com/wiki.php/Configuration:cleanup l'a peut-être mis à faux? – Don

+0

ne fonctionne pas :-( – ynh

+0

... ou mieux encore, il suffit d'utiliser un éditeur de texte http://www.jedit.org.;) – JakeParis

Répondre

2

Je n'en ai jamais écrit mais je suppose que les éditeurs HTML fonctionnant sous JavaScript ne fonctionnent pas directement sur HTML. Au lieu de cela, ils construisent probablement un arbre DOM en mémoire. Vous ne travaillez pas sur du HTML brut mais sur du code Smarty. Cela signifie que vous perdrez toujours des informations si vous les gérez au format HTML, car ce n'est pas le cas. L'exemple que vous donnez l'illustre assez bien: il n'y a aucun moyen de représenter cette chaîne en HTML; Si vous l'ouvrez dans un navigateur, il semblera cassé.

Le fait est que les éditeurs HTML visuels sont conçus pour éditer du code HTML. Smarty modèles seulement ressemblent HTML.

+1

C'est à droite que j'ai remplacé les crochets avec la balise de commentaire HTML. Maintenant, le code est HTML valide. ynh

1

Tout texte doit être à l'intérieur d'un conteneur html - généralement un P- marque. Telle est la raison pour laquelle

{if empty($test)} 

se transforme en

<p>{if empty($test)} {/if}</p> 

. Vous pouvez choisir de placer ce code dans une étiquette de votre choix, mais il doit être dans un élément!

0

Utilisez les commentaires HTML au lieu:

<table border="0"> 
<tbody> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<!-- {if empty($test)} --> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<!-- {/if} --> 
</tbody> 
</table> 
Questions connexes