CakePHPで新サイト「ふるみる -古民家スポットコミュニティ-」を作りました
4月27日(月)、全国の古民家スポットをユーザみんなで集めていく古民家コミュニティサイト「ふるみる」を公開しました。
会員ユーザの機能は主に
・古民家スポットの登録
・古民家の写真投稿
・古民家のレビュー投稿
といった所です。公開間もないという事もあって、現在使える機能はプレーンなものだけにとどめてあります。
4月27日(月)、全国の古民家スポットをユーザみんなで集めていく古民家コミュニティサイト「ふるみる」を公開しました。
会員ユーザの機能は主に
・古民家スポットの登録
・古民家の写真投稿
・古民家のレビュー投稿
といった所です。公開間もないという事もあって、現在使える機能はプレーンなものだけにとどめてあります。
写真をアップロードするだけで江戸〜明治期の古写真ぽくするサイト「幕末古写真ジェネレーター」を本日公開しました。
どんなにオシャレな写真でも古臭くする自身がありますw
「昭和の写真ジェネレータ(仮)」で遊んでいたときに、もっと昔の幕末に撮られた写真ぐらい古い写真を作れればいいなぁと思って作ってみました。
僕の貧弱な画像処理の知識からしてかなり背伸びした感がありますがなんとか公開することができました…。今後は「ギャラリーに投稿」機能とか付けれたらいいなぁと思ってます。
幕末古写真ジェネレーターを通すとどんな感じになるのか、以下のページでもサンプル公開してます。
幕末古写真ジェネレーター公開しました!着物写真が妙にリアルにw
cakephpを使って作ったのですが、ページ数も2〜3ページだし大きな機能は入れてないので全くと言っていいほどcakephpの恩恵は受けてません。
でも作ってて楽しかったからいいです…。それが大事大事。
■幕末古写真ジェネレーター
…写真を江戸~明治期の古写真ぽくします
tynny!を作ってる際につまずいた事で、
マイページのURIを「http://tynny.net/ユーザ名」みたいにしたいといった事がありました。
del.icio.usでは「http://del.icio.us/ユーザ名/」
hatenaでは「http://d.hatena.ne.jp/ユーザ名/」
がいわばマイページのトップになっています。
cakephpで同じ事を実装しようとすると、デフォルトでは
「http://tynny.net/xxx」の時は「xxx」というコントローラークラスを読み込もうとしてしまいます。
自分としては「xxx」というコントローラーが無い場合、ユーザ名「xxx」のマイページを表示したいのですが。。
自分のとった対処方法を書いておきます。
かなり強引というかやっつけ方法なのでオススメはできませんが…
routes.php
//既に作成済みのコントローラーを配列に納めとく。
$reservednames=array('members', 'posts', 'entries', 'tags');
//リクエストされたコントローラ名を取得
if(! empty($fromUrl)) list($request_controller) = explode("/", $fromUrl);
if(! empty($request_controller)){
//リクエストされたコントローラ名がサイトで使用されてなければ、、、
if(array_search($request_controller, $reservednames) ===false){
//リクエストされたコントローラ名をユーザ名として、
//マイページ用のコントローラとアクションにアクセスする
Router::connect('/*', array('controller' => 'users', 'action' => 'index'));
}
}
ほら、強引。。
問題は
$reservednamesに使用しているコントローラを入れ忘れる可能性がある。
今の所不具合はおきていませんが、htmlヘルパーなどで参照するURLまわりで不具合が起きるかも?
cakephpのルーティングで「hoge.com/ユーザ名」を実現する方法がありそうな気もしますが、探すのに挫折して上記の方法をとっています…
他の対処方法として、
院生エンジニアのにっき CakePHPで存在しないcontrollerが指定された際にデフォルトのcontrollerクラスを利用する方法
という記事もありました。
詳しく解決方法が掲載されていますので、同じ問題にぶつかってる方は是非。