10月 06 2011

cssやjsファイルを圧縮するCodeIgniterライブラリー

cssやjsファイルを圧縮して1ファイルにしてくれる便利ライブラリー
https://github.com/bstrahija/assetsからダウンロード

解凍するとconfig、helpers、librariesのディレクトリができる
そのうちconfig/autolod.phpは書き換えてなければ上書きしてもいいが以下の部分を変更する

//$autoload['libraries'] = array();
$autoload['libraries'] = array('assets');

//$autoload['helper'] = array();
$autoload['helper'] = array('url', 'file', 'directory', 'string', 'assets');

//$autoload['config'] = array();
$autoload['config']  = array('assets');

autoloadのlibraries,helper,configを変更

デフォルトではドメイン直下のassetsの
assets/css
assets/js
が読み込まれ、
assets/cachにキャッシュされる。

その辺を変更したい場合はapplication/config/assets.phpを変更。

viewでdisplay_css display_jsをセット



≪参考サイト≫
Javascript・CSSを圧縮・結合するCodeIgniterライブラリ「Simple assets」

10月 06 2011

CodeIgniterでの.htaccess例


	RewriteEngine on
	RewriteCond $1 !^(index\.php|robots\.txt|file)
	RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond $1 !^(index\.php|robots\.txt|file)でindex.php・robots.txt とfileディレクトリへのアクセスを除外。
それ以外はRewriteRule ^(.*)$ /index.php/$1 [L] 全てindex.phpですよ。ってことです。

これでfile/image やfile/cssやfile/jsに画像・css・jsを配置しておけばOK

9月 27 2011

CakePHP初期設定

まずCakePHP: 高速開発 php フレームワークここからダウンロード。
今回は1.3.12 安定版をダウンロードしました。そして解凍。

次に開発したい場所へ中身をコピー。今回はlocalhosot/testでの場合で設定
testに
「app」 「cake」 「vendor」 「plugins」.htaccess index.phpが出来る。「」はフォルダー

ヴァーチャル風にhttp://test.localhost/でアクセスしたい場合はApacheのhttpd.confを編集。
C直下にlocalhostがある場合のパス


	DocumentRoot C:/localhost/test/
	ServerName test.localhost

windowsで開発していると.htaccessが使えないのでwindowsで .htaccess を使うを参考にする

とりあえずApacheを再起動してhttp://test.localhost/へアクセスしてみる。赤いエラーが出てなければ良いとのこと。黄色いエラーは今後直していくので、赤いエラーが出た場合はここまでの設定を見直す。

続いて黄色いエラーをなくす作業


Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 694]

Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\cake\libs\debugger.php, line 698]

この2つは暗号化するハッシュ文字の設定。初期値だとセキュリティ的に問題があるので変更したほうがいいですよってことのようだ。

それぞれapp/config/core.phpの204行目、209行目を適当な英数字に変更するとエラーがなくなる。

つづいて


Cake is NOT able to connect to the database.

これは接続できるデーターベースがありませんよ~~~ってことですね。
データーベースを使わなければこのままで問題ない。使う場合は「app/config/database.php.default」を「app/config/database.php」にリネームして76行目あたりを環境に合わせて編集するようですが、とりあえず詳しくは後で設定します。

まずはページを表示したい。

http://test.localhost/test/に「ようこそ!CakePHP」と表示させてみよう!!!

まずhttp://test.localhost/のtestへアクセスすると/app/controllers/にあるコントローラーのtest_controller.phpが呼び出される。コントローラーは「_controller.php」と名づけるのがルール。
その/app/controllers/test_controller.phpにクラスを作るクラス名にもルールがある。
クラス名はファイル名のtest_controllerを「TestController」とし「AppController」を継承する。

class TestController extends AppController {
    public $name = "Test";
    public $uses = null;
    public $autoRender = true;
    function index(){
    	 $this->set("content", "ようこそ!CakePHP");
    }

    function hello(){
        $this->set("content", "Hello World!");
    }
}

public $nameにはコントローラ名。public $usesはモデルを指定もモデルはDBなどの操作に使用するので今回はnull。public $autoRenderはビュワーを指定します。

