2018年01月05日
PowerCMSカスタマイズ事例「検索サジェスト機能」
PowerCMS は豊富な機能を提供していますが、お客様のご利用シーンによっては足りない機能があります。弊社では製品の仕様と回答せず、カスタマイズの対応でご希望にお応えできると伝えています。
カスタマイズ事例
参考までに、私が担当したカスタマイズの事例を掲載します。
- 会員機能でログインした後に「閲覧履歴・お気に入り・検索結果の保存」を表示する。
- 会員機能で予め登録してある IP アドレスはログイン不要にする。
- 会員機能で PowerCMS のユーザー管理機能は利用せず、基幹システムのユーザー情報を参照する。
- 同期機能で公開サーバーへ ZIP データを送らずに、そのままファイル単位で送信する。
- ライター権限でも記事のベースネームを設定できるようにする。
- 現在地を取得して、周辺の店舗を表示させる。(Google マップ連携)
- 外部サーバーにある画像ファイルを参照し、PowerCMS へアイテムとして自動登録する。
上記の事例はごく一部で、多くのカスタマイズをご提供しています。
発注から納品までの流れ
カスタマイズの発注から納品までの流れは以下になります。
- 発注
- PowerCMS カスタマイズ作業を実施
- 弊社サーバーでテストを実施
- データ納品(基本的にはプラグインデータを納品します)
- お客様がご利用中の環境で動作確認(問題があればフィードバック対応します)
- 最終納品
発注の前に対面での打ち合わせを行うケースもあります。また、ドキュメント(仕様書、運用マニュアルなど)が必要な場合は作成もしております。ご希望の機能が見つからない場合はお気軽にお問い合わせください。
PowerCMS カスタマイズ:検索サジェスト機能
PowerCMS はサイト内検索フィールドにサジェスト機能(検索ワードの予測表示機能)がありません。お客様からいただいたご要望により実現したカスタマイズの事例を掲載します。
サジェスト機能の仕様
以下に PowerCMS 側と HTML 表示側の仕様を記載します。
PowerCMS側
- 記事本文から自動でサジェスト用の語句をカスタムフィールドに格納する。わかち書きは MeCab の技術を利用する。
- サジェスト用カスタムフィールドは記事・ウェブページに対応する。
- サジェスト用カスタムフィールドに格納したデータは JSON で出力する。
- JSON を返す PHP スクリプトを実装する。その PHP を JavaScript で呼び出せるようにする。
- ブログ単位で生成するテンプレートに実装する。
- 複数ブログにまたがって呼び出すことを考慮する。
HTML表示側
- 検索入力欄にサジェスト機能を実装する。候補の表示は JavaScript を利用する。
- 候補の表示上限数を設定できるようにする。
ユーザー辞書
本文欄から自動で語句を作成するため、希望通りに処理されない場合があります。そのため個別に登録できるユーザー辞書の仕組みを実装する必要があり、具体的には以下になります。
- 本文欄のテキスト
- コンテンツ管理システム
- サジェスト用カスタムフィールドのテキスト
- こんてんつ,コンテンツ
- かんり,管理
- しすてむ,システム
この場合「こん」で検索フィールドに入力すると、候補は「コンテンツ」が表示されます。本当は「コンテンツ管理システム」で表示させたいので、ユーザー辞書に登録して候補が正しく表示されるようにします。
- ユーザー辞書
- こんてんつかんりしすてむ,コンテンツ管理システム
この登録をすることで正常に表示させます。
このユーザー辞書は CSV でデータを用意して、FTP により所定のディレクトリにアップロードし、PowerCMS のバッチツールにより反映をします。
作成済みの記事・ウェブページについて
既に登録済みの記事・ウェブページのデータにもサジェスト用カスタムフィールドに反映をさせたいので、一括処理できるバッチツールを提供します。
必要モジュール
以下のソフトウェアとライブラリ、Perl モジュールをサーバーにインストールする必要があります。
- libiconv
- gcc-c++
- mecab
- mecab-ipadic
- Text::MeCab
- Text::Shirasu
さいごに
PowerCMS のカスタマイズはお客様から実現したいことをヒアリングして、弊社が仕様を考え実装をしていきます。簡単なものから複雑なものまで多々ありますが、御見積は無料ですのでカスタマイズしたい内容のイメージがございましたら、お気軽にお問い合わせください。
- カテゴリー
- PowerCMS 4
- PowerCMS 5
- 技術情報
コメントを投稿する