私はね、懲り懲りですよ。昨夜の酔っ払い記事でね。睡眠薬飲んでの執筆はいけません。
書くなら飲むな、飲んだら書くな。
と言いつつ、何度か同じ失敗を繰り返していますが。。それが人間つうものです。
などと言い訳をしつつ、先に進みましょう。
本書から逸脱しつつ、しかし本書で紹介されている技術は使おう、これがテーマです。
P.168~169でtemplateを書き換えてます。そのときにはすでにbootstrapでnaviを作ってます。テンポ早いですが、ここで交わされるななこさんとあい先生の会話と心の声が秀逸です(笑)真実を衝いてますね。わはは。
更にP.169でのあい先生のロゴに関するつぶやきは、業界人だれもが、首肯するものです。
私のほうはnaviは作らないので、ここは飛ばしてっと、、P.171~172。ん?
あれ、こういうのありなんだ。また知らなかった。人が書いたソースって勉強になるなー。
<div class=”row”>
<div class=”col-md-8″>
なにがしなにがし
</div>
</div>
何に感心してるかというとですね、bootsrapのcol-md-8です。mdのほかにもたくさんあるのですがだいたい1~12まで末尾番号があるんですね。これはbootstrapが画面を縦割りに12分割できるようになっていて、その範囲で好きな分割の仕方をしてデザインしてね、というものです。
そして上記には書きませんでしたが、
<div class=”container”>
</div>
の中にこれらすべてが収まっている、というのがbootstrapの基本形です。たったこれだけで、ちゃんとコンテンツは中央寄りになり、他にもおいしいおまけがいろいろついているのがbootstrapの売りです。
私は誤解していて、画面を12割りしてるんだから、合計が12になるようにしましたよ。。
おそらく私が自力で作ったら、
<div class=”col-md-2″></div>
<div class=”col-md-8″>
なにがしなにがし
</div>
<div class=”col-md-2″></div>
と作ったでしょう。
しかし、考えてみると、containerで中央寄せさせているのだから、中が12より小さくてもそれは中央寄せされる、のかな?そんなふうに見えますね。作りながら実験してみましょう。
このあたり、ななこさんとあいさんの会話はどんどん吉本チックにボケとツッコミ化していきます。ななこさんのボケはタカアンドトシのタカさんに引けをとりません(笑)まさか、実在の人物じゃありませんよね。。
ちなみに私の知り合いにもナナコというデザイナーがおりますが、こちらは鋭いツッコミが武器です。
・・・脱線した。
さて、この辺りを参考にして、とりあえず土曜日編で作成したカレンダーを表示させてしまいましょうか。
土曜日編で作成したdonichi.phpの内容をindex.phpへ移します。ただ、donichi.phpではHTMLタグをprintで出力しているので、そこは工夫して直接HTMLタグで書けるところは書いちゃいましょう。
あ、これ大事なんですよ。こういう工夫をして一冊の教科書を遊び尽くすことで力が付くんです。初心者は写経でOKですが、少しかじっている方はあがきましょうね。
これをやろうとすることで、いろんなことを考えざるを得なくなります。中に書かれてるクラスとかどうすんだ、とか。今回はすでにoilを使って、fuelPHPの形式で作成していますから、できるだけそのお作法に則って作るように努力してみます。少しずつでいいんです。
まず、一行目に表示する英語表記の部分や、その下に表記する本日日付、これをforgeするときに渡せるようにcontrollerの中で作っちゃいます。
controllerの中身。で、index.phpで渡された$dataを取り出せるようにします。
これで、
ここまではOK。あ、フロイデさん今、31期ですよね。
で、テーブルをひとつ置くわけなので、外枠は直に書きますか。
tableタグ用のbootstrapのクラスを使います。便利ですから。だいたいプログラマはCSSとか超苦手ですから。私も例に漏れず。bootstrapは誰でも似たような画面になるとも言われますが、デザイン音痴なプログラマの強えぇぇ味方です。間違いありません。
カレンダーのヘッダ部分は、controller側で作って差し込みましょう。
これで表示してみると
あら、あらら~、htmlタグがそのまま表示されます。
なるほどなるほど、安全性のためにHTMLタグがエスケープされちゃうみたいです。敢えてHTMLタグを渡したいときはset_safeというのを使う、ということです。controller_templateの渡し方はこんな感じになりました。
なんにせよ、controllerクラスを継承したコントローラとcontroller_templateを継承したコントローラは使い勝手に違いがありますね。本日の収穫。ん。満足満足。
カレンダーのヘッダが表示されましたの図。