さらに「Laravel4入門」ビューコンポーサー、ロケール、Movable Typeの読み込み

さらに「Laravel4入門」ビューコンポーサー、ロケール、Movable Typeの読み込み

ビューコンポーサー View composer

ブログタイトルやキーワードなどブログの基本的な項目を設定できるようにしてみました。ソースは GitHub にあります。

ausnichts/laravel4-blog · GitHub

テーブル settings の1つ目のレコードに保存するようにしています。

呼び出し方は、「Laravel4入門(11)」で使ったビューコンポーサーという方法でいけます。

app/composer.php

に以下を加え、

View::composer(‘*’, function($view) {
  $view->with(‘settings’, Setting::find(1));
});

それぞれ view ファイルに

<meta name=”description” content=”{{ $settings->meta_description }}”>
<meta name=”keywords” content=”{{ $settings->meta_keywords }}”>
<title>{{ $settings->site_title }}</title>

などとします。

ロケールの変更

せっかく言語ファイルを作りましたので、ロケールを変更できるようにしたのですが、ロケール変更時に

App::setLocale(‘ロケール’);

とすれば簡単に変更できるかと思いましたが、これではダメで、

app/start/global.php に、

App::setLocale(Setting::find(1)->language);

と書いておかないと変わらないですね。セッションを使う方法が以下にありました。

laravel – t can not switch language in Laravel4 – Stack Overflow

ただ、現状では、基本設定そのものがそうなんですが、デフォルトで settings の一番目のレコードにデータが入っていないとエラーになります。

Movable Typeの読み込み

これは Laravel というよりも php の話になりますが、日本語のサンプルデータをどうするか考えている時に、この「@半径とことこ60分」のブログデータを読み込めないかと考え、Movable Type 形式のファイルを読み込む関数を作ってみました。

(参考)
Movable Type 4 ドキュメント
WordPress › Movable Type and TypePad Importer « WordPress Plugins

コメントや ping など現状では取り込めないデータは全て破棄しています。

また、カテゴリは該当するものがない場合は自動登録し、カテゴリが設定されていないものは uncategorized を作成するようにしました。

ということでこんな感じにできあがりました。