私もね、ここまで来ましたよ。
ちょっとペース遅いですね(汗)
さて、ここで、メニューから「TopPage」を押下してみました。
うわぉん。
これはですね、ふたつ理由があります。
ひとつはrutes.phpをいじっていないこと。
もうひとつは、
<li><a href=”/”>TopPage</a></li>
この”/”の意味です。
この辺り、私なんざも結構いい加減で、”/”はドキュメントルートを指すんだな、と、この動きを見て改めて認識しました。
まず、rutes.phpを本書のとおりに書き換えます。そうすることで、URLに「tweet」を含める必要がなくなります。
本書ではこれだけで、「TopPage」メニューで同じページが出るはずです。ここがドキュメントルートになっていますから。
私は変えてしまっているので、すこし工夫が必要です。
<li><a href=”/donichi”>TopPage</a></li>
こんなふうにプロジェクト名を含めることで同じ動きをします。
もうひとつ、同じ動きをする書き方があります。
<li><a href=”#”>TopPage</a></li>
hrefに”#”を指定すると、
URLに#が出てきて、画面は動きません。
これは、私が経験的に知っていたことで、何故こういう動きになるのか理由は知りません。
それで、調べてみました。
なんと、”#”はそのページの最上部へ移動する記号なんだそうです。
もし、このページが縦長で、下方へスクロールしている状態で”#”のメニューで画面の最上位へ戻れる、というものです。
このページはスクロールする長さがないので結果的にページが動かないんですね。
。。。。ダメじゃん!!
他のページへ移動して、「TopPage」押してもトップページへ戻らないってことじゃん。
てなわけでこちらを採用。
<li><a href=”/donichi”>TopPage</a></li>
未だにね、こんなもんですよ。はい。
これで、hrefの先頭に”/”があるとそれはドキュメントルートを指すんだな、と分かりました。そして”#”はそのページの先頭を意味することも。
そこで、このページに、本書にないメニューをひとつ追加しましたよ。
メニューに
<li><a href=”/donichi/calendar”>Calendar</a></li>
を加えただけです。
追加したCalendarを押下すると
出してみて、気が付きました。
navbarがないじゃん!
そりゃそうです。使ってるtemplateが違うんですから。
calendar.phpにbeforeを加えます。
public function before()
{
$this->template = “tweet/template”;
parent::before();
}
更に、
private function disp_calendar($data){ $this->template->title = "Calendar"; $view = View::forge('calendar/index',$data); $view->title = "祝!フロイデさん31周期!!"; $this->template->content = $view; $this->template->msg = $data["msg"]; $this->template->content->set_safe('cal_head',$this->cal_header()); $this->template->content->set_safe('cal_body',$this->cal_body($data)); $this->template->content->set_safe('options',$this->makeOptions($data['month_num'])); }
そしてviewも少し直します。template.phpに書いてあった
<h1><?php echo $title; ?></h1>
<hr>
これを/view/calendar/index.phpへ移します。
ここから
カレンダーへ飛び、
ここへ戻って来られるようになりました。
なんか、意味ないことしてますねぇ。。ま、templateを移すのはそんなに大変じゃない、ってことで。ご納得いただけると助かります。はい。