SOY CMSを使ってみよう！
其の①

特徴・用語解説編

Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

SOY CMSってどんなCMS?
また、管理権限毎に管理画面のデザインが異なっており、エントリーのみの管理画面は非常にシンプルになっているため、WEBシステムの利用に不慣れな方でも運営にご参加いただきやすいようになっています。

SOY CMSの特徴
SOY CMSの特徴をまとめると、サイトの構造が非常に柔軟なCMS
テンプレート記法がとても簡単なCMS
WEBシステムの利用に不慣れな方も運用に参加していただけるCMS

エントリー管理者用のシンプルな管理画面ということになると思います。
第一の点については、多くのブログ型のCMSと違い、ページとコンテンツが完全に分離されていて好きなコンテンツを好きなページの好きな場所に自由に表示させられるため、サイトの構造が非常に柔軟に設計できます。
第二の点については、テンプレートのHTMLの中で書き換えたいところをSOY CMSを使うのに必要な知識
このように、SOY CMSは「わかりやすさ」「使いやすさ」を大切にした汎用CMSなのですが、いくつか理解しておかなければならない概念がありますので、本資料では特徴的な下記の用語をベースに、順を追って説明していきます。

<ul><!-- block:id=”news” --><li cms:id=”title”>タイトル</li><!-- /block:id=”news” --></ul>という風にすれば、ブロック（block:idのついたタグもしくはコメントタグに囲まれた範囲）の中でcms:idが書き加えられたタグにはさまれた部分（ここでは「タイトル」）が書き換わるという、デザイナーの方にとっては非常になじみやすい仕様になっています。

サイトページ
エントリーとラベル
ブロック

第三の点については、SOY CMSは管理者毎に権限レベルを設定できて、サイト全体の管理を行える管理者から、投稿される記事（エントリー）の編集だけ行える管理者、またエントリーの投稿は行えても公開することはできない管理者を作ることができるため、柔軟な運用が可能です。
Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

SOY CMSを使うのに必要な知識① サイト
SOY CMSは「マルチサイト・マルチ管理者」のシステムです。ひとつのサーバにインストールすることで、（サーバの設定にもよりますが）複数のサイトを作成することができ、複数の管理者をそれぞれサイトに割り当てることができます。

インストール
まずはインストールから説明しましょう。SOY CMSはApacheのドキュメ
ントルート以下の任意の場所に設置します。詳しい手順はサーバごとに異なる部分もありますので別資料に譲りますが、インストールが完了すると下記のような状態になります。
/■■■/■■■/SOY CMSをここにインストール
soycmsadmin
commonlicenceapp■■■・・・Apacheのドキュメントルート■■■・・・好きなディレクトリ（階層はいくつでもＯＫ）この状態から下記にアクセスすると、初期化の設定を行えます。
http://設定したドメイン/■■■/admin

SOY CMSでは、サイトを作るたびにドキュメントルート直下にディレクトリを作成します。たとえば、SiteAというIDでサイトを作成したとすると、/■■■/SiteA/というディレクトリが作成され、その中にいくつかのファイルとディレクトリが作成されます。サイト公開時、アクセスがあった場合はこのディレクトリ・ファイルが表示されることになります（SOY CMSはHTMLの動的生成を行うCMSです。なので、作成されるのはHTMLファイルではなく、HTMLを生成するPHPファイルや情報の材料となるものです）。
管理のイメージ/■■■/■■■/(SOY CMS本体のプログラム)/■■■/SiteA//■■■/SiteB//■■■/SiteC/

先に設置した本体プログラムの管理画面から、それぞれのサイトの情報を管理します。

SOY CMSはこのような構造をしています。サイトAにはhttp://設定したドメイン/SiteA/でアクセスすることになりますが、作成したサイトのうちひとつだけは「サイト一覧」から「ルートサイト設定」を行うことでhttp://設定したドメイン/

サイト
SOY CMSでは、「サイト」という単位をまず作成します。これは、管理者の権限が及ぶひとかたまりの情報で、Webページやコンテンツの入れ物だとお考え下さい。インストール、初期化が完了した後はまず第一に「サイト」を作らなければなりません。「サイト」作成には1サイトあたりひとつのデータベースを必要としますので、権限にはご注意下さい。SQLite版でしたら何も気にすることはありません。

でアクセスできるようになります。

管理者
SOY CMSでは管理者を複数作成することができます。そして、それぞれの管理者に対してサイト毎に権限の有無、権限がある場合その権限レベルを設定することができます。

Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

SOY CMSを使うのに必要な知識② ページ
SOY CMSでは、サイトの管理を「ページ」と「エントリー」という二つの単位で行います。まずは「ページ」からみていきましょう。

