Archive for 8月, 2009

このページの目次

magic_quotes_gpcにハメられる

木曜日, 8月 27th, 2009

こんにちは、なかわけです。

FlashからPOSTしたデータをサーバに保存する仕組みを作ったときに保存されたデータになぜか\(バックスラッシュ)が入ってしまって悩んでました。

使用していたライブラリのせいなのかなーと思いながら(ちなみに先日のas3corelibです)、そのときはそれをやり過ごすようなプログラムを書いて対処しました。

後日、隣のエンジニアが閃いて教えてくれました。

サーバにはmagic_quotes_gpcという設定があるようで、これがONになっていると、”(クォート)を勝手にエスケープして\”にしちゃうそうです。

.htaccessに

php_flag “magic_quotes_gpc” 0

と書いて該当ディレクトリに置いて解決しました。

も~、知らんがな~。

EC-CUBE受注商品の変更ができない

火曜日, 8月 25th, 2009

こんにちは、なかわけです。

EC-CUBEで受注した商品の変更ができないという話。

そんなバカなと思って管理画面に入ってみたら、金額や個数は変更できるけど、商品自体の変更ができない。
(さらに…)

EC-CUBE(Smarty)でphpのvar_dumpみたいに配列の結果を出力する関数

月曜日, 8月 24th, 2009

こんにちは、なかわけです。

タイトルの通り、EC-CUBEでphpのvar_dump()みたいな処理の方法。以下です。

<!--{$array|@debug_print_var}-->

これすると、EC-CUBEの開発がちょっとだけ楽になります。

ASでコールバック的な処理の書き方

月曜日, 8月 17th, 2009

こんにちは、なかわけです。

先日仕事をしていて、自分で書きながらこんな書き方できるんだなーという思ったのでメモ。

MainのなかでSubのインスタンスを生成する際、引数としてMainのfunctionを与えると、SubインスタンスからMainのfunctionが実行できるというもの。
このサンプルのコードでは意味のない処理をしてますが、実際にはSubのアニメーション処理が終わったらMainの処理を実行するというようなFlashを作ってました。

Main.as

package{
	import flash.display.MovieClip;
	import Sub;

	public class Main extends MovieClip{

		public function Main(){
			var subObj:Sub = new Sub(result);
		}

		public function result(num:uint):void{
			trace('結果は' + num + 'でした');
		}
	}
}

Sub.as

package{
	import flash.display.MovieClip;

	public class Sub extends MovieClip{

		public function Sub(callback:Function){
			var resultNum:uint = Math.floor(Math.random()*100);
			callback(resultNum);
		}
	}
}

はたしてこういう書き方してよかったのだろうか・・・。

ASでJSONをエンコードしたりデコードしたり

月曜日, 8月 17th, 2009

こんにちは、なかわけです。

今日は久しぶりにFlashの話です。いつもの備忘録です。
as3corelibで提供されているJSONユーティリティを使います。

エンコードの場合、

package {
	import flash.display.Sprite;
	import com.adobe.serialization.json.JSON; 

	public class encodeJson extends Sprite {
		public function encodeJson():void {
			var encodedJson:String = JSON.encode({
				'name' : 'nakawake',
				'type'  : 'neko',
				'age'   : 3
			});
		}
	}
}

デコードの場合(ウェブから取得してきた場合)

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.IOErrorEvent;
	
	import com.adobe.serialization.json.JSON; 

	public class decodeJson extends Sprite {
		public function PostAndLoad() {			
			var request:URLRequest = new URLRequest('./json.php');
			var loader:URLLoader = new URLLoader();
			loader.load(request);
			loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
			loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
		}

		//ロードが正常に完了したとき
		private function loaderCompleteHandler(event:Event):void {
			var json:Object = JSON.decode(loader.data); 
			trace(json['name']);
			trace(json['type']);
			trace(json['age']);
		}

		//ロードに失敗したときの処理
		private function errorHandler(event:IOErrorEvent):void {
			trace("失敗したー");
		}
	}
}

こんな感じ

EC-CUBEエラーチェックの項目

火曜日, 8月 4th, 2009

こんにちは、なかわけです。

今日もEC-CUBEの話。メモです。

class内のエラーチェックの項目について少し解説している記事があったので、メモ。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=3386&forum=2

SPTAB_CHECKの意味がわからなかったんだよね。