コンテキストパスを再構築する方法

このページは更新が必要です。終了したら、このテンプレートを削除してください。


データベースに問題があると、次のようなエラーが発生することがあります。

 [Thu Jan 15 16:20:59 2009] [エラー] [クライアント144.32.148.21] 
PHPに関するお知らせ:コンテキストID 113に有効なパスがありません。build_context_path()を使用してください。
 lib / accesslib.phpの375行目:debugging()の呼び出し
 mod / forum / index.phpの125行目:has_capability()を呼び出す
 /lib/weblib.phpの6923行で、参照元:mod / forum / index.php?id = 2

このページでは「build_context_pathを使ってください」という指示に従う方法を説明します。これを行うには単純なPHPスクリプトを作成してから実行する必要があります。

始める前に

このエラーは決して発生しないはずなので、それがあるという事実はより重大な何かが間違っているという徴候かもしれません。もしあなたが偏執病なら、下記の修復スクリプトを実行する前にデータベースの破損をチェックした方がいいかもしれません。

その一方で、時にはこれらのことが起こるので、あなたはただそれを忘れるだけで以下のスクリプトを実行することができます。

ステップA:スクリプトを作成する

サーバー上で、 / adminフォルダーにrebuildcontextpaths.phpというファイルを作成し、次の内容を入れます。

 <?php
require_once ( dirname ( __ FILE__ ) 。 '/../config.php' ) ;

require_login ( ) ;
require_capability ( 'moodle / site:config' 、 get_context_instance ( CONTEXT_SYSTEM ) ) ;

$ strRebuildContextPath = "コンテキストパスの再構築" ;

$ PAGE - > set_url ( '/admin/rebuildcontexpath.php' ) ;
$ PAGE - > set_title ( $ strRebuildContextPath ) ;
$ PAGE - > set_heading ( $ strRebuildContextPath ) ;
$ PAGE - > navbar - > add ( $ strRebuildContextPath ) ;

echo $ OUTPUT - > header ( ) ;
echo '<p>コンテキストパスの再構築中... </p>' ;
build_context_path ( true ) ;
echo '<p>完了</p>' ;
echo $ OUTPUT - > footer ( ) ;
? 

(メモ帳などのテキストエディタを使用して自分のコンピュータ上でこのファイルを作成してからMoodleの/ adminフォルダにアップロードすることも、サーバー上で直接編集することもできます。そこにあるファイルと、それらの中身を入れてください。)

ステップB:スクリプトを実行する

WebブラウザでURL ... / admin / rebuildcontextpaths.phpに移動します(たとえば、あなたのMoodleサイトがhttps://example.com/moodle/にある場合は、https://example.comにアクセスしてください)。 /moodle/admin/rebuildcontextpaths.php)あなたは管理者としてログインする必要があります。スクリプトが実行され、すぐに「Rebuilding context paths ...」と表示されます。しばらくしてから(あなたのMoodleサイトの大きさによりますが)それは '完了'を印刷します。