Laravel3 を WebMatrix3 で開発しロリポップで公開する no.7 【会員登録制のサービスを目指す】

views/testtemplate.blade.php を少し手直しした。

<!DOCTYPE html>
<html lang=\"{{Config::get(\'application.language\')}}\">
    <head>
        <meta charset=\"utf-8\" />
        <title>@if (isset($title))
{{ $title }}
@endif</title>
        @yield(\'css\')

        @yield(\'js\')
    </head>
    <body>
@yield(\'contents\')
    
    </body>
</html>

html タグの lang 属性の出力をコンフィグから取得して表示するようにした。出力までに処理が入らなければ applications/config/application.php の lang で指定してある値が出力される。

今までのようなテストはここまでとし、今回からはやや実践的なものを作っていこうと思う。

ちょっとした会員サービスを作りたいと思うので、今回はマイページを作ることにする。 controllers に mypage.php を views に mypage.blade.php を作る。 views いかに templates ディレクトリを作り、この中にテンプレートの共通部分を格納することにする。 views/templates いかに general.blade.php ファイルを作成し、主だったページの共通部分をまとめることとする。

まずは、general.blade.php

<!DOCTYPE html>
<html lang=\"{{Config::get(\'application.language\')}}\">
    <head>
        <meta charset=\"utf-8\" />
        <meta name=\"viewport\" content=\"width=device-width, minimum-scale=1, maximum-scale=1\" />
        <title>@yield(\'title\')</title>
        {{ Asset::styles() }}
        {{ Asset::scripts() }}

    </head>
    <body>
        <header>
@yield(\'header\')
        </header>

        <section>
@yield(\'contents\')
        </section>    
    </body>
</html>

Asset 系の指定方法を Laravel3 が持っていることが分かったので変更してみました。スマフォ対応も睨んで、viewport 指定なんぞ持たしてみました。続いて mypage.blade.php

@layout(\'templates.general\')

@section(\'header\')
            <nav>
                <ul>
                    <li>マイページ</li>
                    <li>Menu2</li>
                    <li>Menu3</li>
                    <li>Menu4</li>
                    <li>Menu5</li>
                </ul>
            </nav>
@endsection

@section(\'contents\')
            <div class=\"header\">
	            ようこそ、○○○○○○○さん!<br />
            </div>

            <div class=\"content\">
	            <h1>マイページ</h1>
	            <p>ここはマイページです!</p>
            </div>
@endsection

mypage.php

<?php
class Mypage_Controller extends Base_Controller
{
    public function action_index()
    {
        Asset::add(\'narrow-css\', \'css/narrow.css\', \'main\', array(\'media\' => \'screen and (max-width: 700px)\'));
        Asset::add(\'medium-css\', \'css/medium.css\', \'main\', array(\'media\' => \'screen and (min-width: 701px)\'));
        Asset::add(\'jquery\', \'js/jquery-1.10.0.js\', \'jquery-ui\');
        return View::make(\'mypage\');
    }
}

そして route.php にルーティングを追加します。

Route::controller(\'mypage\');

laravel3test のルーティングの一個前に追加しました。

今回はここまで。

カテゴリー: Laravel3, Web, WebMatrix, ロリポップ タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です