はじめに
concrete5 のテーマが動く、最少のファイルを作ってみます。
更新履歴
2016.02.05-1
$a->display();
を $a->display($c);
に変更しました。$c
は、表示するページのオブジェクトです。
Loader::element('footer_required');
が、</body>
直前になってなかった。
2016.02.05-2
$a->display($c);
を $a->display();
に戻しました。5.7 からは省略可能になったようです。
テーマファイルの置き場所
/application/themes/
themes (シームスと読むそうです)フォルダ以下に、作りたいテーマの名前フォルダを作ります。
/application/themes/tm1
これで「tm1」という名前のテーマが存在していると認識されます。管理画面のテーマを選択すると、中身が何もないのに、「tm1」をインストールするか聞いてきます。
中身がないので、サムネイルも名前も説明も何もなしです。
default.php を作る
最低限、default.php があるとテーマが使えるようになるようなので、default.php を作ってみました。UTF-8 で保存しましょう。
<?php
// おまじない
defined('C5_EXECUTE') or die("Access Denied.");
?>
<html>
<head>
<?php
// concrete5 の動作に必要な、<head> タグ内コードを出力
Loader::element('header_required');
?>
</head>
<body>
<!-- 編集時 concrete5 の上部メニューの表示で、コンテンツが隠れてしまうのを予防します -->
<div class="<?php echo $c->getPageWrapperClass()?>">
<?php
// ブロックを置けるエリアを作成
$a = new Area('Area1');
$a->display();
// エリアを複数作る場合は、Area(引数); の引数を変更して作成
$a = new Area('Area2');
$a->display();
?>
</div>
<?php
// concrete5 の動作に必要な、<body> タグ内コードを出力 </body> 直前に置くのがお作法らしい
Loader::element('footer_required');
?>
</body>
</html>
このコードで、Area1 / Area2 としてブロックが配置できるテンプレートが利用可能になりました。
管理画面で、サムネイルも名前も説明も何も表示されないというような状況もありますが、この記事のコードをとっかかりに、今後、解決していきたいと思います。