CakePHP::date形式の日付を年月日形式に変換するヘルパー

9月 3rd, 2007 admin

DBなどからdate形式とかdatetime形式の値をとってきて表示するってのがよくあるんですが
年月日形式にするのが非常に面倒くさい。この機能がないからdate形式が嫌いだ。(一発で変換する方法あるんでしょうか?)

期待する状態

サンプル

< ?php
$str = “2007-09-03″;
echo $html->dateFormat($str);
?>

出力

2007年09月03日

設置方法

/app/views/helpers/html.phpに(ない人はcakeフォルダからコピーしてもってくる)以下の関数を追加


/**
* Returns a Formatted Date.
*
* @param string $date date formatted strings
* @param string $format format strings as date()
* @return string
* @access public
*/
function dateFormat($date,$format = “Y年m月d日”) {
return date($format,strtotime($date));
}
function df($date,$format = “Y年m月d日”) {
return $this->dateFormat($date,$format);
}

$html->df()でもアクセスできるし、2個目の引数でdate()関数と同じ形式でフォーマットを指定できます。

メールでの投稿の文字化け修正 WPME2.2.1

9月 3rd, 2007 admin

本ブログではWordPressME2.2.1を使っています。
ふとしたことからメールでの投稿を使ってみたくなったのですが、どうもうまくいかない・・・

デフォルトの仕様確認

  • メールを/wp-mail.phpがPOPで取得する
  • メールのサブジェクトがエントリーのタイトル、本文が本文に対応する

タイトルが文字化けする

ソースをみてみると、そもそもマルチバイト関係のことは考えてくれていないみたいなので文字化けして当然です。
タイトルと本文をPHPの内部エンコーディング(wp-config.phpで設定)に変換してやることにしました。
/wp-mail.php 132行目あたり

$content = trim($content);
$content = mb_convert_encoding(trim($content) , mb_internal_encoding(), “JIS”);

/wp-mail.php 138行目あたり

