CakePHP / レイアウトを変更して緑 色の帯を消す
Cakeはとりあえず動かすと、デフォルトのスタイルシートが邪魔をして、緑色の帯が上下に出てしまいます。
これを解決するには、自分で以下のテンプレートファイル(レイアウトと呼ぶ)を作成し、app/views/layouts/default.ctp に保存すれば解決します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="http://www.w3.org/1999/xhtml
">
<head>
<title><?php echo $title_for_layout ?></title>
<?php echo $html->charset() ?>
<?php echo $scripts_for_layout ?>
</head>
<body>
<?php echo $content_for_layout ?>
</body>
</html>
緑色の帯が出る原因は、デフォルトのレイアウトが使われてて、レイアウト中でデフォルトのスタイルシートが読み込まれていること。
つまり、レイアウトを自分のオリジナルに変えてあげなくてはいけません。
レイアウトにはヘッダやフッタを書いておいて、ビューにはコンテンツを書いておきます。
レイアウトとビューをコントローラに指定して、一緒にレンダリングするというイメージらしいです。
紛らわしかったのが、果たしてどのファイルがレイアウトとして読み込まれてるのかってことです。
参考書とか読んでも書いてない、わかりにくいところだったのでまとめました。
コントローラ中にレイアウトを指定しない場合、
かつ default.ctp を自分で用意していない場合
→ cakePHPがデフォルトで用意している cake/libs/view/layouts/default.ctp が使われます
コントローラ中にレイアウトを指定しない場合、
かつ default.ctpを自分で用意した場合
→ 自分が用意した app/views/layouts/default.ctp が使われます
コントローラ中にレイアウトを指定した場合
→ そのレイアウトが使われます
コントローラ中にレイアウトを指定して、存在しない場合
→ エラーメッセージが表示されます
レイアウトの指定の仕方は、コントローラ中に
public $layout = 'layoutname';
を一行追加するだけ。簡単です。
【とても参考になったリンク】
>これを読みながらやりました。この記事のCakeのバージョンが1.1ですが、詳しく書いてあります。
http://www.ideaxidea.com/archives/2007/06/cakephp_014.htmlCakePHP / CakePHPで本当のHelloWorld
CakePHPで最初につまずくところ、MVCモデル。
モデル・ビュー・コントローラの略(Model-View-Controller)らしいんだけど、それって何って感じでした。
勉強していて、ようやくわかってきたのでここに記録しておきます。
概念を理解するには、CakePHP本家のここが一番わかりやすかったです。
http://book.cakephp.org/ja/view/10/model-view-controllerCakePHPでHelloWorldプログラムを作りたい場合、本当に書かなきゃいけないのはコントローラだけ。
以下のソースを書けばよいです。
class HelloWorldController extends AppController {
public $name = 'HelloWorld';
public $uses = null; // $uses = array(); でも同じ動作
public $autoRender = false;
function index()
{
echo "hello world!";
}
}
これを
/cakeを配置した場所/app/controllers/hello_world_controller.php
としてサーバーに保存してやります。
ブラウザで
http://自分のドメインでcakeを配置した場所/hello_world/
としてアクセスすると、普通のHello Worldが表示されるようになります。
ビューを使いたい場合は
$autoRender = false; の行を削除するか、
$autoRender = true; とします。
デフォルトがtrueなので普通は削除します。
そうすると、
/cake/xxxxx/app/views/hello_world/index.ctp(cake1.1の場合index.thtml)
をテンプレートファイルとして勝手に読み込みにいってくれます。
テンプレートファイルを読み込んで、テンプレートの一部書き換えをする動作を
Cakeではレンダリングと呼んでいるようです。
モデルを使いたい場合は$uses = null;のところにモデル名の配列を指定します。
$uses = array("Modelname");
みたいな感じ。
メールアドレスで使える文字と使えない文字
「この記号、メールアドレスの@の前に使用できるのかな」ってよく思いませんか?
ググっても出てこないので、検索エンジンにヒットしやすい形でまとめてみました。
あくまで検索にひっかかりやすいようにしただけなので、詳細はWikipedia参照のこと。
http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9
また、以下は国際規定RFC
で使用可能とされている文字ですが、メールサービスの提供側では、メールアドレス作成時に一部しか使えないようにしていることが多いようです。
---
利用可能
! (エクスクラメーションマーク、びっくりマーク)
# (シャープ記号)
$ (ドルマーク、ドル記号)
% (パーセント記号)
& (アンド)
' (シングルクォート、シングルクォーテーション)
* (アスタリスク)
+ (プラス記号)
- (マイナス記号)
/ (スラッシュ)
= (イコール)
? (クエスチョンマーク、はてなマーク、ハテナマーク)
^ (ハット、キャレット、カレット)
_ (アンダーバー)
{ } (中括弧、中かっこ、ブレイス)
| (パイプ、パイプライン)
~ (チルダ)
. (ピリオド、2個以上連続は不可、先頭・末尾での利用も不可)
---
ダブルクォーテーションで囲まれた中ならば利用可能
( ) (括弧、かっこ)
<> (大なり、小なり)
[ ] (大括弧、ブラケット)
: (コロン)
; (セミコロン)
@ (アットマーク)
, (カンマ、コンマ)
. (ピリオド、制限なく可)
---
ダブルクォーテーションで囲まれた中でさらに\でエスケープされていれば可能
半角スペース
" (ダブルクォート、ダブルクォーテーション)
\ (バックスラッシュ、\マーク、エンマーク、円マーク)
また、よくある携帯キャリア問題とその解決法についてはこちらが詳しい
http://neta.ywcafe.net/000803.html
FlowPlayer導入メモ
FlowPlayer。
資料がググってもあまりに出てこないので調べてみました。
まず、公式サイトはここ。サンプルがいくつか置いてあるので、まずこれを見るべし。
FlowPlayerは、FLV形式の動画ファイルを、ストリーミング再生(正確にはプログレッシブ再生)させるSWFファイルです。
細かいオプションを指定できるので、デザインとかに大きなこだわりがなければ、これで必要十分な動画配信ができます。
ひとつ盲点だったのが、プレビュー画像(動画再生前の画像)にjpg形式の画像しか使えないということです。
FlowPlayerのソース内部で使用しているライブラリが、JPEGでないとだめだとかで。
できればpng対応にして欲しかったところです。
スキンについては詳しくは調べていませんが、画像を差し替えるのは簡単です。
ただ、プログレスバーの色を変えたりできてしまうので、Winampみたいに自由にカスタマイズってわけにはいかなそうだと感じました。
FlowPlayerはオープンソースで、ソースもantを入れると案外簡単にコンパイルできました。
ただ、バリバリActionScriptでコメントもほとんどないため、改造するのは難しそうです。
右クリックしたときのメニューを非表示にするくらいしか使わないかなぁって感じです。【FlowPlayer導入時に有用なサイト集】
>FlowPlayerの初期設定関係。関係ないけどレーサー動画もかっこいい。
http://www.nero-8.com/blog/archives/2007/12/200712010230.php
>FlowPlayerを右クリックしたときのメニューを非表示にする
http://d.hatena.ne.jp/kaorumori/20080105/1199588751
>公式サイト。ドキュメントで細かなオプションを見ることが多かった
http://flowplayer.org/player/configuration.html