Life is Adventure!

Edita機能と疑問点 | Home | アメリカ副大統領候補の水着姿

BBCode入力支援モジュール

SNSの日記や掲示板で書くとき、文字修飾や画像挿入などをHTMLの代わりにBBCodeを使って記述できる便利なモジュールで重宝している。多くのオープンソース開発ソフトで採用されているものと類似しているので使いやすい。どういうわけか本家のOpenPNEではサポートしていない。やっとV2.12で「文字修飾機能」という名前で機能追加されたが、どう考えてもNIH症候群の機能になっているようだ。どうして、しまさんが開発し多くの人が使っているOpenPNE拡張モジュールのBBCodeを採用しないのか理解に苦しむ。このことは過去にOpenPNE開発コミュニティでも指摘しておいたが無反応だった。


二年前からBBCodeをつかっているので、いまさら「文字拡張機能」は使えない。過去の記事でのBBBCode修飾がすべて無駄になるからである。だから2.12の追加機能は使わず、しまさんのBBCodeをインストールさせてもらった。2.12系の設計変更に対応するため、BBCodeの組み込み方も異なっている。本来はSNSコア機能の一つなのに、それを拡張しようとしているので開発者の苦労は大きくなる。

しまさんは「組み込み方」の説明だけだけでなく、変更したテンプレートも提供している。2.10以前のようにコードをひとつひとつ変更しなくてよい。提供されたコードとテンプレートをそっくりアップロードし、config.phpなどの設定をするだけで見事に動いた。感謝感激である。

最近のオープンソース(特にヨーロッパ発)では、BBCodeに加えてFCKeditorが採用されているようだ。先月試しにインストールしたphpMyFAQでも採用していた。簡単なファイルマネジャも組み込まれているので、エンドユーザにとっての利便性が高くなっている。Link

BBCode入力支援モジュールは、HTMLとおなじようなタグを使えるので便利だが時勢からみると、RTE(Rich Text Editor)に置き換える傾向だ。無料で入手できるので、自分で組み込みたいがPHPもJavascriptも書けない素人には無理である。だれかの助けがないと不可能だ。



ところで最近不可解な現象にでくわした。発端は、SNSユーザからの要望で、「記事を作成しているときの見た目と投稿したときの見た目を同じにしてほしい」ということだ。これはWYSIWYGエディタの目的であるが、OpenPNE拡張のBBCode入力支援モジュールでは、BBCodeソースを記述することになっている。確認の段階で「見た目」に整形されるので、そんなに支障はない。

もっともユーザは、BBCodeのことは意識していないし、その要望でもない。入力している原稿と確認画面、投稿後の記事の見た目を同じ、簡単に言えば一行当たりの文字数を一緒にしてほしいという要望である。

これは簡単な話だと思って、textareaタグの幅を同じにするようにしようとした。widthとcolsの値を、三つの画面表示で同じにするだけだ・・・そう思って変更した。ところが結果が変わらない。どうしてかと思って表示結果のソースを見ると、BBCode入力時のtextareaタグにstyle属性が追加されている!

fh_diary.tpl変更部分

<th style="width:70px;">本文</th><td>
({* BBCode *})
({ext_include file="inc_bbcode.tpl"})
<textarea name="body" rows="8" cols="40">({$requests.body})</textarea></td>

http://sns.agorian.com/?m=pc&a=page_fh_diary&target_c_diary_id=696表示のソース
<th style="width:70px;">本文</th><td>
---ここにBBCode入力支援モジュールのソース---
<textarea style="width: 410px; height: 250px;" name="body" rows="8" cols="40"></textarea></td>

どうしてstyle属性が追加されてしまうのか?謎である。この属性があるためテキスト入力領域の幅は410pxに固定されてしまう。またthのwidthを70pxに指定しているのに、実際の表示では80pxくらいになっている。じつに不可解だ。しまさんに助けを求めるしかない。Link

今日の言葉: 

コメント (1)

しまさんに聞いたら、bbcode_controller.jsの中のchangeTextareaSize4previewでtextareaを書き換えているとのこと。h_bbcode_preview.tplでもwidthが固定されているので、両方のコードを変更すれば良いことが分かった。しかし、thの幅が変わらないことが解せない。

コメントを投稿


counter