if ($post_title == ”) $post_title = $subject;
if ($post_title == ”){
$post_title = $subject;
$post_title = str_replace(array(’=?ISO-2022-JP?B?’,'=?iso-2022-jp?B?’,'?=’), ”, $post_title);
$post_title = explode(” “, $post_title);
$decoded_title = ”;
foreach($post_title as $k=>$v){
$decoded_title .= mb_convert_encoding(base64_decode($v) , mb_internal_encoding(), “JIS”);
}

タイトルはやりかたを知らないので力技でデコード。要するにbase64デコードをして、JISから内部エンコードに変えているだけです。
よくわかんない人は、下記ダウンロードしてファイルごと上書きしてください。(バージョンを確認してね!)

付録

wp-mail.zip

本文が投稿されない。

上の作業でタイトルは文字化けしなくなりましたが、本文がありません。
本家をあたってみると、バグ報告がされていました。

#4337 (Blog by Email: No content is assumed) - WordPress Trac - Trac

すでに誰か偉い人がパッチを作ってくれていたのでclass-pop3.php.patchというのをあてたら修正されました。

付録

class-pop3.zip

自動で更新してくれない

あたりまえかもしれませんが、せっかくメールを送っても、wp-mail.phpにアクセスするまでメールをチェックしてブログを更新してくれません。
普通はcronという仕組みを使ってwgetしたりするのですが、今回は指定したURLに定期的にアクセスしてくれるWebcron
というサービスを使いました。ここでユーザ登録して/wp-mail.phpに1時間ごとにアクセスしてもらうように設定しました。
これでメールを送れば遅くても1時間後には更新されるようになったというわけです。

以上

FMSで作るBBSアプリケーションチュートリアル

9月 2nd, 2007 admin

Flash Media Serverを使って掲示板アプリケーションを作成するまでのメモです。そもそもFlashがわからないという僕のような人は

Flash 8 入門講座:ITpro

あたりを読むことから始めましょう。かなり充実しています。(僕はやっと第24回までいきました)

参考資料

今回参考にしたのは下記のサイトです。

環境と準備

  • Windows
  • Window版FMSのダウンロードとインストール
  • Flash8のインストール

サービスの確認

  • Macromedia Flash Media Server 2
  • Start Flash Media Admin Server and Flash Media Server

Windows の場合、サーバーが稼動していることを確認するため
に、タスクマネージャを開いて、FMSAdmin.exe と FMSMaster.exe の両方が [ プロセス ] タブに表
示されていることを確認します。

そんな確認方法しかないらしいです。

サーバの準備

アプリケーションのセット

C:¥Program files¥Macromedia¥Flash Media Server 2¥applicationsの中にアプリケーション名でディレクトリを作成します。

今回は「bbs」にしました。

インスタンスの作成

管理画面からインスタンスを作成します。「インスタンスを作成=サーバを立てた」だと思います。

インスタンスを作成するときに名前を聞かれますが、今回は_defInst_で問題ありません。_defInst_はクライアントからインスタンス名が指定されなかった場合に接続される特別な名前だからです。

掲示板(チャット)の場合だとスレッド(トピック)ごとにインスタンスを作成するんだと思います。

fms01.gif

サーバへの接続

アプリケーションは、RTMP (Real-Time Messaging Protocol) または RTMPS (Real-Time Messaging Protocol over SSL (Secure Socket Layer)) を使用して Flash Media Server に 接続できます。


my_nc = new NetConnection();
my_nc.connect("rtmp://localhost/bbs");

fms02.gif
fms03.gif

こんなコードを書いて実行してみると、サーバに接続できます。2行でいいなんてすごい。

BBSアプリケーションの作成

テクササイズ第6回
FlashMediaServer2を使ってみよう

ここのSharedObjectのスクリプトを参考に作ってみる。

my_nc = new NetConnection();
my_nc.connect("rtmp://localhost/bbs");
bbs();
function bbs(){
//sharedObjectを作る
//getRemoteメソッドの第一引数はSharedObjectの名前、第二引数はURL。URLはNetConnection.uriプロパティで取得できる。
so = SharedObject.getRemote("shared_text",my_nc.uri);
//SharedObjectが変更されたときの処理
//SharedObjectが変更されるとonSyncイベントが呼び出されるのでイベントハンドラメソッドを作る
so.onSync=function(){
trace("SharedObjectが変更されました");
comments.text=this.data.comments;//このスコープの中ではthisはsoを指す
}
//SharedObjectをサーバーに接続
so.connect(my_nc);
send.onRelease=function(){
so.data.comments += "\n" + myComment.text;
myComment.text = "";
}

テスト

なぜか最初にundefinedと表示されてしまうが、通信できるようになりました。
BBSを作る予定でしたがどちらかというとCHATですね。

fms04.gif

connect()で指定しているアドレスをlocalhostから変更してやれば別のPCからでも接続できます。

サンプル

bbs.zip

Flash Media Server(FMS)に関する有用サイトまとめ

9月 1st, 2007 admin

楽しそうな割に情報が少ないFlash Media Server(FMS)に関するサイトをまとめました。FMSは以前はFlash Communication Server(FCS)という名前で、それらの情報も混ざっていますが基本的には同じなので参考になります。

Flash Media Server 2とは

オーディオとビデオをオンデマンド、またはリアルタイムで Flash クライアントに配信する、スケーラブルなストリーミングメディアサーバー

http://www.adobe.com/jp/products/flashmediaserver/

公式ドキュメント

Adobe - Flash Media Server 2 セットアップガイド

http://www.adobe.com/jp/products/flashmediaserver/guide/

  • FMSインストールガイド
  • FMSファーストステップガイド
  • メディアアプリケーション開発ガイド
  • FMSクライアントサイドASリファレンスガイド
  • サーバサイドASリファレンスガイド
  • FMS管理ガイド
  • サーバ管理ASリファレンスガイド
  • FMSエッジサーバユーザガイド

Adobe – Flash Media Serverデベロッパーセンター

http://www.adobe.com/jp/devnet/flashmediaserver/
大規模配信のレポート、オンラインゲームのチュートリアルなどFMSに関するドキュメント集

Flash Media Server

http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/js/html/wwhelp.htm
FMSの公式ライブドキュメント

そのほか参考ドキュメント

heteml | WEBカメラからの映像配信マニュアル

http://heteml.jp/support/manual/webcam/
WEBカメラで動画をリアルタイム配信する方法。hetemlでのFMS設定から映像を配信するまでのチュートリアル。サンプルもDLできる。

言語ゲーム - Flash Media Server

http://d.hatena.ne.jp/propella/20070218/p1
FMSの概要が簡単にまとめられている。まったく知らない人向け

s.h.log: テクササイズ第6回:FMSでお絵かきチャット

http://web.sfc.keio.ac.jp/~shokai/archives/2006/12/fms-shared-paint.html
FMSのSharedObjectを使った、お絵かきチャットのサンプルがあります。

テクササイズ第6回FlashMediaServer2を使ってみよう

http://web.sfc.keio.ac.jp/~ussy/oklab/2006f/texe/?p=1
ビデオ録画、SharedObject、複数ディルプレイ連携のサンプルがあります。

Flash Communication Server MX チュートリアル - Flash

http://www.game3rd.com/flash/action/fcs.htm
チュートリアルムービー、チャットサンプル、Fireworksオンライン、ビデオメールなど充実
「おしえて!!」シリーズの著者。ActionScriptの講座もある。

工藤めぐみ:続 ブロードバンド時代のコミュニケーション術:RBB NAVi

http://www.rbbtoday.com/column/kudo/
寄せ書き、監視カメラ、ライブストリームのチュートリアル
皆既日食のライブ中継のレポートなど

ITmedia エンタープライズ:特集:Flashサーバテクノロジー――Flash Communication Server構築編 (1/8)

http://www.itmedia.co.jp/enterprise/articles/0502/15/news008.html
FCSのサーバ構築から、録画アプリケーションの作成まで

さらにその他

Open Source Flash - red5

http://osflash.org/red5
FMSのオープンソース実装。JAVA。

参考になりそうな書籍

続FLASH ActionScriptバイブル MXのツボ with Flash Communication Server MX

Programming Flash Communication Server

追記 2008-02-25 Flash Media Server3以降

Server-Side ActionScript Language Reference for Adobe Flash Media Interactive Server

Flash Media Server resources
adobe公式