ウチの会社ではVPNで各支店でファイルを共有してて、退去&クリーニングが終わったときに物件の写真を取ってきて保存してるんですが。一方でASPの営業支援アプリを使っていて、それとは連携してなかったんですね。
で、「ASPの物件ページからリンクして。写真がない時は、写真がない事が分かるように」と言われ、「了解しましたー」と気軽に受けたら結構大変だったけど、変な抜け道を発見したのでメモ。
構造的には、
- 名前が物件ユニークIDのフォルダ > その物件画像ファイル
という感じだったので、各物件ページから物件写真フォルダが存在するかチェックして、あればリンクを表示してやればいいやぐらい感じで考えていたんですが。クライアントからjavascriptでチェックさせようとしてローカルフォルダにアクセスできないことに気づき、それならばとサーバからチェックさせようとしてVPNに入れるわけもないことに気づきました。
で、どうしたかというと。
各フォルダにこんな感じのCSSファイルを入れておいたんです。
a.VPN-link{ display:inline }
で、ASPの物件ページはこんな感じにしておく
<style> a.VPN-link{ display:none } </style> <link rel="stylesheet" type="text/css" href="【物件写真フォルダ】VPN-link.css"/> <a class="VPN-link" href="【物件写真フォルダ】">物件写真</a>
そうすると、物件写真フォルダがあるときは外部CSSを読み込んでリンクを表示、物件写真フォルダがないときはCSSを読み込めずリンクは非表示となるんです。CSSだけでフォルダの存在チェック、なんてスマート(笑)
こんなのうまくいかないだろーなー、と思ってやったんですが何故か動いてしまいました。IEだと、link要素からローカルに存在するCSSを読みに行ってしまうんですねー。ただ、firefoxだとうまく行かなかったです。やり方がおかしいのかもしれませんけど、社内用なのでIEで動けば全く問題なし。
しかし、なんかセキュリティ的に問題ありそうだなと思いますし、明らかにバッドノウハウですよねー。でもウチの会社でそんなことに気づく奴はいないので、私の業務的には問題ないのです*1。うひゃ。
*1:今日中に、とか言う方が頭がおかしい