このサイトの運営で利用しているSOY CMSというシステムでは、

ブログは作れても、記事の検索機能は標準機能でついていない。


記事の扱いが柔軟な故に検索機能を付けることが難しくなっている。


と言っても、

検索機能を絶対に付けることができないか?

といえばそうでなくて、


スクリプトモジュールブロックという機能を使えば検索結果ページを実装することは可能となる。




スクリプトモジュールブロックとは、他のブロックでは実現できない記事のグループを生成するためのブロックで、

たとえば、記事の中にhogeという文字列がある記事だけを集めて表示ということができる。


で、このスクリプトモジュールブロックは標準では使うことができず、

はじめにuser.config.phpでスクリプトモジュールを許可する必要がある。


root
├── common
│   ├── config
│   │   ├── db
│   │   │   ├── mysql.sample.php
│   │   │   └── sqlite.php
│   │   ├── normal.php
│   │   ├── php.config.php
│   │   ├── user.config.php.sample
│   │   └── user.config.php.sample.en

上記の箇所にあるuser.config.php.sampleをコピーして、


root
├── common
│   ├── config
│   │   ├── db
│   │   │   ├── mysql.sample.php
│   │   │   └── sqlite.php
│   │   ├── normal.php
│   │   ├── php.config.php
│   │   ├── user.config.php
│   │   ├── user.config.php.sample
│   │   └── user.config.php.sample.en

user.config.phpというファイルを同じ階層に置く。




続いて、このuser.config.phpを開き、20行目付近の


define("SOYCMS_BLOCK_LIST","EntryBlockComponent,LabeledBlockComponent,MultiLabelBlockComponent,SiteLabeledBlockComponent");
/* 使用可能なブロックのリスト
 * HTMLBlockComponent
 * EntryBlockComponent
 * LabeledBlockComponent
 * MultiLabelBlockComponent
 * SiteLabeledBlockComponent
 * ScriptModuleBlockComponent (1.2.3以降) 
 */

のdefineのところの値の末尾に


define("SOYCMS_BLOCK_LIST","EntryBlockComponent,LabeledBlockComponent,MultiLabelBlockComponent,SiteLabeledBlockComponent,ScriptModuleBlockComponent");

ScriptModuleBlockComponentを加える。

これでスクリプトモジュールブロックは使える様になった。


説明が長くなったので、

続きは次以降の記事にする。


次の記事

検索フォームと検索結果ページを作ってみた2