キーワード検索フォーム(全文検索フォーム)

a-blog cms でキーワード検索フォーム(キーワード検索は全文検索とも呼ばれます)を実装する方法を紹介します。

a-blog cms でキーワード検索フォームを実装するには、POST_2GET モジュールを利用して、keywordのURLコンテキストに検索したいキーワードを含んだURLのページに遷移するフォームのテンプレートを作成します。

そのため、検索結果のページのモジュールIDの設定には「キーワード(keyword)」の項目にチェックをつけ、URLコンテキストを優先させる必要があります。

以下、キーワード検索フォームのサンプルになります。 検索結果のページは、input type="hidden"name="tpl"を記述して、テンプレートを指定しています。

<form action="/search.html" method="post" name="searchForm" role="search" aria-label="検索フォーム">
    <input type="search" id="searchForm" name="keyword" value="%{KEYWORD}" size="15" class="search-form-input">
    <input type="hidden" name="query" value="keyword">
    <button type="submit" name="ACMS_POST_2GET" class="acms-btn btn-search">検索</button>
    <input type="hidden" name="tpl" value="/search.html">
    <input type="hidden" name="bid" value="%{BID}">
</form>

キーワード検索の仕様

a-blog cms が行うキーワード検索の仕様について説明します。

a-blog cms では、keywordのURLコンテキストに指定された文字列を利用してキーワード検索(全文検索)を行います。

キーワード指定方法について、いくつかオプションがあります。

複数キーワード検索

A B のように複数のキーワードを「スペース(空白文字)」でつなげることで、複数キーワードを含むページを検索することができます。

除外検索

A -B のように除外したいキーワードを「-」の後に指定することで、キーワードを除外したページを検索できます。

A -B -C のように、「スペース(空白文字)」でつなげること除外したいキーワードを複数指定することも可能です。

メンテナンス終了バージョンについて

いつもお世話になっております。 今回は a-blog cms のメンテナンスポリシーと現状のサポートバージョンについてお知らせいたします。

a-blog cms では、セマンティックバージョニング を採用しており、新しいマイナーバージョン(2桁目の数値)がリリースされた後でも、古いバージョンの不具合やセキュリティを修正したフィックスバージョンをリリースしています。

以下の表から、どのバージョンが現在(2024年05月時点)メンテナンスされているのか確認いただけます。



バージョン 最終バージョン マイナーバージョンリリース日 不具合修正(期限日) セキュリティ修正(期限日) 対応PHP
3.1 メンテナンス中 2023/09/14 2025/09/14 2027/09/14 7.3 - 8.3.x
3.0 セキュリティ修正のみ 2021/12/24 2023/12/24 2026/12/24 7.2.5 - 8.1.x
2.11 セキュリティ修正のみ 2019/12/17 2021/12/17
2022/12/17
2024/12/17 5.3.29 - 7.4.x
2.10 2.10.56 2019/02/28 2021/02/28 2024/02/28 5.3.3 - 7.3.x
2.9 2.9.45 2018/10/09 2020/10/09 2023/10/09 5.3.3 - 7.2.x
2.8 2.8.79 2018/03/26  2020/03/26  2023/03/26  5.3.3 - 7.2.x
2.7 2.7.34 2017/03/30 - - 5.3.3 - 7.0.x
2.6 2.6.1.4 2015/12/25 - - 5.3.3 - 5.6.x
2.5 2.5.1.3 2015/04/23 - - 5.3.3 - 5.5.x
2.1 2.1.1.4 2014/06/23 - - 5.3.3 - 5.4.x
2.0 2.0.1.1 2013/12/18 - - 5.3.3 - 5.3.x
1.7 1.7.0 2013/06/24 - - 5.3.3 - 5.3.x

メンテナンスポリシー

基本的には以下ポリシーに沿ってメンテナンス期間を設定しております。 例外はありますが、サポート期間が長くなることはあっても、短くなることはありません。

  • フィックスバージョンのリリース対応は Ver. 2.8 以上から
  • 不具合修正はマイナーバージョンリリース日から2年間行われます
  • セキュリティ修正はマイナーバージョンリリース日から5年間行われます
  • Ver. 2.11 の不具合修正期間は例外的に延長されています。(Ver. 3.0 のリリース期間が空いてしまったため)
  • PHP 7.4 対応については Ver. 2.11.15 以降のバージョンになります。
  • PHP 8.1 対応については Ver. 3.0.12 以降のバージョンになります。
  • PHP 8.2 及び PHP 8.3 対応については Ver. 3.1.14 以降のバージョンになります。

