ヘッドラインモジュールのバグ

ヘッドラインモジュールで以下のバグを発見しました。

現象

Xoopsの管理者メニューのヘッドラインモジュールで、
登録したヘッドラインを削除しようとすると
「ヘッドラインの削除ができませんでした」というエラーメッセージが表示されて
ヘッドラインの削除ができない。

環境

いわゆるLAMPXoops 2.0.16aの組み合わせ

原因

クラス名の判定時に大文字小文字の区別がされるOSだと失敗する

modules\xoopsheadline\class\headline.phpの134〜136行目
function delete(&$headline)の以下のソースで

if (get_class($headline) != 'xoopsheadlineheadline') {
    return false;
}

でreturn falseになる。

対処方法

107行目のinsertと同じように134行目を以下のように書き換える。
こうすることでクラス名の判定が大文字が混入してても小文字に変換されるので問題が解消する。

if (strtolower(get_class($headline)) != 'xoopsheadlineheadline') {