2008年08月12日(火)
EC Cube(2系)の商品用RSSが作ろうと思ったら、
なんだ元からあるじゃないですか。
・・・と、思ったけど中を見たらあきらかに完成してない。
でもって、デフォルトではHTMLのメタに全部、最新情報用RSSのURLが記載されている。
なので、そっちも修正する必要があるが、
とりあえず、テンプレートと処理部分を試しに修正。
■修正ファイル
data/class/pages/rss/LC_Page_Rss_Products.php
→http://movion.net/sample/eccube/v0.1/LC_Page_Rss_Products.txt
※create_dateの取得とpubDate形式変換と並び順を修正。
data/Smarty/templates/{テンプレート}/rss/product.tpl
→http://movion.net/sample/eccube/v0.1/product.tpl.txt
※大幅に(適当に)修正。
クロールする側もつくろうと画策中。
2008年07月28日(月)
Ubuntu 8.0.4
PHP 5.2.4
EC Cube2.0系
EC Cubeをいじっていたら、前は動いていたはずの画像アップのところで怒られた。
-
Fatal error: Call to undefined function imageCreateFromJpeg() in /var/www/rizm/data/module/gdthumb.php on line 203
というわけで、GDが組み込まれていない。
でいけるかと思ったら、残念なことに不十分な模様。
というわけで、参考サイトのまんまですが、ビルドをしてみました。
参考サイト)
CakePHP on Ubuntu で pChart を使う
-
cd /usr/src
-
sudo su
-
apt-get install build-essential debhelper fakeroot
-
apt-get source php5
-
apt-get install libsnmp-dev
-
apt-get build-dep php5
-
cd php5-5.2.4
で、設定ファイルを開いて、
ちょっと書き換え。
-
–with-gd=shared,/usr –enable-gd-native-ttf
-
↓上記の行を以下のように修正
-
–with-gd=shared –enable-gd-native-ttf
そしてビルド。
-
dpkg-buildpackage -rfakeroot
-
cd ..
-
dpkg -i php5-gd_5.2.4-2ubuntu5.3_i386.deb
-
apache2ctl restart
2008年05月20日(火)
結構よく使うSingleton。インスタンスが1個であることを保証出来る。
php4で、Singleton中途半端に実装して、newもgetInstanceも誤って使うと訳がわからなくなります。
以下ソースコード。
-
< ?php
-
class Singleton {
-
-
private $_name;
-
private function __construct() {
-
print "create instance<br />";
-
}
-
public static function getInstance
() {
-
-
Singleton::$singleton = new Singleton();
-
}
-
return Singleton::$singleton;
-
}
-
public function setName($name) {
-
$this->_name = $name;
-
}
-
public function getName() {
-
return $this->_name;
-
}
-
}
-
-
print ‘Singleton.php test start.<br />’;
-
-
$object1 = Singleton::getInstance();
-
$object2 = Singleton::getInstance();
-
-
$object1->setName(‘akira’);
-
print $object1->
getName() .
‘<br />’;
-
print $object2->
getName() .
‘<br />’;
-
$object2->setName(‘yoshiko’);
-
print $object1->
getName() .
‘<br />’;
-
print $object2->
getName() .
‘<br />’;
-
-
$object3 = new Singleton();
-
print $object3->
getName() .
‘<br />’;
-
-
echo ‘Singleton.php test end.<br />’;
-
?>
これで、$objcet1も$object2も同じインスタンスです。
$object3は生成出来ません。
で、以下結果。
———–
Singleton.php test start
create instance
akira
akira
yoshiko
yoshiko
Fatal error: Call to private Singleton::__construct() from context ” in /var/www/public_html/exsample/Singleton.php on line 34
———–
34行目でprivateになってるコンストラクタを呼び出そうとしているので、エラー(Fatal error)が発生しています。
そのため、「Singleton.php test end.」までは進みません。
今さらなネタですが、とりあえず。
2008年04月16日(水)
続・Ajax(Comet)対戦オセロゲーム 遊び方編 も参照してみてください。

http://port.movion.jp/
2008/05/04追記。port.movion.jpは現在4人オセロになってます。
※自宅サーバのため、常時稼働はしてません。たぶん12時~24時くらいは稼働させてます。
※バグが多々多々あります。かつ、開発環境です。
※IEの場合ieerbugがでます。firefoxの場合FireBug入れてないといきなり変になるかも。
2008/04/20追記。ちょっとだけ安定版をここのサーバにも設置しました。
http://movion.net/sample/ajax-reversi/public_html/
今さら感は否めませんが、Cometなオセロゲームを勢いで作成中です。
railthelloとかあったけど。オセロゲームなのは、Pontiyを作っててまんまオセロゲームの仕組みを使えたから。
どうせなんで、4人オセロとかに拡張しようかなぁとも思ってます。
でもって現実的にはやっぱり、FMSなりJavaアプレットなり使った方がよいなぁと。
jetty6もちょっとさわってみたけど、クライアント数が増えることを想定してないので、とりあえずApacheとPHPで実装中。
C10KいやC1Kどころか、C100にも耐えられるか謎です。
実装は、PHPだけでリアルタイムAJAXチャットシステムを構築する方法。
を参考にさせていただきました。
アクセス数さえ少なければ、負荷もたいしたことがないので、
レンタルサーバに設置しようかと思いましたが(こことか)、無限ループぽっくなったり、デットロックぽくなったり、怪しげな挙動をする可能性が高いので、現状自鯖です。
幾分、問題をなおしたものをここのサーバにも置いてみましたが、万一アクセスが多くなったら撤去します。
でもって、自鯖にしてるパソコンはどうも共振してあまりにうるさいので夜はshutdown -h nowしてます。
リンクつながらなかったらごめんなさいorz
て、このサイトで宣伝して人が来るとも思えませんが・・・。
参考:
おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(前編)
Lingr and Comet - 技術解説編(CNET Japan)
2008年03月24日(月)
URLからアクション名、テンプレートファイルへのマッピングが変わってるっぽく(デフォルトでは)、「アクションが見つかりません」エラーが多発。そもそも、複数単語のアクション名をアンダースコアでつないでたのが悪いのですが、そこをハイフンになおさなきゃいけなそう。
1.0.xでは、
URL: /game/detail_map
の場合、
Controller: Game
Action:detailMap
Template:detail_map.html
でいけてたが、
1.5では、アンダースコアでつなぐと単純にアンダースコアが削除された文字列がアクション名になるので、
1.5では、
URL: /game/detail_map
の場合、
Controller: Game
Action:detailmap
Template:detailmap.html
となってしまう。
そんなわけで、ハイフンでつなぐ記法に修正することにしました。
そうすれば、以下のようになるはず。
URL: /game/detail-map
の場合、
Controller: Game
Action:detailMap
Template:detail-map.html