Blogブログ

Category: php

CakePHP ログイン判定

ver: cake 2.4.2 ・変数のセット Controller/AppController.php public function beforeFilter() { // add for login check $this->set( ‘loggedIn’, $this->Auth->loggedIn() ); } 例:ヘッダーで判定 if ($loggedIn) { echo ”. $this->Html->link(__(‘Logout’), array(‘controller’ => ‘users’, ‘action’ => ‘logout’)) . “”; } else { echo ”. $this->Html->link(__(‘Login’), array(‘controller’ => ‘users’, ‘action’ => ‘login’)) . “” }

Cake2.4.2 Simple ACL tutorial メモ

Tutorialでのお勉強。 ACL – Access Control List aro – Access Request Object aco – Accecc Controll Object 1.サンプルテーブル。これでBakeする。 CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password CHAR(40) NOT NULL, group_id INT(11) NOT NULL, created DATETIME, modified DATETIME ); CREATE TABLE groups ( id INT(11) NOT NULL AUTO_INCREMENT […]

jsonp

Ajax関連メモ。 jsonpを使った場合。 var w_jsonfile = 'http://xxxxxx.jp/hoge.php'; $.ajax({ type:"POST", url:jsonfile, dataType: "jsonp", jsonpCallback: 'callback', success:function(data){ console.log(data); }, error :function(XMLHttpRequest,textStatus){ console.log(textStatus); } }); ポイントは、jsonpの場合は、jsonpCallbackパラメータが必要。 jQuery 1.5以降はこれで戻り値を指定する様になったようだ。 詳しくは、http://api.jquery.com/jQuery.ajax/ で、hoge.phpではxmlからjsonへ変換して、上に倣ってcallback()の形で返す。 $xml = "fuga.xml"; $result = simplexml_load_file($xml); $encode = json_encode($result); header("Content-Type: text/javascript; charset=utf-8"); echo sprintf("callback(%s)",$encode); これでOK。

Common components

Cakephp 2.系でコントローラ上で使える共通関数を作ってみます。 まず、controller/Componentに、 CommonComponent.phpを作ります。 今回はデバッグ用関数を作っておきます。 <?php  class CommonComponent extends Component {     public function _d($arr){         echo "<pre>";         print_r($arr);         echo "</pre>";         exit;     } } そしてこれを、Controllerに$Componentsとして追加。       public $components = array('Common');   使いたいときに、 $this->Common->_d($array);   これで確認できます!

use opauth

URL:http://opauth.org/ テストログ。 DLして展開、confファイルの編集。 opauth.conf.php 設置パスと、 ‘path’ => ‘/your_file_path/’, call backのURL, ‘callback_url’ => ‘yourcallback.php’, そして下部のStrategyに、keyやsecretを設置。 次にindex.php上のdefineを別ファイルでも使うので、まとめておく。 新規作成で、define.php。 define(‘CONF_FILE’, dirname(__FILE__).’/’.’opauth.conf.php’); define(‘OPAUTH_LIB_DIR’, dirname(__FILE__).’/lib/Opauth/’); index.phpでは、これをrequireする。 require_once ‘define.php’; 次にtwitterディレクトリを作成。 直下にindex.phpをおき、下を記載。 /** * Define paths */ require_once ‘../define.php’; /** * Load config */ if (!file_exists(CONF_FILE)){ trigger_error(‘Config file missing at ‘.CONF_FILE, E_USER_ERROR); exit(); } require CONF_FILE; /** * Instantiate Opauth with the […]

ec-cube preferd shipping date picker.

ec-cube 2.11.2 お届け時間の指定にDatepicker LC_Page_Shopping_Payment_Ex.phpで、action()をoverride。 Datepickerで使うため、新しく $arrDelivFirstDate $arrDelivLastDate $arrDelivDateSelected を定義する。 // お届け日一覧の取得 /* Add for Datepicker —————————- */ $array_deliverDates = $objPurchase->getDelivDate($objCartSess, $cart_key); $this->arrDelivDate = $array_deliverDates; $num=0; foreach ($array_deliverDates as $key => $value) { if($num===0){ $this->arrDelivFirstDate = $value; } if($num===(count($array_deliverDates)-1)){ $this->arrDelivLastDate = $value; } $num++; } $this->arrDelivDateSelecter = $_SESSION[‘shipping’][0][‘shipping_date’]; /* —– */ payment.tplで、上で定義した変数を使って、datepickerを呼び出す。 下の記述がある辺りで、 お届け時間: <select name=”<!–{$key}–>” […]

EC-CubeとWordPressの連携

WordPress内でEC-cubeのセッションを引き継ごうとして色々ハマったのでメモ。 まずは普通に require.phpを requireしてやったのだが、早速エラー。 で、内容をみてみるとデータベースがつなげてないと。 なんのこっちゃと色々考えた結果、下のエントリーを発見。 http://ec.emerge-group.com/blog/detail.php?id=360 いやー、そういう事だったのか、、 で、wp-config と load.php上の該当変数を修正したら、無事に動いた! 参考になりましたー!

cakephp basic2

cakePHPのメモ。 ■cakePHP 命名規則 1) DB Table ・複数形かつ小文字のアンダースコア法 例: sample_projects 2) Model ・単数形のキャメル記法 例: SampleProduct.php 3) Controller ・複数形のキャメル記法+Controller 例: SampleProductsController.php 4) Action ・小文字のアンダースコア法 例: sample_product() 5) View ・コントローラ名のディレクトリを作り、その中に格納 例: SampleProducts/index.ctp 6) Method ・先頭小文字のキャメル記法 例: sampleProduct() 7) Valiable ・先頭小文字のキャメル記法、ただしクラスは先頭大文字 例: $value, $SampleProduct 8) Constant ・全て大文字 例: CONSTANT ■その他の規則 ・コメントは英語を推奨 ・インデントはタブを使用 ・制御構造は簡略化しない ・ファイル読み込みは include_onceで行う ■番外編 キャッシュの消し方 cake/app/tmp/cache/models/ cake/app/tmp/cache/persistent/ […]