メンテナンス中のバージョン

* 2024年05月時点のものになります。

最新バージョンである「Ver. 3.1」は、不具合・セキュリティ修正ともにメンテナンス中になります。「Ver. 3.0」「Ver. 2.11」は、セキュリティ修正のみのメンテナンス中になります。

サポートを終了したバージョン

「Ver. 2.10」が「Ver. 2.10.56(2024/05/10リリース)」をもってセキュリティ修正を含めてサポート終了いたしました。

サポートを終了したバージョンであっても有償になってしまいますがパッチなどを作成することは可能ですのでお気軽にお問い合わせください。

情報確認

メンテナンスポリシーは、以下ページ(サポートページ)よりいつでも確認できるようになっております。

https://www.a-blogcms.jp/support/#maintenance-policy

サポート状況についてはこちらをご覧ください。

最後に

サポート終了バージョンをご利用の方はバージョンアップのご検討をお願いいたします。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。 今後ともどうぞよろしくお願いいたします。

テキスト入力にインラインエディターを使用する

すでにテキストユニットに導入されているインラインエディタですが、このインターフェースはカスタマイズ次第でブログやカテゴリー、エントリーなどのカスタムフィールドとしても利用可能です。ここではその方法について、登録側(管理画面)と表示側に分けてご紹介します。

管理画面の記述

以下が、インラインエディターが実装された、カスタムフィールドのサンプルHTMLになります。

<table class="acms-admin-table-admin-edit">
  <tr>
    <th>インラインエディター</th>
    <td>
      <textarea name="sample_text" class="js-lite-editor-field acms-admin-form-width-full">{sample_text}</textarea>
      <input type="hidden" name="field[]" value="sample_text" />
    </td>
  </tr>
</table>

表示側の記述

表示したいインラインエディターの変数がsample_textであった場合、以下のように記述します。エントリーのカスタムフィールドで作成した場合はEntry系モジュールのentry:loop内に記述してください。校正せず、そのままのデータを出力する校正オプション[raw]を記述してください。

{sample_text}[raw]

ボタンの位置、クラス名、ボタンのオプションの変更

テキストユニットで導入されているインラインエディターとはオプションの指定方法が異なります。
a-blog cms Ver.2.11.40 の時点で LiteEditorFieldConf の設定がデフォルトで空になっているため、カスタムフィールドでLiteEditorを使用する場合は適用しているテーマ内にJavaScriptファイルを別途作成して設定ください。
ACMS.Config.LiteEditorFieldConf.xxxという記述で設定を下記のように適用します。

ACMS.Ready(function(){
  ACMS.Config.LiteEditorFieldConf.btnPosition = 'bottom';
  ACMS.Config.LiteEditorFieldConf.classNames = {
    LiteEditor: 'entryFormLiteEditor',
    LiteEditorBtnGroup: 'acms-admin-btn-group acms-admin-btn-group-inline',
    LiteEditorBtn: 'acms-admin-btn',
    LiteEditorBtnActive: 'acms-admin-btn acms-admin-btn-active',
    LiteEditorBtnClose: '',
    LiteEditorTooltipInput: 'acms-admin-form-width-full'
  };
  ACMS.Config.LiteEditorFieldConf.btnOptions = [
   { label: 'リンク', tag: 'a', className: '', sampleText: 'リンクテキスト' },
   { label: '強調', tag: 'em', className: '', sampleText: ' ' },
   { label: '重要', tag: 'strong', className: '', sampleText: ' ' }
  ];
});

LiteEditorのデフォルトボタンをそのまま維持したい場合はbtnOptionsを下記のように指定します。

ACMS.Config.LiteEditorFieldConf.btnOptions = [
  { label: '<span class="lite-editor-font-back"></span>', action: 'undo', group: 'action' },
  { label: '<span class="lite-editor-font-go"></span>', action: 'redo', group: 'action' },
  { label: '<span class="lite-editor-font-link"></span>', tag: 'a', className: '', group: 'mark' },
  { label: '<span class="lite-editor-font-bold"></span>', tag: 'strong', className: '', group: 'mark' },
  { label: '<span class="lite-editor-font-italic"></span>', tag: 'i', className: '', group: 'mark' },
  { label: '<span class="lite-editor-font-underline"></span>', tag: 'u', className: '', group: 'mark' }
];

a-blog cms Ver. 3.2.0 で予定している機能追加や機能改善について(ロードマップ)

