February 02, 2005

改装1(覚書)

もともと、デザイン改装の前にファイル整理をしないとだめだと
思っていた。とにかく、サーバー上にある「Public_html」の中に、
すべてが突っ込んである。2年ほど前から「やばいな~」と思い、
1年前には「どうしよう」と思いつつ、途中で力尽きてやめた。
今回のトップだってどれだけ続くかわかんない。だけど。
とりあえず、個別のフォルダに分けていくってことはしたい。
ただそれで一時リンク切れになってるのもあるかもしれない。
実際普通に表でリンク切れになってるのがあったりして、焦った。

1、javascriptとcgi
動きのあるページは好きだが、見せられるほうはたまったもんじゃない。
だから、いずれにしろ簡素なページにしようと思ってた。
が。
どうしてもやりたいことがあった。
それは。
「階層式メニュー」である。
よくあるカーソル置くと中が広がるってやつ。
とにかく前のトップはずらずら並べてあるはいいが、うっとうしい。
できるだけ少ないメニューであらわすのは、この階層型しかない
(いま置いてあるプルダウンよりスマート)。

ところが。
javascriptをオフにしていると、動かない。
動かない場合、代替文と代替案をおかねばならない。
つまり普通のメニューだ。
この階層型は割りと新しいスクリプトで、2~3年前にできるように
なったらしい。このときにちゃんと設置してれば問題はなかったのだ。
しかし昨今のウイルスの勢いなどで、JSをきってしまっている人が
結構いると知った。JSを切ってしまうといろいろ面倒なことが起きたり
するんだけど(小窓が開かない、など)でも、現実には、いる。
さあこまった。

「じゃあ、どうしよう…」

実は1年近く前、一度改装した。
FierworksとDWをつかって、ボタンから作った。
だけどそのときすでにJSを切ってる人がいることに気が付き頓挫。
ファイルの整理も途中でとまってた。
一番やりたかったことができなくなると、勢いもうせる。
そのときのデザインがいまいち気に入らなかったこともあって、
結局改装しないままになった。

とにかくJSの問題は解決していない。
むしろウイルスのせいで、ますます微妙になってる。

さらに問題がもう一個。
文章サイトだから、理想は左メニューで右フレームに文かなと思ってた。
しかし。展開式だとフレームを超えられない。
(フレームに乗っかるかたちではできない)。
インラインフレーム(iフレ)でないとダメ。
このときはインラインフレームも対応していないブラウザもある。
(結果的にiフレを使うんだけど)

代わりにプルダウンにする。
プルダウンは嫌いだった。可愛くないから。
だけど「鳩レトロ」さんのテンプレで可愛いものを発見。
さらにこのサイトさんは「改造ご自由に」というゆるい規約。
(できるサイトさんほどゆるい気がするのは、気のせい?)
もうJSで頭が一杯、だけど改装だけは絶対にやりたい。
でないとファイル放置になってしまう私は、あっさりテンプレを借りることに。
ただそのまんまではなく、メニュー部分は作ることにする。

JSがダメなら、CGIだ。
ちょうどネットで検索したら、プルダウンメニュー用のCGIスクリプトを見つけた。
ラッキー。これで設置すればいい。
ところが。
このプログラムが動かない。
リンクさせるトップページが、プログラムと同じ場所なら飛ぶんだけど、
違う場所になるとエラーになる。調べたら、きちんとアドレスを出力していない。
つまり、相対パスならOKなのに、絶対パスならだめ。
「それなら全部のトップページを、プログラムと同じフォルダにぶっこめばいーじゃん」
と思うだろうけど、でも中には掲示板のようにCGIを呼び出したり、
他サイトとリンクしたりする。無理だ。

アドレスを正しく出力させるために、見ようみまねでスクリプトをいじって
みたがどうにもうまくいなかい。
これで数日取られる。

もう、やめようかと思った。閉鎖だ、閉鎖。
いやんなっちゃう奴なのだ。

しかし。「だったらとりあえずJSで作ろう」と気持ちを入れ替える。

あとから判ったんだけど、このプルダウンメニューを開かせるJSも
様々なレベルがあって、鳩レトロさんのは最新式だった。
しかし、ここでも問題発生。

プルダウンメニューの場合(リンク関係はなんでもそうだが)
ターゲットの指定、という問題がある。願った場所に表示させるって奴。
この方法がわからない。
左フレームから右フレームなら、すぐにわかった。
スクリプト中のlocationを、parents,xxx,locationにすればいい。
xxxは表示したいフレーム名になる。
が、できない。理由は表示したいフレームがiフレームだから。
普通に右フレームだけなら問題ないけど、
その右フレームの中の入れ子のフレーム。しかも、左メニューもiフレ。
iフレからiフレに飛ばす書き方が、うがーーー、わかんない!
またもここで数日詰まる。JSの基本的知識がある方にとっては、
「何バカなことで悩んでんの?」だろうけど、わかんない…。

ネットを検索し、そのスクリプトがどんな意味なのかを遅まきながらに理解し、
さまよい歩いてようやく判った結論は。
top,right,abc.location
だった。もし左メニューがiフレでなければ、おそらく
parent,right,abc,locationになるんだろーな。
ちなみにrightというのが右フレーム全体の名前、
abcってのが、右のiフレームの名前。
階層が下がるから、一個記述を増やせばよかったのね…。

さあ、これでjavascriptのメニューページが完成。
JSならリンク先を選択するだけで飛べる。わざわざボタンを押さなくてもいいし、
cgiより軽い。
あとはcgi用のスクリプトをなんとか修正すれば…。

だが、ここで考えてみた。
私が得たcgiスクリプトはgetでアドレスを渡す、今では珍しいタイプ。
ひょっとしたら他にあるんじゃないだろうか…。
ありました。
まったく別のスクリプトを得てやってみたら、簡単に動いた!
「なんだあ…」

JSにしろ、CGIにしろ、狙ったターゲットにきちんと飛んだ時、
思わずガッツポーズしました。夜中に。

Posted by kim at February 2, 2005 07:01 PM
Comments

改装お疲れ様です!
サイトの改装で何がしんどいかって、ファイルの整理とリンク貼り直し作業が一番めんどっちいですよね~。
壁紙選んできたり、アイコン探したりするのは楽しいんだけど。。

でもトップメニューのプルダウンには私もちょっと惹かれます。
その方が分かりやすいかな~?と思いつつ、スクリプト探すのが面倒で結局やってない。(汗)
kimさんのサイトは改装の度に色んなことにチャレンジされてるので、私も勉強になります。

今後も楽しみに毎日のぞかせてもらいますね~(^^)

Posted by: sally at February 3, 2005 12:18 PM

ありがとう!
まさにその通り。もうぐうの音もでないほどやられた。
自分に(涙)。

無計画にもほどがある、っていう性格を普段直視しないようにしているんですが、
こういうところで垣間見ることに。
そしてダメージ10000。
スクリプトはテンプレあるんだけど、
その人の環境によっていろいろいじらないといけない。
それやってると少しはわかるようになるんだけど、
根本的じゃないから、すぐ行き詰る。
そして「無計画」についで「出たとこまかせ」という
欠点に喘ぐのでした。ダメダメ(笑)

Posted by: kim at February 5, 2005 10:06 PM