2月
02
2010
0

[firefox][アドオン]Drag&DropZonesのアップデートで右クリックが変に
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

前に紹介したFirefoxアドオンの「Drag&DropZones」ですが、今回のアップデートで右クリックのコンテキストメニューのかわりにD&DZが起動する設定が追加されたようです。

悪いことに、アップデートするとデフォルトでその設定が有効になっているため、「あれ?右クリック効かない…。」ってことになると思いますので、その対処法をメモしておきます。

Drag&DropZonesの設定画面

Drag&DropZonesの設定画面


D&DZの設定で一番下のチェックをはずすだけ。

これで、今までどおりの右クリックメニューが開くようになります。

とても素晴らしいアドオンなのでいつも常用していますが、今回のアップデートはよくないなぁ。
アップデートでFirefoxのベースの挙動を変えてしまうようなオプションはデフォルトでオフにしてもらいたいものです。
この記事を書くのもふくめ、朝から余計な時間を使っちゃいましたよ。トホホ。

Written by suzukenn in: 記事 | タグ:
11月
20
2009
0

[Cakephp]Inflectorのメソッドって何があったっけ?なメモ
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

クラスのメソッド :: Inflector :: 実用的な各種の組み込みライブラリ :: マニュアル :: 1.2 Collection :: The Cookbook

よく使うのに、いつも忘れるInflector。
単語を複数形にしたり単数形にしたり、キャメル記法にしたり、人間に読みやすい切り分けをしてくれたり?とにかく便利なInflectorですが、いっつもクラス名を忘れてしまって、検索することすらできない有様。最後には、じゃあ仕方ねーかとCakePHPのマニュアルページを見る羽目になるのでございます。

……毎度大変なので、自前でメモ。

以下、マニュアルから転載

  入力 出力
pluralize Apple, Orange, Person Apples, Oranges, People
singularize Apples, Oranges, People Apple, Orange, Person
camelize Apple_pie, orange_pekoe, people_person ApplePie, OrangePekoe, PeoplePerson
underscore アンダースコアが含まれるように変換されるのは、キャメル記法で書かれた単語のみ(たとえば「camelCase」というようなもの)であることに注意してください。スペースを含むものは小文字に変換はされますが、アンダースコアは含みません。
applePie, orangePekoe apple_pie, orange_pekoe
humanize apple_pie, orange_pekoe, people_person Apple Pie, Orange Pekoe, People Person
tableize Apples, OrangePekoe, people_person apples, orange_pekoe, people_people
classify apples, orange_pekoes, people_people Apple, OrangePekoe, PeoplePerson
variable apples, orange_pekoes, people_people apples, orangePekoes, peoplePeople
slug Slug は特殊な文字を同等なラテン文字に変換し、同等のラテン文字が無いものとスペースはアンダースコアに変換します。また、 slug メソッドはエンコーディングが UTF-8 であることを期待します。
puree puree

使い方

コントローラ、モデル、ビューのどこでも使えます。(多分)
使い方はいたって簡単。

Inflector::camelize(orange_pekoe);
// ⇒ OrangePekoe

って感じで使えます。

Written by suzukenn in: 記事 | タグ:
10月
08
2009
0

[CakePHP][jQuery]Ajaxで論理値を変更(自分用メモ)
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

例えば、「入金済み」「未入金」みたいなフラグがあったとして、
jQueryを使って画面変遷無しで変更する方法のメモ。
※あくまで自分用のメモです。読んで頂いた方に理解できるように書く自信がありません。ごめんなさい。

やりたいこと

cs_20091008_1

変更操作する一覧形式のビュー

【サンプル】
一覧形式のビューの一番上に下記コードを記述
一覧表の入金ボタン(入切)には、onclickでchangePayFlag(id);return false;を記述 *1

