ManagerManagerで、ヘルプをカスタマイズするときのTIPS
MODxでは、ManagerManagerを使うと、入力画面の入力項目のヘルプ(入力欄横の「?」ボタン)も変更することが可能ですが、このヘルプはJavaScriptを使って表示されるので、ちょっとしたコツのようなものがあります。
1.改行は入れない。入れるときは「\n」という文字を入れる。
JavaScriptでは、文字列の途中で改行することができません。(PHPではできますが)
ですので、文字列の途中で改行を入れたり、"\n"を入れたりしてはいけません。
代わりに、JavaScriptもエスケープ文字が使えるので、'\n'という文字を入れておけば、JavaScriptの方で、改行に変換して表示してくれます。
mm_changeFieldHelp('longtitle', '長いタイトルは、詳細画面で以下の箇所に表示されます。\n' .'1)ブラウザに表示されるタイトル\n' .'2)パンくずリンク\n' .'3)ページ見出し' );
2.ダブルクォーテーションもエスケープ
現在のMODxのリンク属性のヘルプは「target=“_blank”」と全角のダブルクォーテーションが入っていますので、これをそのままコピペしても正しく動きません。
かといって、普通に「target="_blank"」と入れて変更しても
target="_blank"
と、HTMLエンコードされてしまいます。
ここは、JavaScriptのエスケープ文字を使って
target=\x22_blank\x22
とすればOKです。
「\x22」は「文字コードが22(16進)の文字」という意味になります。
ダブルクォーテーション「"」は、文字コード22(16進)なので、こうします。
3.PHPの設定情報も使える。
例えば、サイトURL($modx->config['site_url'])等、PHPの設定情報はそのまま使えます。
以下は、サイトURLとフレンドリーURLの接尾辞を使って、ドキュメントエイリアスのヘルプを具体的にした例です。
$site_url = $modx->config['site_url']; $friendly_url_suffix = $modx->config['friendly_url_suffix']; mm_changeFieldHelp('alias','ここで「abc」と入力すると、アドレスが「'.$site_url.'info/abc'.$friendly_url_suffix.'」になります。\n※アドレスが重複しないように注意してください。');