「ページ」とは？
HTMLファイルだけでサイトを作る場合をイメージしてください。ブラウ
ザであるURLにアクセスすると、そこに置いてあるHTMLファイルが表示されます。SOY CMSの「ページ」はそれと同じように、あるURLにアクセスがあったときに表示するHTMLを設定するものです。

「標準ページ」と「ブログページ」

HTMLファイルが用意できているなら、そのファイルをサーバにアップロードするのと、「標準ページ」を作って同じURLを設定して、テンプレートにそのHTMLを丸ごと貼り付けるのとでは同じ結果が得られます。
ただ違うのは、後で説明する「エントリー」を自由にはめ込んだり、期限を決めてページを公開したりといった様々なことができるということです。
ブログページ「ブログページ」は「エントリー」が投稿されたり削除されたりするのに合わせて、一定のルールに従ってURLとHTMLのセットも自動的に増減するものです。
URL等の設定は標準ページと同じです。
ブログページの場合、ここの設定に続いて下の設定の通りURLが生成されることに注意してください。

「ページ」にはいくつか種類がありますが、よく使うのは「標準ページ」と「ブログページ」です。この二種類だけで、大抵のサイトは表現できるので、最初は他の種類のページのことは忘れてください。

どの「ラベル」がついたエントリーがその「ブログページ」のエントリーなのか設定します

標準ページ「標準ページ」は、ひとつのURLに対してどのようなHTMLが表示されるか設定するものです。
URLを設定します。***/index.htmlなども可能です。ディレクトリ階層とファイル名は区別無く、あわせて一意の文字列であれば結構です。トップページ（サイトのルート直下のページ）は空欄にしてください。
テンプレートを設定します。HTMLを貼り付けるだけでもとりあえずは動作します。

ページの生成設定を行います
名前の通りブログをイメージしてもらうのが分りやすいと思うのですが、ブログを書くとき記事が投稿されればトップページやカテゴリーのページが更新されて、記事ごとのページが生成されますよね？それと同じです。ブログの他にも、同じように記事に合わせて自動的に増減するページ、たとえばカタログの商品ページなどにも使用できます。
ブログページでは、テンプレートは➔トップページ➔
アーカイブページ（カテゴリー別、月別）➔
エントリーページの三種類を設定します。

Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

SOY CMSを使うのに必要な知識③ エントリーとラベル「エントリー」とは？
「エントリー」とは、タイトル、本文、追記、作成日をひとセットにした情報の単位で、「ページ」からは完全に独立した「生のコンテンツ」とお考えください（プラグインを使えば自由にカスタムフィールドを追加することができます）。一般的なブログ型CMSとはちょっと違うところなので注意してくださいね。SOY CMSでは、後で説明する「ブロック」を設定することで、サイト内のどのページのどの部分にでも好きなところに自由に「エントリー」を表示することができます。

このように、「エントリー」の使い方は様々ですが、色々な使われ方をしているエントリーが混ざってしまうと、管理が大変になってしまいます。そこで使用するのが「ラベル」です。

「ラベル」とは？
「ラベル」は「エントリー」を整理するために使います。たとえば新着情報に使いたいエントリーに、「新着情報ラベル」をつけるといった具合です。ラベルは自由に作ることができ、また、ひとつのエントリーにラベルはいくつでも貼ることができます。新着情報でかつ商品の情報であるとか、新着情報でかつイベント情報である、なんて場合は両方のラベルを貼ることになります。

サイト
新着情報ラベル
エントリーページ

イベント情報ラベルですので、HTMLの中からエントリー

新着情報など、更新頻度が高いコンテンツ
蓄積されていくコンテンツ
複数のページにまたがって表示されるコンテンツ

エントリーの管理画面では、まずラベルを選択するようになっています
ので、使い方の違うエントリーはまったく別のものとして管理できます。エントリーの並び順もラベルごとに設定できます。

をエントリーとして切り出して設定することで、サイトの管理が非常に楽になります。特に三番目の、複数のページにまたがって表示されるコンテンツをうまくエントリー化しておけば、高度な管理が可能になります。たとえば新着情報のエントリーを作成することで、サイトのトップページの新着情報欄を更新しつつ、同時にその情報の詳細が書かれたページを作成し、リンクも自動的に生成するといった運用ができます。
また、ページのヘッダーやフッターといったサイト全体（もしくは一部）で共通のパーツもエントリー化しておくと便利です。メニューのリンクを書き換えたり、デザインを入れ替えたりといったことがそのエントリーを編集するだけでできるようになります。
Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

ラベルで絞込み

SOY CMSを使うのに必要な知識④ ブロック
では、今度は「ページ」に「エントリー」をどうやって埋め込んでいくのか説明しましょう。それには、「ブロック」というものを使います。

「ブロック」とは？
「ブロック」とは、「ページ」のテンプレートのHTMLのなかで、どこをエントリーを用いた書き換えの対象とするか決めるものです。
<h1>新着情報</h1><ul><li>新商品を発売</li><li>説明会を開催</li><li>説明会を開催</li></ul>

