ブロックの解剖学

concrete5 ではブロックはディレクトリにまとめられたファイルの集まりです。ブロックをインストールすることで concrete5 はブロックがそこに存在し使用可能なことを知ります。

位置

  • コア concrete5 ブロックの位置は concrete/blocks/
  • マーケットプレイスから入手したブロックか、またはカスタムパッケージのブロックの位置は packages/the_package_handle/blocks
  • カスタムブロックタイプ(このチュートリアルで解説)の位置は application/blocks

ハンドル

concrete5 の他のものと同様、ブロックタイプはハンドルを持ちます。これは小文字のみで、スペースを使用することはできません。例えば "content", "youtube", "page_title" など…

もし "Hello World!" ブロックを開発したい場合、ハンドルは "hello_world" になり、その位置は application/blocks/hello_world/ になるでしょう。

ブロックのディレクトリの内容

view.php

必須。このファイルは、concrete5 がページ内にブロックを表示する際のテンプレートです。

add.php

オプション。このファイルは concrete5 でブロックを追加する際に表示されるテンプレートです。主にこのファイルはダイアログウィンドウとして表示されます。このファイルがない場合、ブロックはページにドラッグされた瞬間に保存され追加されます。

edit.php

オプション。このファイルは concrete5 でブロックを編集する際に表示されるテンプレートです。

controller.php

必須。このファイルはこのブロックタイプ自身の名前や説明、ダイアログウィンドウのサイズなどの基本情報を格納したPHPクラスです。また、他のメソッドはこのブロックがデータをどのように保存し、add / edit / view テンプレートにデータを渡すかを定義します。

db.xml

このブロックは、データベースにデータを保存するブロックでは必須です。つまり、ほとんどのブロックでは必要です。このファイルはXML形式でデータベース定義を表しています。詳細は db.xml in the Doctrine XML Format を参照してください。

auto.js

オプション。このファイルが存在する際、ブロックを追加/編集する際に自動的に読み込まれます(注意:ページが読み込まれる際に1度だけ読み込まれます)。このブロックの編集インターフェースで必要なJavascriptを実行させるのに便利です。

icon.png

オプションですが、作成することを強く推奨します。この画像は concrete5 のブロック一覧で表示されます。このアイコンは正方形で、50x50 px以上である必要があります。

templates/

オプション。このディレクトリにあるファイルは、このブロックのカスタムテンプレートになります。例えば、オートナビブロック

scrapbook.php

オプション。このファイルは、スクラップブックの一覧に表示されるコンテンツとして、view.php の代わりに使われます。ブロックが複雑なJavascriptやマルチメディアコンテンツを含む場合に便利です。

composer.php

オプションですが、作成を推奨します。add/edit インターフェースの組み合わせで、コンポーザーでブロックタイプを表示させるために必要です。

原文:Anatomy of a Block