新年早々の非互換対応

閲覧数: 84(0)

昨年から先送りしていた「mediawiki」のマイナーバージョンアップ(2020/12/18リリース)、セキュリティリリースということなので見送るよりマイナーであってもバージョンアップした方が良いと思い、新年早々ですがバージョンアップすることに。通常の手順で進めると、これまでのバージョンアップ時と違い途中でエラーも出ずに順調にバージョンアップ完了!と思いきや、確認のためにサイトを表示してみたところエラーが出ているではありませんか!どうやら抜粋表示などで利用している「DynamicPageList」が非互換を起こしているようでした。エクステンションのサイトで確認したところ「DynamicPageList」はまだ「1.35」対応していないので本番環境には適用しないで下さいと書いてある。そうなんだーと一度は従ってみたものの、なんとなく癪に障るので少しソースを見てみることに、ちなみにここまでの対応はテスト環境での実施なので本番環境には影響はありません。

エラーの内容はデータベースアクセス時のパラメータの中にある「rev_user」が存在しない、というような意味だったので、まずはデータベースのテーブルを見てみます。該当するテーブルは「xxx_revision」です。エラーが出るのだからそのカラムが無いのは当然と言えば当然ですが、やはり存在しておりません。一つ前のバージョンまでは下位互換のために存在していたようですが、このバージョンからは仕様通りのようです。「rev_user」は何のために存在しているかというと、記事を更新した時のユーザーを記録するためのようで、今回使いたい用途も記事の更新記録を表示する際に、誰が更新したかわかるようにするものでした。新しいテーブルなども調べてみましたが、直接的に「rev_user」を代替するカラムは存在せず、別テーブルにリビジョンに対する更新ユーザーのIDを保持するカラムがありましたが、本家の更新待ちだと思うので、今の時点ではそこまで大きく改変するつもりではなかったので、今回のバージョンアップでは「更新者」を省くことにしました。変更点はだいたい以下の通り。

                 case 'user':
                    $sSqlRevisionTable = $sRevisionTable . ', ';
//                  $sSqlRev_user = ', rev_user, rev_user_text, rev_comment';
                    $sSqlRev_user = ', rev_actor';
                    break;
        if ( $bAddUser || $bAddAuthor || $bAddLastEditor || $sSqlRevisionTable != '' ) {
//          $sSqlRev_user = ', rev_user, rev_user_text, rev_comment';
            $sSqlRev_user = ', rev_actor';
        }
                if ( $bAddUser || $bAddAuthor || $bAddLastEditor || $sLastRevisionBefore . $sAllRevisionsBefore . $sFirstRevisionSince . $sAllRevisionsSince != '' ) {
//                  $dplArticle->mUserLink = '[[User:' . $row->rev_user_text . '|' . $row->rev_user_text . ']]';
                    $dplArticle->mUserLink = '[[User:' . $row->rev_actor . '|' . $row->rev_actor . ']]';
//                  $dplArticle->mUser = $row->rev_user_text;
                    $dplArticle->mUser = $row->rev_actor;
//                  $dplArticle->mComment = $row->rev_comment;
                }

DPLが提供するオプションの使い方によって関連するコードが異なるので、今回のこの変更はあくまでも現状のオプションを使用した抽出・抜粋の場合のみ動作します。

正式に「1.35」対応するまで「最近の更新」コーナーで表示していた「サイズ、更新日、更新者」のうち「更新者」を表示しない設定としています。

最終更新日: 2021年1月8日

カテゴリー公開, 閑話(IT)タグ, , ,
究極のt2.nanoインスタ...

EC2の中で最小インスタンスタイプである「t2.nano」はCPUが1コアでメモリは512MBです。  続きを読む

dockerとproxy
blank

dockerやdocker-composeをプロキシ環境下で使うのに苦労したので忘れないようにメモし  続きを読む

非互換対応
blank

久しぶりのメジャーバージョンアップ(1.38 --> 1.39)が行われた「Mediawiki」関連  続きを読む

小ネタを少々
blank

トップページで表示される記事一覧では、アイキャッチ画像、タイトル、投稿日、投稿者、カテゴリ、記事の抜  続きを読む

トリミング
blank

mediawikiのextensionsの一つに、Dynamic Page List(3rd Par  続きを読む

PHP終了タグの件
blank

今回の「サイト引越」に関連して移動後の動作確認でいろいろ不具合があった中で一番大きかったのはアップロ  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください