Hatena::ブログ(Diary)

crazyuplog このページをアンテナに追加 RSSフィード

2009-07-15

学習日記68日目 - Blogapp vol.4 -

スタートアップ研修記はこちらです。

どうも、enomotoです。

きょうもBlogappを作っていきます。

タグクラウドを作ろう。

よくある「これ」です。

f:id:crazyup:20090715104305p:image

そういえば、askeet!でタグやったなぁと思いつつ自分がやった13日を穴が開くまで読んでたのですが

いまいち分からず模索して昨日が終わったのですが、14日目を見るとタグクラウドを普通にやっていたのでした。

なんで、気づかなかったんだろうと思いつつ実装したのでメモ。

f:id:crazyup:20090715105143p:image

上は実装後のスクリーンショットです。

見て分かるとおり、実装したい部分はサイドバー上。

askeet!に書かれているのは別ページにタグクラウドを表現するもの。

参考: http://www.symfony-project.org/askeet/1_0/ja/14

そのため、このまま実装してもできないので書く場所を変えました。

で、どうしたのか。

サイドバー上で使うのだからpartialかcomponentでやらなきゃダメ。

partialではアクションが実装できないのでcomponentにした。

<呼び出し側>

<div id="tag">
   <h2>tag</h2>
   <ul>
   <?php include_component('tag','articletags') ?> 
   </ul>
</div><!-- div id/menu/tag -->

<アクション>

<?php

class tagComponents extends sfComponents
{
  public function executeArticletags()
  {
    $this->tags = ArticleTagPeer::getPopularTags(sfConfig::get('app_tag_cloud_max'));
  }
}

テンプレート

<?php foreach($tags as $tag => $count): ?>
  <li class="tag_popularity_<?php echo $count ?>"><?php echo link_to($tag, '@tag?tag='.$tag, 'rel=tag') ?></li>
<?php endforeach; ?>

ここ以外はaskeet!と同じ。

あとはCSSを弄っただけだろうか。

管理画面を作ろう

いろいろネットをさまよっているとAdmin Generatorというものがあるらしい。

使ったことがないので早速これを使って管理画面を作ることに。

参考:no title

基本的にはgenerator.ymlで設定するみたいだ。

ということでブログ投稿画面と一覧画面を出してみた。

▽投稿画面▽

f:id:crazyup:20090715184056p:image

▽一覧画面▽

f:id:crazyup:20090715184055p:image

まだ、未完成ですがこんな風に書きました。

generator:
  class:              sfPropelAdminGenerator
  param:
    model_class:      Article
    theme:            default
    fields:
      user_id:        1
    list:
      title:          BLOG List
      display:       [id, title, created_at, updated_at]
    edit:
      title:          BLOG Editor
      display:       [title, body]

見よう見まねでとりあえずここまで書いてみた。

あとはタグを投稿画面で追加できるようにしたい><

今日の結果

f:id:crazyup:20090715190700j:image

フロントエンドはほぼ完成。

あとはバックエンドか。

Copyright © crazyup. All rights reserved.