concrete5

このサイトはconcrete5というCMSで作られているのですが、WPと違って日本語の情報があまりありません。(海外でも少なめ?)
テンプレート(c5だとテーマ)を作るにはほぼHTML+コピペで良いのですが、ちょっとだけPHPの知識が必要だったりします。しかしながら記事追加時の挙動や整備がWPよりも簡単でフレキシブルです。

記事エディタ

ctrl+Enterで普通に改行されます。Enterだけだと<p>タグが入ります。
実際、この機能はあまり使わずにHTMLタグをだだっと書いたほうが良さそう。
記事エディタで作成してHTML編集するとタグが消えたりインデントがなくなったりして苦労します。

youtubeの埋め込みタグは<iframe>が無視されるみたいなので古い埋め込みタグを使うかHTMLブロックを挿入する。
古い埋め込みタグはyoutubeから普通に取得できないみたいでyoutubeの動画編集画面で最後まで再生すると出てきたり出て来なかったりします。

テンプレートを作るときのTIPS

  • 基本の流れ
    普通にサイトを作る→共通部分(ヘッダとフッタとか)を分割→c5のPHPコードをコピペ
  • 必要のないレイアウトはなくて大丈夫ぽい
  • 無理にPHPコードを入れずにある程度静的な感じで
  • Area内のblockの個数を調べる+blockの前後にHTML挿入

    <?php    
                $a = new Area('Main');
                $ab = $a->getAreaBlocksArray($c);
                if($a->totalBlocks > 0){
                        $a->setBlockWrapperStart("\n<div class=\"tester\">\n",false);
                        $a->setBlockWrapperEnd("\n</div>\n",false);
                        $a->display($c);
                }

    ?>

    こうしておくと各block毎に<div>が挿入されるのでIDやらclassでうまいことできます。
    blockがないときにdisplay()は多分したほうが良いです。編集時にごっちゃになるかも。
    totalBlocksはdisplay()後にしか動かないみたいだけどblockの配列を取得すると埋まる。
    count($ab)でも取得可。

  • header.phpとかでpagetypeを取得
    $c->getCollectionTypeHandle()
    これでテーマのページタイプファイル名が返ってくる。スタイルシートを分けたいときなどに便利。
    getCollectionTypeName()はページタイプの名前になるので日本語環境だとファイル名以外になる可能性あり。