blog

FCKeditorは「戻る」と書いてた内容が全部消える

2009-06-28 10:08:20 ブログ開発 Comments: 0
ブラウザの「戻る」ボタンには結構泣かされる。
2時間くらいかけて「良いシステムとは」というテーマで書いてたページの内容が消えた。
X40の←キーの上には何故か便利な「戻る」キーがあるので、うっかり押してしまうのだが・・・。

まさか「良いシステムとは」なんて大それたテーマで文章を書いてる最中に、システムの問題に屈するとは情けない。
実は今日だけで2回目だったりする。
なので、文章そっちのけで修正することにした。

原因は想像通り、FCKeditorがformのhiddenフィールドに値を書き戻さないため。
Firefoxはformに入力した内容を記録して、それを復元しようとしてくれるのだが、
FCKeditorで編集中の内容はformの中には無く、別の場所にあるのだ。(submit時に反映するのかな?)

対策としては、onunload時に無理矢理formの中に編集中の内容を書き戻す。

<script>
  function writeback(name) {
    document.forms[0][name].value=document.getElementById(name + '___Frame').contentWindow.frames[0].document.body.innerHTML;
  }
 
  window.onunload = function(){writeback('body');};
</script>

編集中の値が格納されているのはiframeの中のiframeの中なので、かなり深い所にある。
とりあえずFirefoxでは動作は順調。書き込む際にも悪影響などは無いように見える。

FCKeditorの微調整

2009-06-26 05:53:09 ブログ開発 Comments: 0
しばらく使い続けて気がついたこととか。
  • Enterキーを押すと<br />を挿入するように変更するのはfckconfigで出来る。
  • いわゆるクリックすると原寸表示される画像の掲載機能みたいなものが無い。欲しい。
  • 行頭にスペースを入れるにはノンブルスペースを入れるしかない。全角スペースは無視されるかも?
  • 列挙のネストを作るにはIndentとOutdentのアイコンを表示しておかないといけない。
  • 無記入の場合でも<br />が代入されるので非常に使い勝手が悪い。いまのところ修正方法がわからないのでプログラム側を改修してしまっているが本当に気持ち悪い。
汎用的なのは良いかも知れないけど、どうもしっかり使うには難がある印象。
見た目はわりと好きなんたけどなあ。

アジャイル・アップグレードとバージョン番号

2009-06-15 18:57:09 ブログ開発 Comments: 0
ブログシステムは人に配布していないので、バージョン番号をつけていない。
しかし、様々なWebサイトを運営していくにあたって、実装バージョンに相違が生じてしまった。

ソースコードのリビジョン管理は機械的に出来るので別問題として、
リリースのバージョン管理は設計に影響する、比較的重たい問題だ。

モジュール単位などの細かい粒度でバージョンをつけて管理するとアップグレード作業が煩雑になるし、
全体で1バージョンにすると、別仕様のシステムを用意するためにブランチを切る羽目になり本末転倒である。
とはいえ、別仕様のシステムを発生させないようにシステムを肥大化させていきシナジー効果を得る手もある。

どっちが開発スピードが速くなるかなぁ。

改行と段落を考える

2009-05-21 15:38:43 ブログ開発 Comments: 0
HTMLで文章を書く事を学ぶときに、pタグとbrタグの存在を知る。
pが段落で、brが物理改行らしい。
wikipediaを参照すると、段落はさらに意味段落と形式段落に分かれて、1:nの関係を持つらしい。

pタグのブラウザ上での既定の振る舞いは空行をあける事であるから、
これは意味段落を示すためのタグであると認識して良さそうだ。
しかし、HTMLには形式段落を示すための概念が存在しない。

よって、その代替として、brタグを使うケースが多々ある。
その場合、行頭での字下げをスタイルとして定義する事が出来ないので、日本語の「段落」の定義としては不適切になる。

大手ニュースサイトの原稿などを見ると、brタグは基本的には使っていない。
テキストが表示される枠が横に長くなりすぎないようにfixedにした上で、一行一段落で文章を書いている。
紙媒体の新聞や400字詰め原稿用紙なんかと同じアプローチである。

これが小説になると、「」の前に強制改行が入る。
ケータイ小説のようになると、意味段落をすべてpタグで改行する。
だから常に行間が空き、文章の密度がスカスカになる。

DreamWeaverのような技術に疎い人が使う製作ソフトも、Enterキーがpタグに割り当てられている。
今のFCKeditorのデフォルトもそうだ。(昔は違ったらしい)
ちなみにFrontPageやIBMホームページビルダーでもそうだった。
英語圏ではそれで美しい英文が出来るのかも知れないが、日本ではスカスカ文章しかできあがらない。

ではどうすればこの問題をクリアに出来るのか、と考えると解決策は色々浮かんでくる。
しかしまず、どうして今までこの基本的かつ重大な問題を誰も何とかしようと思わなかったのかが疑問だったりもする。

FCKeditorを使う

2009-05-21 14:38:07 ブログ開発 Comments: 0
ブログの書き込み時に書式を設定できるようにするために、FCKeditorを導入した。
絵文字もついてる

導入は簡単だが、色々デメリットがあるので注意する。
  • 公開ディレクトリに沢山のプログラムファイルと設定ファイルを設置しなければならない。(前時代的)
  • 添付ファイルの概念をFCKeditorに委ねる事になり、公開ディレクトリのパーミッションを解放する必要がある。
  • HTMLタグの抑制が困難になるので、悪意のあるユーザとドメインを共有するのは危険になる。
暫定的な対策方法。
  • FCKeditorのあるドメインと閲覧専用のドメインを分ける。
  • ドメインは知らない人とは共有しない。
  • userfiles以下でphpなどのスクリプトが実行できないようサーバを設定する。
この対策を行っても、アップロードした全画像ファイルが常に公開される事には注意する。
(エントリを非公開にしても画像は公開され続ける)

カスタマイズは比較的容易な部類。
導入に際して難儀した点は、userfilesディレクトリの大小文字がconfigによって異なる点。
WindowsだとうまくいくがLinuxだとエラー110とかエラー202とか言われる。

使用感としては、部分的に、お客様には出せないほど説明のややこしい機能がある。
  • サイズ
  • リンク
  • 画像
このあたりの機能を書き直せば、一応仕事にも使えそうなレベル。
書き直すついでにアップロード機能も奪ってしまえばいい。
1 2 次へ 6 件中 1 ~ 5 件目