10月
29
2008
0

[メモ]PHPEclipseのカラースキーマをPHPエディタに合わせる
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

概要

長年1 PHPエディタを使ってきたので、ソースのカラーはPHPエディタと同じがやりやすいってことでその設定メモ。

余談だけど、Eclipseはすぐ壊れる…。
考えなしにプラグインをバンバン入れたりするとあっちがおかしくなり、こっちがおかしくなり。
そのたびに環境を作り直してるんだけど、こういうメモは必須だね。こうやって何度も作っているうちに自分色の安定した開発環境ができていくのかなぁと、まだ先はなげーなーと、そんなことを思いながら現在環境を再構築中。

さらに余談だけれど、この間CakePHP東京カンファレンスのLIVEでXoopsのすごい人のコーディング姿を見ることができたんだけど、完全にCUIのエディタでやってるのね。
慣れるとEmacs?みたいなシンプルなエディタの方が早いって言うけどどんなものなんだろう。
例えばextendsしてるクラスのメソッドを辿ったりするときにEclipse使えば1クリックでそのファイルのそのメソッドを開けるけどCUIのエディタだとどうなるんだろう?grepみたいに検索してそれを別ウィンドウで開くみたいな感じ?
なんかもう完全に独り言になっちゃってるけど、スキルを持った人たちがどんな環境で開発しているかってすごい興味あるんだよなぁ。

手順

  1. ウィンドウ->設定->PHPEclipse->PHP(PHPエディタ設定)を開く。
  2. 構文のタブを選択

以下のように変更

  • 「複数行コメント」「単一行コメント」をオレンジ
  • 「PHPタグ」はに(PHPエディタと違うけど)
  • 「’return’を除外したキーワード」は
  • 「事前定義関数名」は
  • 「変数」は両方とも
  • 「定数」はわかりやすいようにそのまま赤紫
  • 「文字列」は両方とも

多少違うところもあるけど、まあまあ同じような心持ちで使えるようになったかな。

  1. といっても1年ちょっとだけど []
Written by suzukenn in: 記事 | タグ: , ,
10月
25
2008
0

[EC-CUBE]CSV出力項目設定の高度な設定を修正
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

注意!

20081106追記

下記の修正方法は「LC_Page_Admin_Contents_CsvSql_Ex」の基底クラス「LC_Page_Admin_Contents_CsvSql」を直接編集してしまう、オススメできない方法です。1
最新の記事をHappyQuality » CSV出力項目設定の高度な設定の修正にアップしたのでこちらを参照してください。

概要

EC-CUBEの管理画面->コンテンツ管理->CSV出力項目設定->高度な設定
画面で、SQL一覧からクエリを選んでも下のテキストエリアにソースを吐かないので、おかしいと思い調査しました。

結果バグを見つけましたのでそいつを修正。

修正方法

対象ファイル
/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.phpのfunction process

コメントの認証可否判定のすぐ下に以下のソースがあるのでコメントアウトすればOK

if (!isset($_POST['mode'])) $_POST['mode'] = "";
if (!isset($_POST['sql_id'])) $_POST['sql_id'] = "";
if (!isset($_GET['sql_id'])) $_GET['sql_id'] = "";
if (!isset($_POST['selectTable'])) $_POST['selectTable'] = "";

$_POSTがif文やswitchで参照されているので本当は別の変数に代入した上で上記と同等の処理をして、if文やswitchに渡せばいいと思うんだけど(というか普通そうするんじゃないの?)、面倒だからコメントアウトだけやった。

解説

まずはこれを見て欲しい。

// POSTされたデータをセットする
if (count($_POST) > 0) {
$arrSqlData[0]['sql_name'] = isset($_POST['sql_name']) ? $_POST['sql_name'] : "";
$arrSqlData[0]['csv_sql'] = isset($_POST['csv_sql']) ? $_POST['csv_sql'] : "";
}
$this->arrSqlData = $arrSqlData[0];	// 選択されているSQLデータ

これを見る限りPOSTがあったら$arrSqlData[0][なにがし]のそれぞれの配列に$_POST[なにがし]を入れたかったんだろうけど、お前さん最初に$_POSTに空文字代入してるからPOST無くても入っちゃうよと。count($_POST)は3になるから。

if (!isset($_POST['mode'])) $_POST['mode'] = "";
if (!isset($_POST['sql_id'])) $_POST['sql_id'] = "";
if (!isset($_POST['selectTable'])) $_POST['selectTable'] = "";

この分ね。

このことによってPOSTがなくて$sql_idが指定された場合でも
$arrSqlData[0]['sql_name']
$arrSqlData[0]['csv_sql']
を上書きしちゃうから、

// 編集用SQLデータの取得
if ($sql_id != "") {
$arrSqlData = $this->lfGetSqlList(" WHERE sql_id = ?", array($sql_id));
}

ここでわざわざDBからとってきた$arrSqlDataが意味ねーよってことになっちゃうんだね。
以上、おしまい。

  1. 無知ゆえの過ちでした…^^; []
Written by suzukenn in: 記事 | タグ:
10月
24
2008
0

[Mylyn]Trac+Mylynを使いこなす
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

概要

Tracのチケット操作をEclipseからできることを知り、早速チャレンジしてみました。

参考サイト

Eclipseへのセットアップはここを参考にすれば問題ないと思います。
Mylyn&Tracでリズムに乗ってタスクを大掃除♪ (1/4) – @IT

