Home > Java | Web > Play frameworkでTwitter Bootstrapを使ってみた。

Play frameworkでTwitter Bootstrapを使ってみた。

  • 2011-12-20 (火) 2:49
  • Java | Web

 Play! framework Advent Calendar 2011 jpに、Twitter Bootstrap モジュールというエントリが投稿されており、Twitter BootstrapというCSSフレームワークがあることを知りました。
 サイトを調べてみると、おもしろそうなので、昨日のOAuthサンプルのページにTwitter Bootstrapを適用してみました。
 → サンプルページ

1.Twitter Bootstrapのインストール

 公式ページからTwitter Bootstrapをダウンロードし、playの/public 配下に解凍しました。
 なお、Playには「twitterBootstrap モジュール」があるようなのですが、バージョンが少し古いようなので、モジュールは使用しませんでした。

2.main.htmlの修正

 main.htmlのヘッダーを修正し、twitterBootstrapのCSSを組み込みました。

<!DOCTYPE html>
<html>
    <head>
        <title>#{get 'title' /}</title>
        <meta charset="${_response_encoding}">
        <link rel="stylesheet" media="screen" href="@{'/public/stylesheets/main.css'}">
        #{get 'moreStyles' /}
        <link rel="shortcut icon" type="image/png"
                     href="@{'/public/images/favicon.png'}">
        <script src="@{'/public/javascripts/jquery-1.6.4.min.js'}"
            type="text/javascript" charset="${_response_encoding}"></script>
        #{get 'moreScripts' /}
        <meta name="google-site-verification"
            content="DruByTCM2Z-l9rdsrVzaqdVKyDiBEHL0MuRdojuD7lM" />
        <link href="public/bootstrap/bootstrap.css" rel="stylesheet">
		<style type="text/css">
			body {
				padding-top: 60px;
			}
		</style>
    </head>
    <body>
        #{doLayout /}
    </body>
</html>

3.index.htmlの修正

 Bootstrapの公式ページ及びサンプルをみながら、index.htmlを以下のように修正しました。

#{extends 'main.html' /}
#{set title:'Home' /}

<div class="topbar">
	<div class="fill">
		<div class="container">
			<a class="brand" href="#">Play & Bootstrap Test</a>
			<ul class="nav">
				<li class="active"><a href="#">Home</a></li>
				<li><a href="#about">About</a></li>
				<li><a href="#contact">Contact</a></li>
			</ul>
		</div>
	</div>
</div>
<div class="container">
	<div class="hero-unit">
		<h1>Authentication Sample</h1>
		<p>Play Frameworkで、OAuth認証とTwitter Bootstrapの練習。</p><br />
		<div class="row show-grid" title="OAuth">
			<div class="span3">
			 <a href="@{TwitterAuth.authenticate()}">
                         <img src="public/images/sign_twitter.png" /></a></div>
			<div class="span3">
			 <a href="@{GoogleAuth.authenticate()}">
                         <img src="public/images/sign_google.png"  /></a></div>
			<div class="span3">
			 <a href="@{FacebookAuth.authenticate()}">
                          <img src="public/images/sign_facebook.png"  /></div>
			<div class="span3">
			 <a href="@{HatenaAuth.authenticate()}">
                          <img src="public/images/sign_hatena.png"  /></a></div>
		</div>
	</div>

	<div class="row">
		<div class="span4">
			<h2>Twitter</h2>
			#{if userinfo.get("twitter").get("auth")!=null}
     			<p>認証されています。</p>
			<p><img src='${userinfo.get("twitter").get("imageurl")}' width="32px"
                           hspace="10px" align="bottom" />
                              ${userinfo.get("twitter").get("screenname")}</p>
			#{/if}
			#{else}
				<p>認証されていません。</p>
			#{/else}
			<p><a class="btn" href="#">Logout &raquo;</a></p>
		</div>
		<div class="span4">
			<h2>Google</h2>
			#{if userinfo.get("google").get("auth")!=null}
			<p>認証されています。</p>
			<p><img src='${userinfo.get("google").get("imageurl")}' width="32px"
                        hspace="10px" align="bottom" />${userinfo.get("google")
                              .get("screenname")}</p>
			#{/if}
			#{else}
				<p>認証されていません。</p>
			#{/else}
			<p><a class="btn" href="#">Logout &raquo;</a></p>
		</div>
		<div class="span4">
			<h2>Facebook</h2>
			#{if userinfo.get("facebook").get("auth")!=null}
			<p>認証されています。</p>
			<p><img src='${userinfo.get("facebook").get("imageurl")}' width="32px"
                        hspace="10px" align="bottom" />${userinfo.get("facebook")
                              .get("screenname")}</p>
			#{/if}
			#{else}
				<p>認証されていません。</p>
			#{/else}
			<p><a class="btn" href="#">Logout &raquo;</a></p>
		</div>
		<div class="span4">
			<h2>Hatena</h2>
			#{if userinfo.get("hatena").get("auth")!=null}
			<p>認証されています。</p>
			<p><img src='${userinfo.get("hatena").get("imageurl")}' width="32px"
                         hspace="10px" align="bottom" />${userinfo.get("hatena")
                              .get("screenname")}</p>
			#{/if}
			#{else}
				<p>認証されていません。</p>
			#{/else}
			<p><a class="btn" href="#">Logout &raquo;</a></p>
		</div>
	</div>
	<footer>
		<p>&copy; Test</p>
	</footer>
</div>

3.所 感

TwitterBootstrapを使うと、簡単に今風のUIが作れます。結構、良い感じです。
また、playの場合、main.htmlに登録しておくことで、動的に生成されるページデザインの一貫性が保たれるかもです。
 

Related posts:

  1. Play FrameworkでOAuth認証利用 その4:はてな
  2. Play FrameworkでOAuth認証利用 その1:Twitter
  3. Play FrameworkでOAuth認証利用 その3:Google
  4. Play FrameworkでOAuth認証利用 その2:Facebook
  5. Play framework

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://termat.sakura.ne.jp/java/play-framework%e3%81%a7twitter-bootstrap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%80%82/trackback/?_wpnonce=049052c19f
Listed below are links to weblogs that reference
Play frameworkでTwitter Bootstrapを使ってみた。 from TM's Workspace

Home > Java | Web > Play frameworkでTwitter Bootstrapを使ってみた。

Google Analyticator

119
Unique
Visitors
Powered By Google Analytics

Return to page top