タグ

ブックマーク / blog.syuhari.jp (11)

  • [CakePHP] Firefox で CakePHP API を簡単に検索する方法 | Sun Limited Mt.

    Firefox の検索バーに CakePHP API の検索を追加して簡単に CakePHP API を検索する方法です。 下記エントリで紹介されています。 Easy CakePHP API search with Firefox ? nuts and bolts of cakephp こんな感じになります。 やり方は簡単です。 以下のサイトにアクセスして CakePHP API というリンクをクリックするだけで、Firefox の検索バーに追加されます。 Mycroft Project: Cakephp Search Engine Plugins – Firefox & IE7 例えば検索バーに “find” とか入れて検索すると以下のように検索できます。 CakePHP: the rapid development php framework: Api : Api Classes ショ

  • [CakePHP] Sluggable Behavior で日本語を扱う方法 | Sun Limited Mt.

    beforeFind メソッドを追加するコードが抜けていたので追記しました。(2009.6.2) 前回書いた[CakePHP] Sluggable Behavior の使い方の最後で少し書いた、スラグに日語を使う方法です。 日語を使うには slug.php を少々カスタマイズする必要があります。 beforeFind メソッドを追加 function beforeFind(&$Model, $queryData){ $slug_column = $Model->alias.".".$this->__settings[$Model->alias]['slug']; if (isset($queryData["conditions"][$slug_column])) { $queryData["conditions"][$slug_column] = urlencode($queryDat

    k1LoW
    k1LoW 2009/06/02
    behavior
  • CakePHP1.2 Security コンポーネントを使用して SSL でのみアクセスを許可する | Sun Limited Mt.

    開発案件でアクション毎に SSL でのアクセスを必須にしたかったので調べていたところ下記の情報がありました。 SSL経由でのアクセスを必須にする[CakePHP] YARETOKO「ヤレトコ」メインブログ 早速 cake/cake/libs/controller/components/security.php のソースを確認して検証してみました。 SSL でアクセスするアクションの指定 特定のアクションのみを指定したい場合 <?php class UsersController extends AppController { var $components = array('Security'); function beforeFilter() { $this->Security->requirePost('delete'); } } ?> 管理画面のみを指定したい場合 <?php cla

  • CakePHP1.2 で XML を配列として扱う方法 | Sun Limited Mt.

    CakePHP1.2 で XML を配列として扱う方法です。 XML を string として保持している場合 uses('Xml'); $file = file_get_contents('/path/to/xml_file'); $xml = new XML($file); $xml_array = Set::reverse($xml); URL から XML を読み込んで直接配列にすることもできます。 uses('Xml'); $xml = new XML("http://www.syuhari.jp/blog/feed"); $xml_array = Set::reverse($xml); XML クラスは cake/libs/xml.php で定義されています。 Set::reverse メソッドはオブジェクトを配列に変換します。 まだ RC1 は試していないので CakePHP

  • CakePHP の開発を簡単にする 5 つの Tips | Sun Limited Mt.

    “開発を便利にする5つのTips” フォーラム – CakePHP Users in Japan で紹介されていた記事です。 Make your life easier with these five CakePHP Quicktips ? Debuggable Ltd 1. prd という便利な関数を作成する pr($someVar); die; というコードをよく書くなら prd という関数を作ってしまえば、もっと楽できますね。 function prd($var) { pr($var); die; } 2. メール送信のデバッグ方法 Email コンポーネントを使用しているならデバッグモードが使用できます。 $this->Email->delivery = 'debug'; // debug モードにする $this->Email->send(); // メール送信 prd($thi

  • CakePHP1.2 「新規時のみ」or「更新時のみ」のバリデーション指定 | Sun Limited Mt.

    CakePHP1.2 からバリデーションがかなり強力になっていますが、レコードを追加するときまたはレコードを更新するときのみにバリデーションルールを適用する指定方法がありました。 var $validate = array( 'name' => array( 'required' => true, 'allowEmpty' => false, 'on' => 'update' 'message' => '名前を入力してください', ), ); ‘on‘ に ‘create‘ と指定すると新規追加のときにチェックされ、’update‘ と指定すると更新時のみチェックされます。新規追加か更新かの判定はデータベースを id で検索してデータがあるかないかで判定します。(当然ですが) デフォルトは null で null の場合は新規追加、更新のどちらでもチェックされます。 SNS などであるよう

  • CakePHP1.2 に SimpleTest をインストール | Sun Limited Mt.

    CakePHP1.2 では SimpleTest を使用したユニットテストが行えます。 テスト実行用スクリプトは app/webroot/test.php です。ブラウザからこのスクリプトへアクセスします。 まだ SimpleTest をインストールしていないと上記のような画面が出ます。 この画面から SimpleTest のダウンロード先へリンクがあるのですが、なぜかリンクが切れています。下記 URL でアクセスできます。 http://simpletest.org/en/download.html ダウンロードして解凍したものを app/vendors か vendors ディレクトリに設置します。 設置後に再度 test.php へアクセスすると下記のような画面になります。 これで SimpleTest の準備は完了です。 試しに「Available Core Test Groups

  • CakePHP1.2 Form ヘルパーで日付のフォームを作る | Sun Limited Mt.

    CakePHP1.2 の Form ヘルパーを使用して日付のフォームを作成したときのメモです。 $attr = array('minYear' => 2000, 'maxYear' => date('Y'), 'separator' => ' / '); echo $form->dateTime('Model/field', 'YMD', 'NONE', date('Y-m-d'), $attr); とすると下のような日付を選択するフォームができます。 第2引数の ‘YMD’ で年月日の並び順を指定します。日付を表示しない場合は ‘NONE’ を指定します。 NONE 非表示 YMD 年月日の順に表示 DMY 日月年の順に表示 MDY 月日年の順に表示 第3引数で時間表示の指定をします。 NONE 非表示 12 時間を12時間表示 24 時間を24時間表示 第4引数でデフォルトの日時を指定

  • CakePHP1.2 のバリデーション | Sun Limited Mt.

    CakePHP 1.2 を使用してフォームを作成してバリデーションを使用したメモです。 下記サイトを参考にさせていただきました。 cakePHP 1.2のバリデーションを理解する – cakephp – クロアチアで働くプログラマー日記 例としてメールアドレスを2回入力させるフォームを考えて見ます。 バリデーションルールとして 必須項目 メールアドレスとして正しい メールアドレスがユニーク 2回入力したメールアドレスが一致する モデルにバリデーションを定義する var $validate = array( 'email' => array( 'unique' => array( 'rule' => array('checkUnique', 'email'), 'message' => 'メールアドレスは既に登録されています' ), 'rule1' => array( 'rule' => a

  • CakePHP 1.2 の saveAll その1 | Sun Limited Mt.

    CakePHP 1.2 から model に saveAll メソッドが追加されました。 同一モデルへの複数データの一括保存やアソシエーションのモデルのデータの保存が saveAll でできます。 同一モデルへの複数データの保存 $data = array( array('name'=>'tanaka'), array('name'=>'suzuki'), array('name'=>'yamada') ); if ($this->User->saveAll($data)===false) { $this->Session->setFlash('保存に失敗しました'); } else { $this->Session->setFlash('保存しました'); } ただβバージョンのためか、saveAll の戻り値が成功時には NULL 失敗したときには false が返って来ます。 そのた

  • CakePHP jQuery を使用した Ajax ファイルアップロード | Sun Limited Mt.

    下記ページを参考にさせていただきました。 “jQueryを使ったAjaxファイルアップロード” フォーラム – CakePHP Users in Japan David Golding Design Blog - 上記ページでは jQuery を使用してテキストファイルをアップロードしてテキストの内容を表示するというものですが、画像をアップロードしてアップロードした画像をフォームの下に Ajax を利用して表示するというのをやってみました。 jQuery 使用準備 jquery.js と jquery.form.js を app/webroot/js/ 以下に配置します。 アップロードするビューで上記 JavaScript ファイルを読み込むため下記コードをビューに追加します。 <?php echo $javascript->link(array('jquery.js','jquery.f

  • 1