複数選択型のプルダウン
単一選択のプルダウンを複数選択型に変更する為のTipsです。
複数選択型と言っても従来のselectタグではなく、チェックボックスを
使ったプルダウン表示に変更させる方式です。
(prototype.jsを利用しています)
言葉だけではイメージし難いと思いますので、サンプルを参照してください。
上側に従来のプルダウン、下側に同じ要素の複数選択型プルダウンが表示されています。
DAY4: リファクタリング
おさらい
さて、askeet1.2チュートリアルも4日目です。本家のチュートリアルに沿ってきていますので今日もそうしましょう。
本家では今日はりファクタリングのチュートリアルとなっていますが、まとめると以下のような内容です。
* 回答の一覧を表示
* アクション、テンプレートの編集
* テストデータをバッチで投入
* モデルの修正
* ルーティングの設定
かなりのボリュームです。さぁ、がんばりましょう。
DAY3: MVCアーキテクチャ
おさらい
2日目でデータモデルに基づいたモデルクラスの作成方法と、フォームモデルの作成方法について簡単に行ってみました。
3日目ではsymfonyのアーキテクチャについて理解していきましょう。
その中でsymfonyのアプリケーション、モジュール、アクションという概念を理解しておく必要があるので、Definitive Guideを読んでおいてください。
ref: コントローラー層について
ref: 日本語版(1.1)
Read more
PHPからPDFを作ってみました(TCPDF利用)
とあるPHPで作成したシステムで、PDFを表示することになりました。
ネットで調べたところ、難なく以下フリー(?)ウェアを発見。
- PDFlib(ライセンスが無いとロゴ付きらしい。)
- FPDF
- TCPDF
js 一覧表示のチェックボックス関連の制御をまとめたクラス
prototype.jsやjQueryの出現でajaxに限らずJavaScriptでのプログラミングが随分に楽になりました。
今回は検索結果一覧などテーブル内の複数行などに、データ選択用のチェックボックスがつけられているケースで、よく使う制御を簡単に実装できるようにまとめたクラスをprototype.jsをベースに作成してみました。
DAY2: データモデルの作成
昨日はsymfonyのセットアップと画面をブラウザで表示させるところまでいきました。
今日はアプリケーションで使用するデータモデルを作成していきます。 Read more
CakePHP Tips:ドラッグ&ドロップでデータを並び替える
マスターのメンテナンス機能やCMS系の機能を開発する際に、データの並びをユーザーが自由に設定できるようにしたいという要件はよくあります。
CakePHPとprototype.jsを使えば、ドラッグ&ドロップでデータの並びを設定することが簡単に実装できます。
今回のサンプルはこちらで確認できます。
id, name(果物名), position(position) の3カラムのfuruitsテーブルのデータを並び替えています。
補足:PHP5限定 CakePHPのView内の関数処理を綺麗に記述する
TechSiteのほうに
PHP5限定 CakePHPのView内の関数処理を綺麗に記述する
の記事を投稿しましたが、少し補足します。
想定としては、PHPの標準の文字列関数などを使うことを想定していますが、->のメソッドチェーン形式で単純に処理を繋げられるケースは処理を行う文字列が第1引数にくる場合だけです。
【対象の関数例】
substr、trim、mb_convert_kana、など。
ですが、PHPの標準関数は対象文字列が常に第1引数になっている訳ではありません。
str_replace(’変換対象文字列’, '変換文字列', $string)
のように対象が最後にくるケースもあります。
この場合でも、一応、、
-
fx($string)->p()->str_replace('AAA', 'BBB')->e();
といった感じにp()を直前に記述すれば、次の処理は最後に文字列を渡すようにしています。
ですが、ちょっとイマイチなので、何か良い案はないでしょうか??
CakePHP Helper 一行置きに背景の色を変える
最近はCakePHPなどのフレームワークを使って開発することが多くなり、利用する機会が減ってしまいましたが、以前はSmartyをよく使っていました。
Smartyを使っていて便利だと思ったのがcycle関数です。
この関数はデータの一覧を表示する際などに下表のように一行置きにテーブル行の背景色を変更する場合などに重宝していました。
| 松井 秀喜 | ヤンキース |
| 井川 慶 | ヤンキース |
| イチロー | マリナーズ |
| 城島 健司 | マリナーズ |
| 福留 孝介 | カブス |
| 岩村 明憲 | レイズ |
| 松坂 大輔 | レッドソックス |
| 岡島 秀樹 | レッドソックス |
CakePHPで開発する際は、基本的にはテンプレートは素のPHPで記述しています。PHPでもちょっとしたIF文を記述すれば同様のことはすぐにできるのですが、、結構利用頻度が高そうなので簡単なCycleヘルパにしてみました。
DAY1: プロジェクトの作成
symfonyではaskeetという24日間かけてsymfonyでQ&Aサイトを構築するチュートリアルがあり
「凝ってるなー」と新鮮味を感じていたのも過去の物。
というのも、symfonyのバージョンが1.1さらには1.2と移行されていくなかで
symfony1.0ベースのaskeetチュートリアルは、チュートリアルとして中途半端なものになっています。
というわけで、これからsymfony1.2をベースとして実際にaskeetを作成してみようと思います。
また、ただsymfony1.0版askeetを移植するだけでは面白くないので、
1.0系の解説とは異なる方法でアプリケーションを作っていきたいと思います。
Read more