2011-06-30 6 views
2

私は、小さなデータベースを使用する、比較的小さくて簡単なPHP Webアプリケーションを書くことを任されています。このための認証は、管理ページで生成され、目的のユーザーに電子メールで送信される、クエリ文字列内のランダムに生成された16進数キーによるものです。Moodleモジュールタイプ

これは、これまでのすべての罰金ですが、ここでキャッチです:

様々な政治的な理由のために、我々は、これはMoodleのモジュールをアプリ作ることを余儀なくされています。 MySQLでMoodleデータベースを使用することはできますが、Moodleとやりとりしない独自のテーブルを使って作業します.Moodleはテーブルとやりとりしません。また、PHP-> MySQLへのアクセスではなく、Moodleデータベースの抽象化を使用する必要があります。

私は、ユーザーがMoodleの範囲内で動作している知っている必要はありません。私のWebアプリケーションにアクセスするには、Moodleにログインする必要はありません。おそらくMoodleにはアクセスできません。 Moodleにアクセスできるユーザーは、このWebアプリケーションを自分のMoodle機能のリストに表示するべきではありません。

私は、一緒にいくつかの小さなPHPページを投げ、いくつかのMoodle LIBSを含めて、Moodleの/改造ディレクトリにコードを配置しました。私が適切なチャンネルを通してモジュールにアクセスしていないので、URLでサーバー上のPHPページに直接アクセスすると、Moodleエラーが発生します。 「不正アクセスが検出されました」というエラーが表示されます。

は、私も可能行うために使命を帯びてるとは何ですか?もしそうなら、それを達成する最良の方法は?認証モジュールとアクティビティモジュールを作成する必要がありますか? Moodleのすべての認証をバイパスする方法はありますか?コアのMoodle設定ファイルを編集することなくそのまま使用する方法はありますか? (私はMoodleのコードを変更することで可能だが、それは悲しいことにオプションではない)。

私はPHPの経験がたくさんあるが、私は唯一のMoodle経験の約4時間を持っていると私はどこにも高速に取得しています。

+0

+1。ムーデル、アカデミア、そして "いろいろな政治的な理由"が "どこにもない"ということになっているようです。 – Brad

+0

@ブラッド - 私はこのプロジェクトを、通常のウェブサーバー上で独立して実行していた日のうちに終了できました。残念ながら、私はここでこれらの決定を下す人ではありません。 – Ozzah

答えて

0

それはあなたのプードルは、その設定ファイルで指定されているもの以外のホストから入ってくる一方で、スクリプトにアクセスしようとするかもしれないと私に聞こえます。 http_hostとヌードルwwwrootをダンプして、行が上がっているかどうかを調べることができます。私は1.9よりも2に慣れていませんが、abort_after_configを定義してからconfigをインクルードし、cfg wwwrootを変更してからabort_after_config_cancelを定義して設定を組み込むことができます。そうしないと、そうでない場合は、あなたが火のlib/setup.pupファイルにチェックを削除することができますホストを偽装でき

0

あなたがここに達成しようとしているが、次のいずれかが動作する可能性はかなりわかりません。

(1)LMSフレームワークで配信したいスタンドアロンプ​​ラットフォームをお持ちの場合は、ご希望の環境で開発し、LTIにラップするというカウンタ提案を提供する場合があります。 MoodleはそれをExternal Toolプラグインを介して提供することができ、認証と追跡のために両者間の双方向通信を行うことができます。

(2)Moodleの

でそれを行うことはlogin_hookで認証を作成し、それが他の人の前に最初にチェックされているように、これは認証プラグインリストの一番上に移動されていることを確認してください。フックを使用して(GETまたはPOSTパラメータとして)六角キーを処理するか、代替プロセスに進み、trueを返します(またはセッションを作成します)。また、このプラグインフックの横にある認証設定で '代替ログインページ'を使用することもできます。これは認証の必要があります。

登録が問題でない場合は、プラグインをローカルプラグイン(modではなく)として作成し、ログイン後にこのフックを使用してこのページにリダイレクトします。これにより、使用するライブラリの柔軟性がさらに向上し、回避策として必要に応じてフロントページの登録を使用することができます。あなたが本当に登録、コースの役割、およびグレードブックが必要な場合は、modを使ってこれらを活用してください。最新のMoodleには、単独のアクティビティだけを実行するフォーマットを提供する単一のアクティビティコースフォーマットがあります。

最後に、ローカルプラグインのテーマで独自のレイアウトタイプを使用する場合、またはコースを使用する場合はコースとインレーションレイアウト用に開発して、標準のMoodleナビゲーションと構造を制御できるようにします。

プラグインが既に他の活動に使用されているMoodleを共有している場合は、これに敏感である必要があります。あなたが自分のことを実行しているだけなら、はるかに簡単になります。

(3)Web Servicesを使用して、あなた自身のアプリケーションでMoodleから必要なものを入手してください。