📃

【Drupal】文字数カウンター導入

2023/12/08に公開

フォームのテキストエリア項目に、「文字数のカウンター機能をつけたい。」「最大文字数の制限をかけたい。」ということありますよね。
もちろん、JavaScriptでの実装やライブラリの導入で実現ができそうですが、コントリビュートモジュールで便利なものがあったので共有します。

そもそも...最大文字数って制限できないっけ?

通常のテキストフィールドであれば、MaxLengthの設定で設定を行うことが可能です。

しかし、テキストフォーマットだと Drupal 標準の機能のみでは最大文字数を設定することができません。

テキストフォーマットとテキストフィールドの違いを簡単に...

実装

実装といっても、モジュールを導入するのみです。
今回、利用するモジュールはMaxLength。
https://www.drupal.org/project/maxlength

実装手順

導入の手順をいっしょにやっていきましょうか。

1. モジュールのインストール・有効化

プロジェクトのディレクトリがある場所で、以下のコマンドを走らせます。(インストール

composer require 'drupal/maxlength:^2.1'

「管理メニュー」 > 「機能拡張」から MaxLength モジュールにチェックを入れて、画面下部の「インストール」ボタンを押下します。(有効化

※ Drush を導入しているプロジェクトではdrush en maxlengthを利用。

2. Form の設定

既に、テキストフィールド・テキストフォーマットのどちらかが追加されていることが前提です。
「フォームの表示管理」にて、該当のフィールドの設定を行います。
モジュールを有効にしていると、「MaxLength Settings」の設定項目が出現します。

設定項目
最大長

最大文字数を設定できます。

Count down message

@limit@remaining@countを利用することで文字数カウンターや残りの入力文字をカウントしてくれます。
入力例

<strong>@count / @limit</strong>

保存すれば構築は完了です。

動作確認

それでは、挙動を確認してみましょう。
投稿画面で実際に入力してみます。

ちゃんと文字数の制御ができているし、文字数カウンターもいい感じですね。
(ちょっと、Gif画像ではスムーズじゃないんですけどほんとはもっとさくさくです)

Discussion