タグ

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

  • [iPhone] UISearchBar の使い方メモ | Sun Limited Mt.

    iPhone アプリで検索機能に UISearchBar を使用したときのメモです。 SearchBar という名前のプロジェクトを ViewBased で作成したとして書きます。 UISearchBar を配置 IB で SearchBarView に UISearchBar を配置します。配置した UISearchBar を右クリックして delegate と File’s Owner を接続しておきます。これでUISearchBar のイベントが SearchBarViewController: に通知されます。 SearchBarViewContoroller.m 検索実行したときは searchBarSearchButtonClicked: が呼ばれます。インクリメンタルサーチなどをしたい場合は UISearchBar の文字が変更されるたびに searchBar: が呼ばれます

    taka222
    taka222 2015/06/02
  • CakePHP モデルの validation の拡張 同じ項目で違うメッセージを出す | Sun Limited Mt.

    CakePHP のモデルの validation の拡張のメモの続きです。 同じフォームの項目で違うエラーメッセージを出したいときがあります。 例えばユーザ登録フォームでユーザID がフォーマットエラーなのか、既に使用されているのかなどです。 models/users.php var $validate = array( 'loginid' => '/^[0-9a-zA-Z]{8}$/', ); function validates($data=array()) { if(empty($data)) { $data = $this->data; } parent::validates($data); // loginid のユニークチェック if ($this->findByLoginid($data["User"]["loginid"])) { $this->invalidate("lo

    taka222
    taka222 2011/03/02
  • CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう! | Sun Limited Mt.

    CakePHP だけではなくフレームワーク全般に当てはまることだと思います。 Fat models and how they change how you use the Model class – cakebaker 私もフレームワークを使い始めた当初はそうだったのですが、モデルに最初からあるメソッドだけを使用してコントローラでなんでもかんでもやってしまっていました。 そうではなく、もっとモデルにオリジナルのメソッドを追加して、コントローラではそれを使用した方がコントローラもすっきりして後から見たときにも何をしているか分かりやすいと思います。 例えばブログの最新エントリ10を find する場合コントローラに $this->Post->findAll(array('Post.is_published' => true), null, array('Post.published DESC'

    taka222
    taka222 2010/12/09
  • SQL のように HTML を解析できる htmlSQL | Sun Limited Mt.

    「真面目にエロサイトを作ってみた」というエントリで紹介されていた、スクレイピングに使われている htmlSQL に興味を持ったので試しに使ってみた。 jonasjohn.de: htmlSQL – a PHP class to query the web by an SQL like language 準備 上記サイトよりダウンロードして解凍した中に入っている “snoopy.class.php” と “htmlsql.class.php” という2つのファイルを使用する PHP からインクルードできるところに入れます。 使い方 実際に Yahoo! のトップページからヤフーニュースのトピックスのニュースタイトルを取ってくるコードを書いてみました。 コードを見てもらえば分かるようにまさに SQL を発行している感じです。 include_once("snoopy.class.php");

    taka222
    taka222 2010/02/19
  • 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

  • CakePHP HtmlHelper::tagValue のHTMLエスケープ処理 | Sun Limited Mt.

    view でモデルの値などを出力する際に $html->tagValue("Model/hoge"); とすれと、HTMLエスケープ処理をしてくれるので便利です。 ただ、 CakePHP 1.1.15.5144以降はHtmlHelper#tagValueに注意 | Shin x blog に書かれているように、CakePHP のバージョン1.1.15.5144 からエスケープするかのフラグが追加されたようです。 以前はエスケープしないを選択できなかったので、それはそれで不便な点もありました。 MOONGIFT ブログ ? CakePHP覚書(HTML Helpler) しかし今回の変更で注意しなければいけないのは、デフォルトでエスケープされていたのがデフォルトでエスケープ処理されなくなったことです。 cake/libs/view/helpers/html.php function tagV

  • [CakePHP] cake api でコアライブラリの API の説明を簡単に見る | Sun Limited Mt.

    CakePHP の cake コマンドは bake くらいしか使っていなかったのですが、cakephper さんの以下のエントリで console api というのを知りました。 console api を使ってみた & 不具合があったのでチケット投げた – cakephperの日記(cakePHP1.2ベース) モデルやヘルパーなどのコアライブラリの API の説明をみることができるものです。 $ cake api model とやると以下のようにモデルのメソッドの一覧がでます。 Welcome to CakePHP v1.2.2.8120 Console --------------------------------------------------------------- App : app Path: /path/to/app ------------------------

  • CakePHP find や findAll の条件指定にちょっとだけ便利な postConditions | Sun Limited Mt.

    CakePHP の コントローラに postConditions というちょっとだけ便利なメソッドがありました。 cake/libs/controllers.php function postConditions($data) { if (!is_array($data) || empty($data)) { return null; } $conditions = array(); foreach($data as $model => $fields) { foreach($fields as $field => $value) { $conditions[$model . '.' . $field] = $value; } } return $conditions; } 例えば検索をするフォームなどで User.name で検索するような場合 view で input('User/na

  • CakePHP グローバル関数 | Sun Limited Mt.

    PHP のネイティブ関数の短縮表記には下記のようなものがあります。 a() => array() e() => echo() low() => strtolower() up => strtoupper() r() => str_replace() am() => array_merge() h() => htmlspecialchars() このような短縮表記の関数を独自に定義して開発に使用されている方も多いと思いますが、CakePHP として定義されていると使用しやすいですね。(特に複数人で開発しているときなど、標準であると助かります。) このほかにも CakePHP には便利な関数が定義されています。 debug($var, $showHtml); DEBUGレベルが0以外のときに、$varが出力される。 print '<pre>'; print_r($var); print '</

  • [CakePHP] 画像のアップロード&リサイズを簡単にできる ImageBehavior | Sun Limited Mt.

    画像のアップロード&リサイズ処理などは割とよくある処理でかつ面倒なものです。その処理を簡単にやってくれる Imageビヘイビアの紹介です。CakeFest で紹介された Media Plugin が高性能なので、メディアプラグインを使うのがいいのかもしれませんが、以前から Image ビヘイビアに関していつか使い方をまとめようと思っていたので紹介します。 参考サイト:ActAs Image column behavior (Articles) | The Bakery, Everything CakePHP Baker で紹介されていた Image ビヘイビアです。このビヘイビアはアップロードされた画像をサムネイル作成、リサイズ、複数のバリエーションのサイズの画像を作成してくれます。またモデルを find すると画像のパスを返してくれます。 作成される画像は、webroot/img/[Mo

  • [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

  • [CakePHP] SoftDeletable Behavior で論理削除 | Sun Limited Mt.

    先日の第4回 CakePHP 勉強会で発表した内容でもあるのですが、簡単に SoftDeletable Behavior の使い方をまとめました。(少しだけ発表ないようにない追加情報もあります) SoftDeletable Behavior はソフトデリート(論理削除)を簡単に実現してくれる大変便利なビヘイビアです。論理削除とは DB から DELETE するのではなく削除フラグを設けて DELETE する変わりに削除フラグを立てて削除したことにすることです。 一番参考になるのはやはり Bakery です。英語が苦にならない方は私の説明よりも下記エントリを見る方がいいです。 Soft Deletable Behavior (Articles) | The Bakery, Everything CakePHP 勉強会で発表した資料は下記にありますので、よろしければこちらもご覧下さい。 Cak

  • 【OpenPNE カスタマイズ】バリデーションを行う ini ファイルの書式 | Sun Limited Mt.

    OpenPNE のバリデーション処理を定義する ini ファイルの書式に関するメモです。 例えば ?m=pc&a=page_hoge という URL に対するバリデーションを行うときには /openpne/webapp_ext/modules/pc/validate/page/hoge.ini というファイルを作成します。 hoge.ini ファイルには以下のようにバリデーションを定義します [name] type = "string" required = 1 caption = "名前" [age] type = "int" required = 1 caption = "年齢" min = 18 max = 99 [tel] type = "regexp" required = 0 default = "" caption = "電話番号" regexp = "/^\d{2,4}-\

  • OpenPNE | Sun Limited Mt. - Part 2

    OpenPNE で個人情報などを送信するようなフォームや管理画面を SSL で接続する方法です。 SSL を使用するように設定を変更する openpne/config.phpの以下の行を変更 特定ページを SSL で接続するように設定 define('OPENPNE_USE_SSL_PARAM', false);をdefine('OPENPNE_USE_SSL_PARAM', true);に変更 これだけで特定ページが SSL で接続されるようになります。 SSL を使用したいアクションを追加する デフォルトで SSL 接続されるようになっているページ以外も SSL 接続にしたい場合は $GLOBALS['_OPENPNE_SSL_REQUIRED'] = array( 'pc' => array( 'page_o_regist_prof', 'page_o_regist_prof_con

  • OpenPNE PHP で作成したプログラムを組み込む | Sun Limited Mt.

    OpenPNE PHP で作成したプログラムを組み込むときのメモです。 基的に、/openpne/webapp_ext/ 以下に追加するファイルを置きます。 URLのパターン OpenPNE の URL は下記のようになります。 ?m=pc&a=page_hoge_foo ?m=pc&a=do_hoge_foo 携帯だと m=ktai とかになりますが、今回はPC のみ考えます。 page_hoge_foo のパターンはページを表示する do_hoge_foo のパターンはモデルに対して処理を行う page_hoge_foo でモデルに対して処理を行うこともできるが MVC の意味がないかも。 ?m=pc&a=do_hoge_foo のURL を追加する /openpne/webapp_ext/modules/pc/do 以下に hoge_foo.php を作成 hoge_foo.php

  • 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

  • 1