syokunin のすべての投稿

ディレクトリ以下のファイルパーミッションを一括変更

■拡張子(ファイル支持子)がcgiのファイルのみ変更
findで/path/to/dir以下の*.cgiを検索してパイプとxargsでchmodに渡す

[code]find /path/to/dir -name “*.cgi” | xargs chmod 755[/code]

■ディレクトリのみ変更
findでtype指定してからパイプとxargsでchmodに渡す

[code]find /path/to/dir -type d | xargs chmod 755[/code]

——————–
※ xargs=標準入力からコマンドラインを作成し、それを実行する
——————–

openWYSIWYGをsslで呼び出すときIEで警告

openWYSIWYGをsslで呼び出すとき「セキュリティーで保護されている項目と保護されていない項目うんぬん」の警告がでる。

openWYSIWYGでは編集エリアにiframeを使っていてJSで生成している

<iframe frameborder=”0″ id=”wysiwyg’ + n + ‘”></iframe>

ここに以下のようにSRC属性を記述

<iframe src=”/?scid=dummy.htm” frameborder=”0″ id=”wysiwyg’ + n + ‘”></iframe>

同ディレクトリにdummy.htmを配置

(参考)
FRAME/IFRAME を含むページを SSL により参照するとセキュリティ警告メッセージが発生する
http://support.microsoft.com/kb/261188/ja

Ethna コマンド

■プロジェクト作成
cd /path/to/project
ethna add-project sample

■actionファイル作成
ethna add-action action_name

■viewファイル作成
ethna add-view -t view_name
※-t でテンプレート同時作成

■appObject
ethna add-app-object object_name

■cli用
ethna add-action -g cli file_name

■ethnaローカルでのpearパッケージ管理
ethna pear-local install package_name

レイヤーとSelectタグ

javascriptで生成したレイヤーがドロップダウン(Selectタグ)に重なると、
いくらzindexを指定してもドロップダウンが上に表示されてレイヤーが隠れてしまう。
(IEのみ)

はまったので書いておく。

http://jp.bea.com/dev2dev/pub/a/2005/4/portal_menus..html

原因その1


IEを開発する際、HTMLのSELECT要素の実装として、コンボボックス(ウィンドウコントロール)の
Windowsにおける既存の実装を使用するようにしました。さらに、ActiveX、Flash、Adobe PDF
ビューアなどの他の埋め込みオブジェクトは、ウィンドウコントロールとして実装されています。

原因その2

問題が発生するのは、HTML要素のzIndexとウィンドウコントロールのzIndexは扱いが異なり、
IEでは常にウィンドウコントロールがすべてのHTML要素の上に配置されるためです。

#マイクロソフトふざけるなと。

対策


IE 5.5以上では、IFRAME要素のzIndexは、ウィンドウコントロールとHTML要素の両方で処理されます。
つまり、SELECTの上にIFRAMEを配置することができ、IFRAMEはSELECTウィンドウコントロールを
覆います。さらに、DIVをIFRAMEの上に配置することができ、DIVの下にあるIFRAMEまたはSELECTが
透過して表示されることはありません。

ということで、iframeの上にレイヤーを生成しろと。
(レイヤーに重なるselectを非表示にする手もあるかも)

=======================================================
以下参考例

<html>
<head>
<style type=”text/css”>
<!–
#area1{
width:300px;
position:absolute;
display:none;
z-index:20;
}
#area_dummy {
width:300px;
position:absolute;
display:none;
z-index:10;
}
–>
</style>
<script type=”text/javascript”>
<!–
function showArea() {
var isMSIE = /*@cc_on!@*/false;

var objArea1 = document.getElementById(‘area1’);
var objAreaDummy = document.getElementById(‘area_dummy’);
objArea1.style.display = ‘block’;

// IEの場合、selectとの重なりを考慮してダミーのiframeを表示
if(isMSIE == true) {
objAreaDummy.style.display = ‘block’;
// 高さを合わせる
objAreaDummy.style.height = objArea1.offsetHeight;
}

//実際にはポジション決めをここに
}
// –>
</head>
<body>

<input type=”button” value=”レイヤー表示” onclick=”showArea()”>

<div id=”area1″></div>
<iframe frameborder=”0″ framespacing=”0″ id=”area_dummy”></iframe>

</body>
</html>

mod_rewriteのオプション

■RewriteCond
[NC] —– 大文字小文字を区別しない。
[OR] —– 複数条件をORで連結。(ディフォルトAND)

■RewriteRule

[R] —– “302 Moved Temporaily”のレスポンスを返しクライアントをリダイレクトする
[L] —– 条件にマッチした場合そこで判定を終了する(以下に続くRewriteRuleを評価しない)
[NS] —– 一次的なURLリクエストの場合のみ条件を評価(サーバー内部で発せられるサブリクエストの場合は判定をスキップする)
[N] —– 書き換えが済んだURLを新たなリクエストとして書き換え処理を再度最初のルールから繰り返す
[C] —– 次のRewriteRuleと条件を結合する(置換禁止文字列”-“を用いて複数の条件をANDで複合適用する場合に用いる)
[F] —– マッチしたURLへのアクセスを禁止する(クライアントには”403 Forbidden”のレスポンスが返される)
[P] —– PROXYモジュールを使用して他のサーバー(URL)にあるコンテンツを取得しその内容をクライントに返す
[QSA] —– Rewrite前のURL中のパラメータ(クエリ文字列)を引き継ぐ(これは便利かもしれない)
※カンマで区切って複数指定可能

例)
RewriteRule ^somepath/(.*) somepath2/$1 [R,L]
マッチすれば302を返してsomepath2へリダイレクト。その後判定終了。

Google Maps API geocoder

HTTP GET で座標を返してくれる

To access the Maps API geocoder directly using server-side scripting, send a request to http://maps.google.com/maps/geo? with the following parameters in the URI:

以下パラメータ
q — The address that you want to geocode.
key — Your API key.
output — The format in which the output should be generated. The options are xml, kml, csv, or json.

■例
東京都新宿区西新宿2-8-1

http://maps.google.co.jp/maps/geo?key=ABQIAAAAA1f3FX8OXztrMbmPpNYuBBQ6V82ulRYvsn9brKdzrS3jDXGfvRQUdksLnJJHZlcz3Wm7el8I1HmT1Q&q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF2-8-1&output=xml

青山駅

http://maps.google.co.jp/maps/geo?key=ABQIAAAAA1f3FX8OXztrMbmPpNYuBBQ6V82ulRYvsn9brKdzrS3jDXGfvRQUdksLnJJHZlcz3Wm7el8I1HmT1Q&q=%E9%9D%92%E5%B1%B1%E9%A7%85&output=xml

※国内ならcomでなくco.jpへリクエストがよいかも