#concreat5の個人的なメモ
concreat5を勉強していて、忘れないための個人的なメモです。
Wordpressでやってたことをconcreat5ならどうしているか?という内容が多いかも。
concreat5→c5
Wordpress→wp
と略します。
##テーマの作り方
wpと同様テーマの概念がある。
/application/themes/
に作る方法と,
パッケージ(wpのプラグインみたいなもの)
の中のテーマフォルダに作る方法がある。
/packages/cloneamental/themes/
packagesに作るほうが、後の事を楽な気がします。
デフォルトの制作パッケージを作ってそれをベースに作るのがいいです。
https://github.com/concrete5japan/sakan
こちらのものをベースに初期のテンプレートを作成するといいと思います。
##ブロックという概念がある
bootstrapでいうとことのコンポーネントをまとめたような、ブロックという概念がある。
これは説明しにくいので実際に触って使えば理解できると思う。
このブロックをベーズに作成します。
wpのようにタイトルとか日時とかをphpで書けるけど、そういったものもブロックで追加をします。
##オーバーライド(上書き)の概念がある
/concrete/
/application/
の2つを使用して作っていきます。こちらはほぼ同じディレクトリの構成になっています。
/concrete/にコアなファイルがあるので、こちらは変更しないようにします。
変更したい場合は/concrete/の変更したい場所を/application/の同じディレクトリに作成します。
そしてその複製したファイルを変更すると、それが反映されます。
##ブロックの変更(オーバーライド)
ブロックはデフォルトで用意されていますが、htmlが固定なのでそのままではなかなか使用しにくいです。
なのでブロックをこちらでオーバーライドします。
/application/block/
に任意のブロックのview.phpを複製します。
/application/block/ブロック名/view.php
のような感じです。
で、そのview.phpを変更するとその内容が反映されます。
ただしそれでは1種類のブロックに対して、1個しかカスタマイズできません。
そのためにカスタムテンプレートが用意されています。
/application/block/ブロック名/templates/任意のファイル名.php
を追加して、ブロックを配置後にそのテンプレートを適用します。
そうするのそのテンプレートで反映されます。
このカスタマイズができれば、簡単なサイトなら作れると思います。
##スタック
スタックは共通で使えるブロックです。
スタックを管理できる場所があり、そこにブロックを配置しておき、スタックを作成します。
それを任意の場所に配置を行います。
ヘッダーやフッターのようにphp側の記述で全体の共通部分に出力できるのと何が違うのか?ということですが、説明します。
スタックの場合は任意の場所に配置できます。
どこの場所に入れるかわからないけど、全体で同じ内容のブロックを使いたいという場合に便利です。
ヘッダーやフッターのように全体に入れる場合は、表示したく無い場所では条件分岐をしないといけないし、複数使用することやページの途中に入れることも難しいです。スタックあればそれがドラッグ&ドロップで好きな場所に配置できるので非常に便利です。
しかも内容を修正する場合も1度に変更できるのでかなり便利です。
wpでもできますがphpを記述したり、固定ページの場合で表示する場合に色々大変だったります。
##ブロックのエリアの指定
下記ののようにするとブロックの配置ができます。
$a = new Area('【エリア名】');
$a->display($c);
?>
共通で配置したい場合は
$a = new GlobalArea('【グローバルエリア名】');
$a->display($c);
?>
##デフォルトでブロックを配置しておく
新規のページを追加した場合にあるページのタイプでは、デフォルトでブロックを配置しておきたい場合もあります。
その場合は
ページとテーマ→ページタイプ
までいってから
任意のページタイプの『出力』をクリックします。
そのページに使用するテンプレートのデフォルトを編集をクリックします。
その後普通の編集画面になるので、そこに任意のブロックを配置しておくと、デフォルトのブロックを反映することができます。
コンポーザーのから投稿を設定する方法は、コンポーザーのブロックをドラッグ&ドロップして、そのエリアにブロックを配置します。
コンポーザーの説明はまた今度書く。