学習日記68日目 - Blogapp vol.4 -
どうも、enomotoです。
きょうもBlogappを作っていきます。
タグクラウドを作ろう。
よくある「これ」です。
そういえば、askeet!でタグやったなぁと思いつつ自分がやった13日を穴が開くまで読んでたのですが
いまいち分からず模索して昨日が終わったのですが、14日目を見るとタグクラウドを普通にやっていたのでした。
なんで、気づかなかったんだろうと思いつつ実装したのでメモ。
上は実装後のスクリーンショットです。
見て分かるとおり、実装したい部分はサイドバー上。
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; ?>
管理画面を作ろう
いろいろネットをさまよっているとAdmin Generatorというものがあるらしい。
使ったことがないので早速これを使って管理画面を作ることに。
参考:http://develop.ddo.jp/symfony/book/jp/1.0/generator.html
基本的にはgenerator.ymlで設定するみたいだ。
ということでブログ投稿画面と一覧画面を出してみた。
▽投稿画面▽
▽一覧画面▽
まだ、未完成ですがこんな風に書きました。
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]
見よう見まねでとりあえずここまで書いてみた。
あとはタグを投稿画面で追加できるようにしたい><