XOOPSの外部利用
XOOPSのライブラリの機能だけを流用する方法はないかと見てみたが、
どうもmainfile.phpだけを読み込めば
DB接続から何から行ってくれているようだ。
あとは適当にモジュールのファイルを読み込んで関数を呼んだり、
DB接続クラスを呼び出したりも可能。
フォーラムの最新書き込み呼び出しとかも非常に簡単に
外部で利用することもできた。
XOOPSのライブラリの機能だけを流用する方法はないかと見てみたが、
どうもmainfile.phpだけを読み込めば
DB接続から何から行ってくれているようだ。
あとは適当にモジュールのファイルを読み込んで関数を呼んだり、
DB接続クラスを呼び出したりも可能。
フォーラムの最新書き込み呼び出しとかも非常に簡単に
外部で利用することもできた。
asp.netの案件がようやく終わったのだが、
最後の方いろいろやっている内に
プログラムをそのまま別のexeファイルとして作ることが
可能であることが分かった。
さすが.NET framework。
単純にVBのコンソールプロジェクトなどを作成して、
DataAdapter等は同じように作成したら、
あとはソースをコピペするだけ。
結構便利だ。
そうやってタスクにしたい部分だけ別exeファイルとして実行できる。
まあasp.net自体にそういう機能がついていてくれれば一番良いのだが。
今asp.netの作業をおこなっている。
asp.netはいわずもがなVB, VC等と同じく
MicroSoft製のWEB製作用Visualなフレームワークといったところ。
モデルとなるAdapterを作成し、
ウィザードでSQLServerデータアクセス用の関数を作ったりする。
画面要素もツールボックスから配置し、
プロパティ設定ボックスで設定したりする。
ここまで突き詰めて行けば有りかな、と思う。
が、まあ理解していないと何も作れないのと
最近のVWDはPCが重いとデバッグに非常に時間がかかるというネックもある。
そういえば最近ひどいプログラムをよく見るが
今日見たのはかなりひどかった…。
入力データをurlencodeして保存していた。
HTMLタグ許可入力データを保存したいからだと思うが、
さすがにそれはひどい…。
表示部分がめちゃくちゃ文字化けしまくっているし。
しかもリクエストされたパラメータをそのままsql文に入れている、
それを空かどうかもチェックしていないのでエラー多発、
開発中だからしょうがないと言えるレベルじゃない。
人のプログラムはこわいなあ…
会社のプログラムだったらあまりに汚くても
セキュリティだけはちゃんと変数をラップしてたりするんだけど…
CakePHPではViewにViewというクラスが用いられているが、
これはオーバーライドしたものを利用できる。
例えばSmartyViewを作りたい場合、
app/viewsにsmarty.phpという名前のファイルに
SmartyViewクラスを作成。
クラスの内容自体は関数をオーバーライドして適当に作ればいい。
あとはコントローラで
var $view = ‘Smarty’
と宣言すればいい。
気を付けなればいけないのが、
テンプレートの拡張子にctpもしくはthtmlを利用する場合、
Viewの_render関数をオーバーライドしても
勝手にView::_renderという感じでViewのものを呼び出されてしまう。
なのでテンプレートの拡張子をtplとかに変更するか、
_renderメソッドを呼び出しているところもすべて
オーバーライドする必要がある。
mashupediaが昨日で閉鎖するとのこと。
まだ一応閲覧できるみたいだけど。
リニューアルしたばかりみたいだったのに。
完全独立してから初めて携わったサイトなのに
非常に残念だ。
あれだけのデータが無くなるのは非常にもったいない。
やっぱりどこかしらに引き継がれるんだろうか。
面白いものを見つけた。
なんとWEB上で顔写真を利用して
髭が生えた時の表情をシミュレーションしてくれる。
しかも自分のアップした1枚の顔画像を利用して、
それが瞬きしたりにっこりと笑ったり、
顔をリアルに動かして色々な表情を試してくれる。
これは結構面白い。
コンテストもやってるらしいので暇な人は試してはどうでしょう。
ただ、重いのが難点。
コントローラにデフォルトで属していないモデルの読み込み方を
CakeとAkelosで比較した。
Cakeだと最近はコントローラー内で
var $uses = array(’User’)
もしくは
$this->loadModel(’User’);
$this->User->****
という感じで使用できる。
これでもう実用的な気がする。
Akelosの方はというと、
Ak::import(’User’);
$this->instantiateModelClass(’User’);
$this->User->****
という感じ。
instantiateModelClass関数の中では
なにやらごちゃごちゃやってるので動作は不安だが、
こうしないと呼び出したモデルを使用してフォームを作る際に
active_record_helperがちゃんと動かない。
Ak::importも関数の中に含めて
省けるようにしてくれればいいのにとも思うが
まあこれは修正されるのかもしれない。
しかしAkelosヘルパーがたくさんありすぎて
なれるまではいちいち確認するのが面倒だ。
前回の件だけど、
cakephpフォーラムの書込にあるとおり、
ヘルパー内の引数指定でaddScriptが呼び出される関数がいくつか有り、
それを利用すると同様にscripts_for_layoutに
記述が行われるとのこと。
なるほど。
そういえばYahooメールが新しくなった様だ。
しかしなんでもかんでもajaxにすればいいわけじゃない。
mixiもそうだしいちいち動作が重くなる。
そんなことよりもあの役に立たないYahoo!メールの
迷惑メール防止アルゴリズムを何とかして欲しい。
どれだけ報告しても無駄だ。
google mailはうまい事動いてるのに。
spamがちゃんと判別されないだけで全く使う気が起こらない。
いつのまにやらlayoutにscripts_for_layoutという変数が出力されている。
これは何だろう?
viewを見てみると、addScriptというメソッドがある。
これを利用すれば良いようだが、どこで使うかが分からない。
調べてみると、各々のコンテンツの中で使えば
そのスクリプトがhead内に入るらしい。
例えば以下のように使う。
index.ctp
<h2>○○の一覧</h2>
<?php foeach… ?>
<?php endforeach ?>
<?php $this->addScript($javascript->codeBlock(’alert("alert in head!");)) ?>
すると出力時は
<html …>
<head>
:
:
<script type="text/javascript">alert("alert in head!");</script>
</head>
<body>
:
という感じ。
今日は祝日だった。
気付かないで仕事をしていた…。
お客さんのメールで仕事終りに気付いた。
会社とかだと前日とかにそういう話になったりするが
フリーだと家の中の人が誰も気付かないと全然気付かない。
そういうリスクもあるということだ。
ラーメンでも食べにいくか…。
アプリ版の聖剣伝説をクリアした。
携帯なのでかなり腕が疲れるがやはり面白かった。
新約聖剣伝説は不評もあった様だが、
これはオリジナルとほとんど一緒みたいだ。
しかしこのエンディングは切ないものがある…。
大事な人とは二度と会えなくなり、
チョコボもつがいになり離れていってしまった。
絵がきれいなゲームよりもこういうレトロなゲームの方が
小説と同様感情移入しやすいのかもしれない。
なんともいえない喪失感と切なさがある。
やっぱヒロインはボガードの娘なんだろうか。
とすると今回の主人公はヒロインと子供作ってないので
次の世代何かあったらやばいんじゃ??
せめて最後に1,2年世界のみんなには待ってもらって、
子供作ってからの方が良いんじゃ。
一緒にいすぎると別れがさらに辛くなるのかもしれないけど、
自分の子供も残るし。
子供4,5人くらい先祖代々作れば世界も一生安泰になるんじゃ?
でもなんでボガードとヒロインは別々に生活してたんだろう…。
DQの知られざる伝説みたいな本とかないんだろうか…。
ちょっと前に携帯を変えて
その携帯がオープンアプリを使用できるものだったので、
アプリを作成してみました。
auのオープンアプリですので
対応している方は是非遊んでみて下さい。
アルファブレンドアプリ
今cvsの方だけだけどちいたんにdescribeを付けた。
こればかりは様々なsqlに精通しているわけではないので
ほとんどcakeのパクリだ。
これを利用して
要望があったので一覧、編集、削除、表示ページを
bakeやrake等の様に
コンソールから一気に作成できるものを作る予定。
とりあえずdescribeだけはできたが、
ここからがかなり大変。
indexだけはとりあえず作ってみたのだけど
色々テンプレートを作っていくのは結構たいへんだ。
sqliteも入れようと思っているし
乗り切れそうにないのでもうちょっと出来るのは
後になりそう…。
ちなみに名前は良いのが思いつかなかったので
とりあえずomakeでいこうかと思う。日本語だ。
ちいたんは多分おまけが好きだろう。
cafeとかchocolateとかcake(?)とかも良いかと思ったが
cakeはともかくとして長いし、そもそもmakeから
どんどん離れていくのもどうかと思った。
おまけじゃ読み方は全然違うけど。
ちょっと見ていて気付いたのだが、
page_controllerのlayoutにはid=contentが入っているのだけど、
別途scaffoldしたコントローラーのlayoutじゃない
コンテンツ部分にもid=contentが。
なので2つになってしまっている。
これは仕様??
もしくはバージョンがまだ1.0に達していないから
そうなっているだけ?
あとlayoutをコントローラー毎に別で出力する必要があるのか。
やっかいだと思うけど。
cakeや他のフレームワークも1が出るまではこんな感じだったのかな。
早くちゃんとしたバージョンが出てほしいもんだ。
新たにサイトを作る必要が出てきたので
早速作成してみた。
といっても、htmlベースのページばかりなので
特に何のフレームワークでも良いという感じだったので
なんとなくまだ掴めていない。
気になった点としては、
自動翻訳の端が文字化けしていた。
まあ、翻訳しなければ良いだけの話だけど。
とりあえず翻訳タグを書かずに普通に日本語を入れている。
あとはCakePHPを利用していた時
pages_controllerがメソッドを追加しなくても
自動的にURLで指定したテンプレートにアクセスしてくれるので
これは便利だなあ、と思っていたけど
今のAkelosではそれが設定されていなかった。
一応以下のようにして対応しておいた。
routes.phpに
$Map->connect(’/page/:id’, array(’controller’ => ‘page’, ‘action’ => ‘index’));
とpages_controller.phpのindexに
$this->setDefaultTemplateName($this->params[’id’]);
を追加。
携帯アクセス設定も追加した。
AkelosにはafterRenderが無い様だ。
しょうがないのでrenderWithLayoutをオーバーライドした。
あと、配列の['’]を書かなくて良いのはやはり楽かも。
最近Akelosの名前をよく見るので調べてみたが割と良さそうだ。
まだバージョン1.0にもいっていないのでバグはあるらしいが。
他の人のブログでも、CakePHPからAkelosに乗り換えたことで
かなり開発速度がアップしたとのこと。
そんなにか…。
プラグインがまだ2つくらいしかないらしいけど、
Akelos自体が流行ればだいぶ出てくるだろうから
その辺は期待大だ。
というかRailsをPHPに丸々コピーだなんて誰でも思いつきそうなもんだけど
なぜAkelosまで誰も作らなかったのだろうか。
新しいサイトを何も考えずcake1.2で作り始めてしまったが、
ここは勉強のためAkelosかRailsで進めるべきだったので勇み足だった。
といってもほとんど機能も作ってないので移植しても良いかもしれない。
ずっとちいたんとCakePHPだけでやっていこうと思っていたが
こうやって色々よさそうなフレームワークが出てくると、
どうしても使ってみたくなってしまうし、
使うことで更に便利になるとは思う。
だけど意味不明に覚えて使わなくなる技術があるというのはもったいない。
乱立しているPHPフレームワークだからこそなおさら。
なのでAkelosを覚えつつ
もしよければこれか、Cakeが自分のデファクトになるよう祈ろう。
…たしかにCakeの配列は中括弧を書くのがめんどい気はする。
flexでサウンドをループする方法。
BGM等に使用したい場合。
あと、主に複数サウンドをならしたい時に
一つのリスナー関数で終わらしたい時の話。
Soundを再生する時、以下のようにチャンネルオブジェクトが出てくる。
その時そのチャンネルオブジェクトにイベントを設定。
var channel:SoundChannel = snd.play();
channel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete);
で、ぐぐっても出なかったしリファレンスにも
ちゃんとした情報が載っていなかったのだけど、
リスナーで受け取ったパラメータに、SoundChannelが割り当てられている。
なのでSoundとSoundChannelをなにかで結びつけて保存しておけば、
どのSoundが終了したのかを判別できる。
public function onSoundComplete(evt:Event):void
{
for (var name:String in m_sounds)
{
if (m_sounds[name].channel == evt.target)
{
m_sounds[name].sound.play();
break;
}
}
}
flexでBitmapオブジェクトを回転させる際、
リファレンスを見るとrotaionというプロパティがあり、
それを変更することで簡単に回転が出来る。
が、よくよく見るとx=0, y=0の部分で回転しているため、
ちゃんと真ん中で回転してくれない。
リファレンスを見ると、その基準点を変更するための
プロパティも何も無いようだ。
色々調べていると、行列変換が使えることが分かった。
これで回転どころか何もかも好き勝手に出来る。
さすがflex。携帯のアプリとは違う。
具体的には、Bitmap.transform.matrixに
Matrixオブジェクトを代入しておけばよい。
行列を知らない人はなんのこっちゃと思うかもしれないが、
特に難しいことはない。
var matrix:Matrix = new Matrix();
matrix.rotate(angle);
という感じで何も分からなくても簡単に変換行列は作成できる。
で、具体的に回転させるのは、
まず基準点を画像の中心に合わせ、
それから回転、スケール変更を行い、
表示する位置に移動する、という作業。
内容的にはこれだけ。
var matrix:Matrix = new Matrix();
matrix.tx = -bitmap.bitmapData.width / 2;
matrix.ty = -bitmap.bitmapData.height / 2;
matrix.scale(scalex, scaley);
matrix.rotate(Math.PI * angle / 180);
matrix.tx += x;
matrix.ty += y;
bitmap.transform.matrix = matrix;
37 queries. 0.650 sec.
Powered by WordPress Module based on WordPress ME & WordPress