元のHTML
テンプレートの中でこの部分をエントリーで書き換えできるようにしたい場合を説明します<!-- block:id=”**”-->と<!-- /block:id=”**”-->で囲まれた部分が「ブロック」として認識され、はめ込まれるエントリーの数だけ同じ部分に「ブロック」の部分のHTMLが繰り返し表示されます。また繰返しの度に属性cms:id=”###”が記入されたタグの中身がエントリーの情報に書き換えられます（<li cms:id=”title”>この部分</li>）。cms:idが”title”ならタイトル、”content”なら本文、”more”なら追記、”create_date”なら作成日に書き換えられます(create_dateの場
合、cms:formatという属性で書式を設定します)。block:idは任意に設定してください。
テンプレートにブロックを記入し終わったら今度は「ブロック」タブをクリックして、どのような動作をさせるか設定します。「ブロック」の種類は色々ありますが良く使うのはなんといっても「ラベル表示用ブロック」です。他のブロックの事は一旦忘れてもらって大丈夫です。

SOY CMSの<h1>新着情報</h1>
テンプレート<ul><!-- block:id=”news”--><li cms:id=”title”>新商品を発売</li><!-- /block:id=”news”-->
ブロックを設定したいとこ<!-- cms:ignore -->ろに、block:idとcms:idを<li>説明会を開催</li>記入します。
<li>説明会を開催</li>
表示したくないところを<!-- /cms:ignore -->cms:ignoreで囲います</ul>表示されるHTML<h1>新着情報</h1><ul><li>エントリーのタイトル１</li><li>エントリーのタイトル２</li></ul>

このように、エントリーの情報で書き換えが行われます。block:idのコメントタ
グは表示されません

ラベル表示用ブロック「ラベルブロック」は、ある「ラベル」がついたエントリーを設定した数だけ表示するブロックです。たとえば新着情報の3件目から5件目を表示すると設定すると、新着情報ラベルのついたエントリーの設定した並び順か新しい順で3件目から5件目（そのようなエントリーが4件しか無ければ4件目）まで表示されます。

Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.

終わりにここまでで、SOY CMSをお使いいただくのに必要最低限の概念に関する説明は終了です。これだけでも、今までHTMLファイルで運用していたサイトに新着情報の更新のためだけに導入する、なんてことは十分にできると思います。しかし、SOY CMSにはまだまだ便利な機能がたくさんあります。

ブログページを使いこなそう
ブログページは、先にもご説明したとおりブログの他にも「コンテンツが増えていくのに従ってページも増えていく」ようなページの作成に利用することができます。また、今回説明したblockの他に、ブログページでだけ使える「b_block」というものがあります。これはたとえば新着のコメントを表示したり、「次の記事へ」リンクを生成したりといった、1ページ1URLの標準ページでは使うことの無い機能を呼び出せるようにしたものです。もちろん、b_blockもブログ以外の用途に使うことが可能です。たとえば、あるページのコンテンツ量が多くなって二ページに分けたいなんて場合は、ブログページを使用することでb_blockが活用でき、いちいち複数のページを作らなくても、コンテンツを複数のエントリーに分けて投稿するだけで「前へ」「次へ」といったリンクが自動的に生成されるようにできます。

プラグイン/Appを利用しよう
拡張性に優れているのもSOY CMSの特徴です。エントリーにフィールドを追加するカスタムフィールドプラグインの他いくつかのプラグインは最初からCMSに同梱していますが、それ以外にもフォーラムで配布を行ったりしています。また、プラグインで作るには少し大きな機能については半独立の連携アプリケーション「SOY App」という仕組みを搭載しています。これにより、お問合せフォームの管理やメール配信、ECといった様々な機能を実現しています。

ブラウザや編集ツールと連携させよう
ブロックの段で説明したとおり、SOY CMSのテンプレートは「ほとんどそのままHTML」です。なので、下記のような優れたメリットがあります。
HTMLが読み書きできれば理解するのが容易です。
HTMLで表現できるデザインならどんなものでも非常に簡単にテンプレート化することができます。
テンプレートに加工した後でも各種ブラウザやHTML編集ツールで開くことができます。
テンプレートにアタリ文字（デザインのために仮に入れておく文字）を残しておけるので、後々のデザイン変更が非常に楽です。

より詳しい活用例や、今回説明し切れなかった機能については、「SOYCMSを使ってみよう！其の② コンパクトな企業サイトを作ってみる、編」以降で具体例を交えてご紹介いたしますので、そちらもご覧ください。
お問合せ先
株式会社日本情報化農業研究所
http://www.soycms.net/
http://www.soycms.org/
http://app.soycms.net/
soycms＠soycms.net

Copyright © 2007-2009, Nippon Institute of Agroinformatics Ltd.