#author("2017-08-23T06:37:34+09:00;2005-11-13T23:51:48+09:00","","")
*XHTML1.0 時、colorプラグインで bgcolorを指定するとUsageが表示される [#y2a1ee02]
- 元タイトル: XHTML1.0 時 colorプラグインで bgcolorを指定するとエラーになる

-ページ: BugTrack
-投稿者: [[みこ]]
-優先順位: 普通
-状態: CVS待ち
-状態: 保留
-カテゴリー: プラグイン
-投稿日: 2004-12-22 (水) 13:22:49
-バージョン: cvs(12/20)

**メッセージ [#i65324ea]
$html_transitional が TRUE のときに、 &color(white,black){テキスト}; とおこなうとエラーが発生します。

たしか、$html_transitional が TRUE のときって、XHTML1.0互換ですよね? (^^;
----
#contents
----
-お疲れ様です :) ちなみに何エラーでしょうか・・・ -- [[henoheno]] &new{2004-12-22 (水) 21:12:32};
-%%http://cafelounge.net/test/cvs/index.php?colortest %% -- [[みこ]] &new{2004-12-22 (水) 23:12:36};
-- オプション限定の問題ですね。エラーというのはusageですね。 -- [[henoheno]] &new{2004-12-22 (水) 23:21:22};

 &color(): bgcolor (with CSS) not allowed;
-FALSE がデフォルトで、TRUE は XHTML 1.0 Transitional (painterプラグインのために用意された変数) ですね。しかし変数名がとてもわかりにくいですね。今まで *.ini.php にあった項目ではないので、このさい改名しましょうか? (^^; -- [[henoheno]] &new{2004-12-22 (水) 23:26:02};

 diff -u -r1.18 color.inc.php
 --- color.inc.php       14 Dec 2004 14:12:05 -0000      1.18
 +++ color.inc.php       22 Dec 2004 14:28:39 -0000
 @@ -33,7 +33,7 @@
                         return '&color():Invalid color: ' . htmlspecialchars($col) . ';';
         }
 
 -       if (PLUGIN_COLOR_ALLOW_CSS === TRUE && $html_transitional === FALSE) {
 +       if (PLUGIN_COLOR_ALLOW_CSS === TRUE || $html_transitional === FALSE) {
                 $delimiter = '';
                 if ($color != '' && $bgcolor != '') $delimiter = '; ';
                 if ($color   != '') $color   = 'color:' . $color;
-このif文で言いたいのは「XHTML1.1では<font>タグによる色指定は使えないんだぜ」という事だったのに、「XHTML1.0では絶対に<font>タグを使えよ」という内容になっていました (^^; -- [[henoheno]] &new{2004-12-22 (水) 23:30:53};
-- [[cvs:plugin/color.inc.php]] (1.19)
-すみません、コメント遅れました。確認とれましたのでステータスを完了とします :) -- [[みこ]] &new{2004-12-24 (金) 09:30:04};

//#comment

** 余談: XHTML / HTML のDTD切り替えをもっとわかりやすく [#reea7092]
-余談ですが、わたしも html_transitional は過去の経緯からのとりあえず的な対策フラグだとおもっていて、いっそのこと xhtml1.1/1.0T, html4.01T をも含めて本体およびプラグインにダウングレードの権利((x)htmlバージョンのチェックおよびフラグ書き換えによるxhtml11->10T->html40Tとダウングレードできるフラグ)があるといいなとおもったことは何度かあります。 -- [[みこ]] &new{2004-12-24 (金) 09:35:59};
-なぜ、html40T がはいっているかというと、IE&size(9){モゴモゴ};・・・ -- [[みこ]] &new{2004-12-24 (金) 09:38:21};
-いいですね。というのはtDiaryの一部のテーマ(見つけたのはchristmasのみ)が、どうもMSIEに敏感なCSS((細かいところは現時点では追っていません))を使っているようで、 MSIEに対しては <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> を出力しないと中央寄せが効かない、ということがありました。しかしXHTMLとかに気軽に変更できない様では、今度はValidatorに通せなくて困ってしまうのですよね。 -- [[henoheno]] &new{2004-12-24 (金) 20:49:37};
--だんだん雑談じみてきますが (^^; 実はその話題は[[official:質問箱/309>PukiWiki/1.4/ちょっと便利に/テーブルの中央寄せor右寄せ#k9ad435a]]にありまして IE は xmlタグを書かなければW3C標準モードになりますが、xmlタグを書かない場合はUTF-8にするべきとなっています。ただそれも既に過去の常識で、現在は上位のプロトコルで文字コードが指定されていれば実はxmlタグを書かなくても OK ではある((http://www.w3.org/TR/xhtml1/ ))んですけどね。(Validatorはそんなとこまで見てはいないので減点されますけどね (^^;) -- [[みこ]] &new{2004-12-24 (金) 22:23:30};
- ということで、定数を用意するというのはいかがでしょうか。 -- [[henoheno]] &new{2004-12-24 (金) 20:53:00};
-- PKWK_DTD_XHTML_1_1
-- PKWK_DTD_XHTML_1_0_STRICT
-- PKWK_DTD_XHTML_1_0_TRANSITIONAL
-- PKWK_DTD_HTML_4_01_STRICT
-- PKWK_DTD_HTML_4_01_TRANSITIONAL
-- こんなところかな? -- [[henoheno]] &new{2004-12-24 (金) 20:54:19};
-上記は XHTML/HTML という軸と、STRICT/TRANSITIONAL という軸という感じですか? -- [[みこ]] &new{2004-12-24 (金) 22:20:08};
-- コメントありがとうございます :) 数字や文字列で区別させるのは(理解のしやすさや速度面で)無理があるだろうということで定数を考えました。大雑把ですがイメージした分け方はその通りです。また、単純に 「XHTMLなのかHTMLなのか」「STRICTなのかTRANSITIONALなのか(XHTML 1.1 では関係なし)」を判断したいニーズがあるのかどうかは現状ではわからないのでシンプルなものを考えました。 -- [[henoheno]] &new{2004-12-24 (金) 23:23:36};
-いちおう注意点として・・・XHTML1.1 は map(仕様変更), ruby(タグ追加) があるのでその部分だけ気をつけていれば、種類としては上記4つで問題がないとおもいます。ただ、XHTML1.1は各ブラウザの挙動がまだ微妙なので XHTML_1_0_STRICT もあったほうが無難かもしれません。 -- [[みこ]] &new{2004-12-24 (金) 22:46:37};
-- 上記に追加しておきますです -- [[henoheno]] &new{2004-12-24 (金) 23:27:55};

*** [[開発日記/2005-01-08]] [#h9105d83]
- [[cvs:pukiwiki.ini.php]] (1.103)
- [[cvs:lib/html.php]] (1.22-1.23)
- [[cvs:skin/pukiwiki.skin.php]] (1.33-1.35)
- [[cvs:skin/tdiary.skin.php]] (1.4-1.5)
- [[cvs:plugin/color.inc.php]] (1.20)
- [[cvs:plugin/paint.inc.php]] (1.17)
-- Added pkwk_output_dtd() and DTD definitions
-- Re-define $html_transitional => $pkwk_dtd
-まずはこんなところでいかがでしょう(どうすると大変じゃなくなるかな?) -- [[henoheno]] &new{2005-01-08 (土) 20:16:11};
-- お、html.php のコミット漏れがあった (^^; -- [[henoheno]] &new{2005-01-08 (土) 20:21:05};
-どうやら、途中の段階を見てしまっていたので(^^; 大半は解決されています。でも、2点だけ・・・ -- [[みこ]] &new{2005-01-09 (日) 14:11:13};
-1点はどうでもいいことなのですが、 $pkwk_dtd はプレフィックス(pkwk)はいらないのでは? (^^; PukiWiki の定義(DTD)ではないんだし・・・($output_dtd とか $render_dtd ぐらいでいいのでは?)  -- [[みこ]] &new{2005-01-09 (日) 14:12:46};
-2点目は現段階だと、プラグインを通過するときに XHTML1.1 -> XHTML1.0T -> HTML4.0(Strict) がありうるのでこの軸(XHTML1.1以外はポリシーの軸(STRICT/TRANSITIONAL/FRAMESET)を移動できないか、いっそのことTRANSITIONALにするか)をどうするかですね。このあたりは変数よりも関数で受け持ったほうが楽かも・・・ -- [[みこ]] &new{2005-01-09 (日) 14:15:56};
-- ふむふむ。DTDのランクダウンの処理が現状は手作業になっていて、paintプラグインでは今のところ 「現状のデフォルトがXHTML 1.1 のときだけ XHTML 1.0 Transitional にする」、というやうな処理をしています。このへんが簡便じゃないですよね。 -- [[henoheno]] &new{2005-01-09 (日) 14:45:10};
-- XHTML 1.0 ''Strict'' から HTML 4.01 ''Strict(現状維持) あるいは Transitional'' にするではなくて、XHTML 1.0 ''Transitional'' を HTML 4.01 ''Strict'' にしようというのは、有効な要素の範囲に問題がないのでしょうか。私が知らないだけですが、ちょっと確認したほうがいいですね。 -- [[henoheno]] &new{2005-01-09 (日) 17:43:42};

- CYBER@GARDEN: HTML 4.01、XHTML 1.0、XHTML 1.1の要素一覧
-- http://www.cybergarden.net/xhtml/basic.html
-- うむ、やはり一旦 Transitional にしたものを Strict にするのは問題になりそうです。 -- [[henoheno]] &new{2005-01-09 (日) 17:50:54};
-あ、もひとつ(^^; XHTML は <DOCTYPE html  ・・・という感じで html は小文字で定義です。 -- [[みこ]] &new{2005-01-10 (月) 07:54:43};
-- はい、別途コメントをいただきまして、修正しました (^^; -- [[henoheno]] &new{2005-01-10 (月) 10:41:12};
-ちょっと、日が開いたので意識あわせ。バージョンの軸(XHTML1.1 > XHTML 1.0 > HTML4.0) はダウングレード可能。ただしポリシーの軸は Strict -> Transitional はあっても、 Transitional -> Strict はない。また、FrameSet は PukiWiki ではとりあえずありえない(使わない)でいいんですよね? -- [[みこ]] &new{2005-01-12 (水) 12:45:06};
-で、上記をプラグイン作者やスキン作者(デザイナなど)が意識しなければならない現行は、まずいとおもっているので、関数でおこなったほうがいいかな・・・と( dtd_downgrade( version, policy ) とか?) -- [[みこ]] &new{2005-01-12 (水) 12:48:33};
-で、変更できない場合は・・・エラーか何かの警告を出すほうがいいのかな?(自分でいうのもなんだけど、エラー表示とかだとちょっと厳格すぎるようなきもする (^^; ) -- [[みこ]] &new{2005-01-12 (水) 12:52:03};
-- ダウングレードを認める場合の作法はその通りだと思います。TransitionalにしたものをStrictにするのは変ですよね (^^; 現状、このDOCTYPEの仕掛けのためにスキンの下位互換がなくなってしまっている(特に$html_transitionalが存在しなくなっていると思う)ので、もう少し修正が必要ですね -- [[henoheno]] &new{2005-01-12 (水) 23:05:50};

//#comment

** pkwk_output_dtd() already called. Why? [#nf12a652]
-BugTrackに新たに起こそうか迷いましたが、ここで。現状のCVS版のhtml.php(1.24)の処理ですが、require(SKIN_FILE);をrequire_once(SKIN_FILE);に変更したほうが良いと思われます。エラー処理時にcatbodyが呼ばれる都合上、本来のエラーと異なる原因で 'pkwk_output_dtd() already called. Why?' が出てしまうのですよ~。 -- [[にぶんのに]] &new{2005-01-09 (日) 15:22:58};
-- お、当たらないだろうと思っていた物件(リミッター)に当たるとは。再現する方法は何でしょうか? 問題の関数は恐らくdie_message() ですよね。 -- [[henoheno]] &new{2005-01-09 (日) 16:04:02};
-- ちなみにdie_message()の現在の仕様上、スキンファイルの中でdie_message()をコールすると動作がおかしくなります。スキンファイルの中ではdie()を使わねばなりません。 -- [[henoheno]] &new{2005-01-09 (日) 16:05:05};
-- 2度呼ばれる理由と、その場所がわかれば話が進むと思われます。 -- [[henoheno]] &new{2005-01-09 (日) 16:08:14};
--あ、失礼。肝心な事を書き忘れていました。その「本来のエラー」は単なる私の環境設定ミスに起因するもので、解決済です。((ちなみに、counter/*のパーミッション不備で#counterを置いたMenuBarの出力(正確にはmenu.inc.php末尾のconvert_htmlのコール)に失敗していました。)) 提案の意図は初心者((ほら、私みたいに右も左も分からない人のコト :)  ))が同様の理由で引っかかると当然orgやdevを探しても該当の症状がないため、エラーの特定に一手間掛かるんじゃなかろうかと心配してみたのでした。 -- [[にぶんのに]] &new{2005-01-09 (日) 21:05:45};
- [[BugTrack2/20]] --  &new{2009-03-08 (日) 23:21:59};

//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.043 sec.

OSDN