ソースコードレベルの表示・非表示に使えるコメントタグ

最終更新日
2017.10.11

移行作業中のため一部のページが正しく表示されていない場合があります(o-ω-))

ソースコードレベルの表示・非表示に使えるコメントタグの説明です。

エディタに TinyMCE などを使っていると MODX タグの中の&&と変換されたり@CODEテンプレートの HTML が中途半端にプレビューされてしまう事がある。また外部エディタを使っている時にインデントが上手くいかなかったり、参照文字を使え!という警告がでてしまう場合がある。

MODX タグをメインで使うリソースでは TinyMCE を使用しなければいいのですが、HTML と MODX タグが混在するような場合の回避策として次のような特殊コメントタグが使用できる。

エディタプレビュー時にコメントアウトする

エディタではコメントとして扱い実際の画面ではそのまま表示させるための特殊タグです。

<!--@MODX: このエリアはエディタプレビューには表示されません -->

以下の例では Ditto のタグをエディタプレビューに表示させない。

<!--@MODX:
<ul class="mark">
[[Ditto?
  &tpl=`@CODE:<li><a href="[~[+id+]~]">[+title+]</a></li>`
]]
</ul>-->

※EvoCMSでは1.3.4時点でこの機能はないため、使用するには一番下の変換プラグインを参照。

出力時にコメントアウトする

上とは逆に出力時はソースレベルで表示させないようにする特殊タグです。ソースコードに出力させたくないメモを記述しておく事ができる。

<!--@IGNORE-->
このエリアは HTML ソースに出力されません
<!--@ENDIGNORE-->

※EvoCMSでは以下の書き方になる。

<!--@- このエリアは HTML ソースに出力されません -@-->

また<!--@MODX:-->でコメントアウトするとエディタプレビューには何も表示されず何があるか分からなくなるので、IGNORE を使ってプレビュー上に目印を表示させておく事ができる。

<!--@MODX:
<ul class="mark">
[[Ditto?
  &tpl=`@CODE:<li><a href="[~[+id+]~]">[+title+]</a></li>`
]]
</ul>--><!--@IGNORE--><p>★Dittoのリストタグが入ります</p><!--@ENDIGNORE-->

EvoCMS での記述方法

コメントタグの記述方法は Evo では互換性が無いため、以下のようなプラグインを作成して変換する事で日本語版 MODX の記述をそのまま使用できる。

OnParseDocument 実行順の優先度は高めに

$modx->documentOutput = str_replace(['<!--@IGNORE-->', '<!--@ENDIGNORE-->'], ['<!--@-', '-@-->'], $modx->documentOutput);
$modx->documentOutput = preg_replace('/<!--@MODX:(.*?)-->/s', '$1', $modx->documentOutput);