この状態でhttp://test.localhost/test/へアクセスしてみると

Missing View

Error: The view for TestController::index() was not found.

Error: Confirm you have created the file: D:\localhost\dewks\app\views\test\index.ctp

Notice: If you want to customize this error message, create app\views\errors\missing_view.ctp

と表示される。http://test.localhost/test/へアクセスするとTestControllerクラスのfunction indexが呼び出される。/test/index.htmlや/test/index.phpってイメージですね。
それでindex用のビュワーが無いですよ!!!って怒られました。。。

そこで/app/views/以下に「test」フォルダーを作りそのtestの下にindex.ctpを作ります。拡張子は.ctp。
/app/views/test/index.ctpを以下のように作成します。


すると「ようこそ!CakePHP」と表示されます。ヘッダーやフッターはデフォルトで成型されてます。

ちなみにhttp://test.localhost/test/hello/へアクセスすると「 function hello」が呼び出されます。/app/views/test/index.ctpと同じように/app/views/test/hello.ctpを作ってあげれば「Hello World!」と表示されます。

じゃトップページhttp://test.localhost/はどうするの?どうもトップページだけ勝手が違うみたいです。
トップページでは/app/controllers/pages_controller.phpがコントローラーのようです。index_controller.phpでは無いので注意。さらにPagesControllerのfunction displayが呼び出される設定。それらは「/app/config/routes.php」で行われているようですので気になるときは見てみましょう。
そこで/app/controllers/pages_controller.phpを作ってみます。

class PagesController extends AppController {
    public $name = "Pages";
    public $uses = null;
    public $autoRender = true;

    function display(){
        $this->set("content", "Top page");
    }
}

このままでは当然ビュワーが無いと怒られます。いままでの流れで行くと/app/views/pages/display.ctpを作ってあげれば良いのだろう。/app/views/pages/はすでに存在するのでdisplay.ctpを作ってみる。中身は/app/views/test/index.ctpと同じ。
するとちゃんと「Top page」と表示されました!!!

初期設定としては、まずここまで!

≪参考サイト≫
PHPフレームワーク「CakePHP」入門
CakePHPを使えるようにしよう

8月 10 2011

PayPal テスト sandbox

まずhttps://developer.paypal.com/ここで通常のPayPalとは別に開発用アカウントを作る。
この開発用アカウントはテストアカウント管理用のアカウント。

開発用アカウントの配下に最低二つ、売り手側のビジネスアカウントと買い手側のパーソナルアカウントを作成する必要がある。
この辺りアカウント作成はPaypal Sandbox(テスト環境)の利用方法
PayPal(ペイパル)テスト環境 Sandboxを参考にさせていただきました。

続いて事業設定から支払いソリューションのセットアップをしなくてはいけないのだけど「今すぐ開始」をクリックすると [500 Internal Server Error]……。。。。。

こちらのサイトで本番用のURLをsandbox用のURLに書き換えて無理やり追加するというやり方を拝見した。Paypal Sandboxの陥りがちな罠
sandboxでログインした状態で以下にアクセスすうるとPayPal for Digital Goodsが追加される。
https://www.sandbox.paypal.com/jp/cgi-bin/?cmd=_product-go&product=additional_payment&signup_profile=dg&fli=true

8月 10 2011

PayPal 使用文字コードを指定する

登録方法はいろいろなページで解説があるのでそれを見てください。

登録後から。。。。
まず、文字コードをセットする。
個人設定→販売ツールで下の「その他の販売ツール」にある「PayPalボタンの言語コード化」へそして詳細オプションへと進む。そこで「エンコード方式」を使用する文字コードにセット。
その下にある「PayPalから送信されたデータと同じエンコード方式を使用しますか(IPN、ダウンロード可能なログ、メールなど)?」
これも「いいえ」を選んで字コードにセット。これは決済の判定などの返却情報が送られてくる文字コード。
ここをUTF-8にするとウェブサイトの言語が西欧言語(英語を含む)になってるけど、UTF-8だから問題ないと思う。