スクリーンショットを交えて解説してくれているのでわかりやすいです。そのおかげで勘違いに気付くこともできました。
試験管のなかのコード :: Mylar で Eclipse + Trac Ticket 連携にチャレンジ

20081029追記
Mylynのtracコネクタは
http://download.eclipse.org/tools/mylyn/update/extras
のアップデートサイトからインストールしました。

注意点

新規クエリーを作るときに、条件なしで全て取得したかったんだけど、勘違いして全ての項目を指定してしまったら、全然タスクが表示されなくて焦った(汗
すべての条件を指定しちゃうと、タスク(チケット)の選択項目(コンポーネントとかバージョンとか)を省略して作ったものが表示されないんだよね。当たり前だよね。

それに気付かず1時間くらいアレコレやってましたよ…orz

わからない点はお気軽にコメント欄へどうぞ。

Written by suzukenn in: 記事 | タグ: , , ,
10月
23
2008
0

[trac]リポジトリブラウザのdiffでソースの文字化けを防ぐ
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

概要

やっとこさ使い始めたSubversionでコミットしたときにTracのタイムラインに掲載されるのを見てウハー素敵!とか思って開いてみたら文字化けしててOTZきちゃったので直した。
ちなみに文字化けするのはリポジトリブラウザのdiffの全角文字部分。

手順

  1. Tracのメニューから管理->trac.iniのtrac->default_charsetをcp932からutf-8(任意の文字コード)に変更

でOK。

Written by suzukenn in: 記事 | タグ: ,
10月
23
2008
0

[PHPEclipse]phpヘルプを日本語にする
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

概要

キーワードを選択してCtrl+Shift+HでPHPのヘルプを開くことができるが、デフォルトでは英語のマニュアルです。英語アレルギーかつ物覚えが悪くてヘルプに頼りきりだったわたくしとしましては、これを日本語にできないとPHPの開発環境としては到底使えませんので、こいつを日本語にします。
(PHPエディタはこういうところがすごく簡単でよくできてたよなぁ~)

すげー苦労したので、同じ轍を二度と踏まぬよう、日本語化成功にいたるまでの経緯を残しておきます。

ダメだった方法

PHPEclipseをインストールするとpluginsフォルダに生成される「net.sourceforge.phpeclipse.phphelp_バージョン番号」というフォルダの中の「doc.zip」の中身をこちらからダウンロードできるMany HTML filesに置き換えると日本語化できるらしいという情報がF’s Garage JUGEM出張所 | 10分では作れないけど強力なPHP開発環境にあったので、その通りやってみました。

結果、同じディレクトリ構成にしてzipしてもまったく参照できないという問題にぶち当たりました。
で、圧縮するツールの問題かと思い7z,winrar,windowsデフォのzip圧縮全て試してみましたがやっぱりダメ。
ちなみに元のzipに置き換えると英語版のヘルプはちゃんと開ける。で、その元のファイルを一度解凍して再圧縮すると開けないという…圧縮方法に何か秘密があるんじゃろか?

とにかくこの方法じゃらちがあかないし、別の方法が無いかとアレコレやってましたら見つけました。

chmファイルを読み込む設定

chmファイルを読み込む設定

chmファイル読めるんじゃねーか!

うまくいった方法

というわけで、あらためてこちらからchm形式のヘルプファイルを拾ってきます。
で、こいつをどっかに保存して上の設定画面からそのファイルを指定してやればOK!
といいたいところですが、残念ながらそうは問屋がおろしてくれませんでした。

まず、目次は表示されますが目次をクリックしてもページが開きません。
更にはキーワードは文字化けしててまったく使えません。とにかくダメな奴なんです。

まあphp_manual_ja.chmのキーワードが化けるというのは前から知っていたし、ページが表示されないのもそのせいだろうと踏んで、とりあえず文字化け問題を解消することにします。

blog.plastik.jp » php マニュアル(chm版) 文字化け解消方法

こちらのサイトを参考させていただきましたが、拾ってきたchmファイルを文字化けせずに読むには再コンパイルしてやる必要があるそうです。
コンパイルとかまったくわからねーですけど、言うとおりにやるとバッチリちゃんと読めるヘルプが出来上がります。よかったですね~

じゃあやってみましょう。
PHPEclipse立ち上げてー、キーワードを選択してー、ハイCtrl+Shift+Hです!
はい、表示されませんねー。残念。

怒らないで続きを読んでください。
これじゃダメなんですねー。PHPEclipseヘルプの設定画面をよく見てください。

hh.exe “mk:@MSITStore:{0}::/en/function.{1}.html”

PHPヘルプコマンドがenつまり英語版のヘルプの位置を指してるんですね~。

なので、ここを

hh.exe “mk:@MSITStore:{0}::/ja/function.{1}.html”

に変えてやります*1

ほらっ!できたでしょ?
この件結構悩んでる人いるんじゃないかと思うんですがいかがですか?
ここ読んで解決したって方はコメントで解決したと書いてくれると嬉しいです。

あと、コンパイルとかめんどくせーって方いると思うんですけど(私もそうでしたが)、需要があればアップします。ライセンス的にはオープン・パブリケーション・ライセンスとかって事で大丈夫そうですし、実際webにあげている人はいっぱいいますしね。
ということで、欲しい人はコメントにでも書いておいてください。

.

  1. ↑をそのままコピペするとダブルクォーテーションが全角になるようなので注意してくださいね。僕もずいぶんとハマりました汗 []
Written by suzukenn in: 記事 | タグ: , ,

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