Roadmap Ver. 3.2

いつもお世話になっております。

a-blog cms では、より使いやすいプロダクトを目指して日々改善を行っています。
今回は次期マイナーバージョンである、a-blog cms Ver. 3.2.0 で予定している機能追加や機能改善をまとめてご紹介します!

実際のリリースされた製品では内容や機能が違っている可能性がございます。

新機能

Ver. 3.2 で予定している新機能についてです。全く新しい機能というわけではなく既存機能を改善・より便利にする機能追加となります。

エントリー編集画面の改善

一番よく使用するエントリーの編集画面について以下改善を予定しております。より簡単・便利にエントリー編集ができるようになります。

  • デフォルトのテキストユニットを、よりリッチで使い易いエディタに改修(メディア挿入・簡易的なwysiwyg機能)
  • ユニットグループ機能改善(グループ化できる専用ユニットの用意)
  • ユニットの複製機能を追加
  • UI調整(全体的にボタンが多いのでシンプル化)

アップデート自動化

フィックスバージョンに限り、自動でアップデートを行うオプションを用意いたします。 これにより、CMSアップデートの手間が少なくなり運用コストを削減できます。

Movable Type形式 or WordPress形式でのエクスポート機能

現状以下の形式のものをa-blog cmsにインポートできるようになっていますが、逆にエクスポートする機能は用意されていませんでした。

  • CSVインポート
  • Movable Type形式のインポート
  • WordPress形式のインポート

この状況はもし他のCMSに乗り換える場合の出口として選択肢がなく、お客様にとっても不安材料になるため、Movable Type形式かWordPress形式のエクスポート機能を用意することになりました。まだ形式は決定していませんが、例えば Movable Type形式でエクスポートできれば、WordPressにもインポートはできるので、柔軟なエクスポート形式を検討したいと思います。

開発者向け新規テーマの追加

新しい開発者向けの新規テーマを追加予定です。既存の「develop」テーマを改良する形を予定しております。 新しいテーマの技術スタックは以下のものを予定しております。

  • Vite(ビルドツール)
  • Tailwind CSS(CSSフレームワーク)
  • Alpine.js(軽量フロントエンドフレームワーク)
  • HTMX(インタラクティブUIを実現するJavaScriptライブラリ)

また「develop」テーマと違い、標準の状態でトップ、一覧、詳細ページのテンプレートを用意したいと思います。

機能改善

Ver. 3.2.0 では日々ユーザーの皆様からいただくご意見をもとに、いくつか現状の機能の改善を予定しています。

一覧系管理画面の改善

開発・運用でよく使用する一覧系管理画面について、よりリッチなUIで操作できるような改善を予定しております。

現状の問題点

  • 操作数が多い
  • ボタンが多くわかりずらい
  • 一覧から詳細に移動したあと、元に戻ると絞り込みが外れてしまう
  • 検索しずらい

対応予定ページ

  • モジュール一覧
  • エントリー一覧
  • カテゴリー一覧

カスタムユニットのデータがシリアライズされていてる問題の修正

現状カスタムユニットのデータをシリアライズして保存しているため「一括テキスト置換」に対応できていないなどの弊害があります。 これを通常のカスタムフィールドと同じ形式で保存するようにし、一括でテキスト置換ができるよう改善いたします。

WebPアップロード対応

現状は、次世代画像フォーマットの「WebP」画像の生成には対応していますが、「WebP」画像のアップロードには対応していません。 昨今「WebP」の普及からブラウザから画像をダウンロードすると「WebP」画像になっていてアップロードできないということも増えてきたため「WebP」画像のアップロードに対応したいと思います。

その他の機能改善

  • カスタムフィールドメーカー出力でtable以外のスタイル対応
  • 利用頻度の低いモジュールの非推奨化
  • コンバーターの拡張機能の追加
  • 会員一覧に最終セッション時間を表示できるように改善

リリース時期

2024年秋・冬にベータ版を用意、2025年初頭にはリリースしたいと考えております。

まとめ

次期マイナーバージョンである、a-blog cms Ver. 3.2.0 で予定している機能追加や機能改善についての情報をお届けいたしました。ユーザーの皆様に喜んでいただける CMS を目指して企画・開発を続けてまいりますので楽しみに待っていただけると幸いです。

ご意見・ご要望は Discordコミュニティ公式ツイッター からお気軽にご連絡ください!
引き続き a-blog cms をよろしくお願いいたします!