ホーム > フォーラム > 開発 > モジュール開発 > 【要注意】altsysブロック表示でDOCTYPE宣言前に改行が入るモジュール

【要注意】altsysブロック表示でDOCTYPE宣言前に改行が入るモジュール
投稿者: souhalt | 投稿日時: 2007/9/29 15:15 | 閲覧: 11299回
souhalt
【要注意】altsysブロック表示でDOCTYPE宣言前に改行が入るモジュール

[現象]
下記の関連モジュールのいずれかがインストールされた条件で、
altsys (0.55a etc.) に付属する管理メニューブロックがインストールされ、
表示されていると、HTML ソースの冒頭 (DOCTYPE 宣言前) に改行が入ります。

なお、(altsys の管理メニューブロックが表示されない) XOOPS 管理メニューの
表示画面では、この現象はおこりません。
(e.g. XOOPS_URL/admin.php, XOOPS_URL/modules/DIR_NAME/admin/ etc.)

[関連モジュール]
Yomi-Search 0.87
B-wiki 20050212
etc.

[原因]
altsys に付属する管理メニューブロックは、xoops_version.php 内などの
$modversion['adminmenu'] で指定されたファイルをインクルードします。
そのファイル内に、PHP コード外の記述があると、その部分が HTML コードとして
HTML ソースの冒頭 (DOCTYPE 宣言前) に出力されます。
(e.g. "?>" の行の後にさらに改行がある場合は、この改行の部分が対象)

試しに "?>" の行の後に次のコードを追加すると、予想どおり google に跳びました。

CODE;

これ以上深くは追求していません。

cf. altsys の管理メニューブロックが各モジュールの管理メニューファイルをインクルードする箇所
XOOPS_TRUST_PATH/libs/altsys/blocks/block_functions.php: line 53
@include XOOPS_ROOT_PATH.'/modules/'.$dirname.'/'.@$modinfo['adminmenu'] ;
CODE;

[対策案]
対症療法的な対策案として、各関連モジュールの管理メニューファイルから、
"?>" の行の後の改行を削除すると、上記現象が発生しなくなりました。

XOOPS_URL/modules/yomi/admin/menu.php: line 8
XOOPS_URL/modules/bwiki/admin/menu.php: line 7

[Reference]
altsys
PEAK XOOPS - Support&Experiment
Yomi-Search
ダウンロード - XOOPSマニア
B-wiki
Take Some Notes - ダウンロード

[xoops環境 - local/Windows]
デバッグモード: 「PHPデバグ」に設定
XOOPS_ROOT_PATH = D:/homepage
XOOPS_URL = http://localhost
XOOPS Cube Legacy 2.1.1
mysql 4.0.27
php 5.2.0
apache 2.0.59
Windows XP HE SP2 / IE6

コメント(1)

Re: 【要注意】altsysブロック表示でDOCTYPE宣言前に改行が入るモジュール 
投稿者: tohokuaiki | 投稿日時: 2007/10/2 15:05
tohokuaiki
引用:

[対策案]
対症療法的な対策案として、各関連モジュールの管理メニューファイルから、
"?>" の行の後の改行を削除すると、上記現象が発生しなくなりました。

PHPは閉じの ?> 自体がなくても動作するので取っちゃっ他方がいいかもしれません。

Zend Frameworkは、閉じない方向性ですね。

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top