<?PHP
	echo $javascript->codeBlock(
'
// 入金ステータス変更
function changePayFlag(id) {
	$.ajax({
		url: "'.$html->url("change_pay_flag").'", // ここで変更処理するアクションを指定($html->urlを使用)
		type: "POST", // メソッドを指定(GETでもいい)
		data: {id:id}, // POSTの場合はデータをセット(コントローラでの受け取り方にコツあり)
		dataType: "html",
		timeout: 10000,
		error: function(XMLHttpRequest, textStatus, errorThrown){
			// 変更が失敗したときの処理
			alert("入金ステータスを変更できませんでした");
		},
		success: function (data) {
			// 変更が成功したときの処理
			var info = eval("("+data+")");
			imgSrc = $("#paidImg"+id).attr("src");
			if (info.paid == "paid") {
				imgSrc = "'.$html->url("/img/icons/money_add.gif").'";
				imgAlt = "入金済み";
			} else {
				imgSrc = "'.$html->url("/img/icons/coins_delete.gif").'";
				imgAlt = "未入金";
			}
			$("#paidImg"+id).attr("src", imgSrc).attr("alt", imgAlt); // 対象の画像とAltを差し替え
		}
	});
}
',
		array("inline" => false)
	);
?>

入金フラグ変更処理

【サンプル】

	// 入金状態変更
	function change_pay_flag() {

		$this->layout = "ajax";
		Configure::write("debug", 0);

		$params = $this->params['form']; // ajaxでPOSTしたデータは$this->params['form']で取得

		if (!isset($params['id'])) {
			$this->flash("引数の指定がありません", "index", 2);
			return;
		}

		$order = $this->Order->read(null, $params['id']);

		if ($order['Order']['pay_flag'] > 0) {
			// 入金済みだった場合は未入金に
			$changeFlag = "0";
			$results['paid'] = "unpaid";
		} else {
			// 未入金だった場合は入金済みに
			$changeFlag = "1";
			$results['paid'] = "paid";
		}

		$this->Order->id = $order['Order']['id'];
		$this->Order->saveField("pay_flag", $changeFlag);

		$this->set(compact("results")); // ここでセットしたresultsは$.ajaxのコールバックに使用する

	}

入金フラグ変更処理のビュー

【サンプル】

<?PHP echo $javascript->object($results); // 配列をJSON形式に変換 ?>

補足

一覧形式のビューに追加したjavascriptコードの$.ajax({success:~~});に書いたvar info = eval(”(”+data+”)”);部分は、入金フラグ変更処理のビューで取得したJSON形式のデータをjavascriptの変数に展開?するために書いています。*2

  1. 正しいことかどうかわからないけど []
  2. 僕もわかってないので説明できないです>< []
Written by suzukenn in: 記事 |
8月
04
2009
2

[PHP]文字列の下○桁を取得する一番の方法を教えていただきました
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

miau_jpさんより、Twitter入電!素敵な方法を教えていただきました。


$keta = 4;
// 文字列
$test = "24578455";
$result = substr($test, -$keta);
// 数字
$test = 24578455;
$result = $test % pow(10, $keta);

// 指定桁数未満の場合0で埋めるなら
$result = sprintf("%04s", substr($test, -$keta));

スッキリしました。miau_jpさん、どうもありがとうございます!

—以下元の記事

例えば

24578455の下4桁、8455を取得したいとき、皆さんならどうやります?
多分セオリー的なやり方はあるんでしょうけど、僕はわからないので、

		$test = "24578455";
		var_dump(strrev(sprintf("%-04.4s", strrev($test))));

こんな風に訳のわからない方法*1 でやってるんですが、お優しい方助言いただけたら幸いです。

  1. strrevで文字を反転させて頭4桁取得、4桁未満なら0埋、で、最後にstrrevで再反転してます。愚かですよね…orz []
Written by suzukenn in: 記事 | タグ: , ,
7月
27
2009
0

[さくらインターネット]大きなファイルをデータベースにインポートする
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

さくらインターネットのphpmyadminからだと、データベースのインポートの際に8MBの制限があり、約12万行ある郵便番号-住所データ(utf-8保存で約26MB)がインポートできずに困ってました。

ググるとダンプしたデータをSSHで実行する方法が見つかったのでやってみたところ…できました!

参考にしたのは「さくらインターネット 質問にマジレスするスレ Part19」スレ

方法

まずはSSHでさくらインターネットのサーバにログイン *1
ちなみに僕はpoderosaってクライアント使ってます。(ほとんど使えないわないけど)
で、以下のコマンド


-h mysql****.db.sakura.ne.jp -u アカウント名 -p DB名(アカウント名と同じ) < SQLファイルの相対パス

処理が完了するまではかなり時間がかかりましたが、無事取り込むことができました。

  1. 詳しい方法はオンラインヘルプに書いてあるよね []
Written by suzukenn in: 記事 | タグ:

| I have been indebted to Aeros Theme. | Background image owner is NASA.