ページ 11

ログイン後のテキストボックス側に入力文字数を出したい

Posted: 2019年11月19日(火) 19:57
by modx_beginner
お世話になります。
MODX利用して間もない者です。

もともとワードプレスを利用していた便利だと思った機能に
テキストボックスのそばに「入力文字数」を出力されていました。

modxでは同様の機能はありますでしょうか。
また何かプラグインなどがあるのでしょうか。

宜しくお願い致します。

[環境]
エックスサーバー
1.0.20J
PHP Version 7.1.18

ログイン後のテキストボックス側に入力文字数を出したい  【解決済み】

Posted: 2020年2月20日(木) 03:28
by mod_kks
投稿から随分時間が経ってしまったようなので、ご覧になっているかどうかわかりませんが、MODxならではの比較的簡単な方法を一つ。

tinymceのプラグインにwordcountというものがあり、tinymceを使うCMSで文字数カウントがあるものはたいていこのプラグインによるものだと思います。tinymceバージョン3系はwordcountプラグインもあるにはあるのですが、文字通り単語を数えるもののようで、思ったものとは違う感じになると思います。また、カスタムプラグインやボタン設定の読み込みがイマイチなので、プラグイン追加ではなくカスタムパラメタを使ったMODxならではの手抜きで力技な方法を紹介してみます。

エレメント管理→プラグイン→tinymceと進み、設定タブ内の「Custom Parameters」の中に以下を差し込みます。

コード: 全て選択

setupcontent_callback: function(editor_id, body, doc){
  tid = editor_id + '-word-count'
  wid = this.getParam('wordcount_target_id')
  if (!wid) {
    row = tinymce.DOM.get(editor_id + '_path_row')
    if (row) {
      tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'},
      '文字数 ' + '<span id="' + tid + '">0</span>')
    }
  } else {
    tinymce.DOM.add(wid, 'span', {}, '<span id="' + tid + '">0</span>')
  }
  this.onLoad.add(function(ed) {
    tid = ed.id + '-word-count'
    tc = ed.getContent({ format: 'text' }).replace(/\s/g, '').length
    tinymce.DOM.setHTML(tid, tc.toString())
  })
  this.onKeyUp.add(function(ed, e) {
    tid = ed.id + '-word-count'
    tc = ed.getContent({ format: 'text' }).replace(/\s/g, '').length
    tinymce.DOM.setHTML(tid, tc.toString())
  })
}
こんな感じで放り込むと、wordcountプラグインと同じ所に、なんちゃって文字数カウンターらしきモノが出ます。
ここの設定でsyntaxエラーなものを放り込むとtinymceが動かなくなるので注意が必要ですが、その場合は一旦「Custom Parameters」を空にすると元に戻ります。

ログイン後のテキストボックス側に入力文字数を出したい

Posted: 2020年7月09日(木) 13:49
by modx_beginner
ご確認いただきありがとうございました。早速試してみたく思います。