2017-06-26 6 views
2

私が取り組んでいるプロジェクトの一環として、moodleのサイト管理メニューに新しい機能を追加しようとしています。現在、お客様はOnePayゲートウェイをmoodleに統合するだけで済みます。しかし、将来(PayPalのような)他の支払いゲートウェイの統合も必要になるかもしれません。だから私は、ウェブサイト管理者だけでさまざまなタイプの支払いを入力するためのカテゴリを作成する必要があります。新しいカテゴリは、「高度な機能」メニュー(次のスクリーンショットのようなもの)「設定」ページでサイト管理メニューに新しいカテゴリとカスタムページを追加します

Where to add new category

Example for onepay integration

のどこかにあるべき入力にそのサイトの管理者は、必要なすべてのページです支払い情報(顧客のカード番号、アクセスコードなどを含む)。今、私は国内外の支払いのために2つのテストページを使ってテストしています。ここで

は、ファイル/lang/en/admin.phpで私のコードです:

$string['payment'] = 'Payment'; 
$string['onepay'] = 'OnePay'; 
$string['test_onepay_domestic'] = 'Test Domestic Payment using OnePay'; 
$string['test_onepay_international'] = 'Test International Payment using OnePay'; 

admin_customディレクトリには、私はこのようなパスを作成/支払い/ onepay /テスト/とに2つの私のテストページを追加それ。 folder/payment /にmenu.phpという名前のファイルを追加しました。ここに私のコードがあります。

<?php 
$ADMIN->add('advancedfeatures', new admin_category('payment', get_string('payment', 'admin'))); 
    $ADMIN->add('payment', new admin_category('payment', get_string('onepay', 'admin'))); 
    //$domestic = new admin_settingpage('onepay', new lang_string('test_onepay_domestic', 'admin'), new moodle_url("/admin_custom/payment/onepay/test/domestic/index.php")); 
    //$international = new admin_settingpage('onepay', new lang_string('test_onepay_international', 'admin'), new moodle_url("/admin_custom/payment/onepay/test/international/index.php")); 

$domestic = new admin_externalpage('test_onepay_domestic', get_string('test_onepay_domestic'), "$CFG->wwwroot/admin_custom/payment/onepay/test/domestic/index.php"); 
$international = new admin_externalpage('test_onepay_international', get_string('test_onepay_international'), "$CFG->wwwroot/admin_custom/payment/onepay/test/international/index.php"); 

$ADMIN->add('onepay', $domestic); 
$ADMIN->add('onepay', $international); 

私は両方のファイルで、ファイルmenu.phpを含めることを試みてきた

  • /admin/settings/top.php
  • /admin/settings/server.php

しかし、これらの作品のどれも。誰でもこの作品を手にするために何をすべきか教えてください。どうもありがとうございました。私は本当にそれを感謝します。

答えて

0

Moodleには 'payment'というプラグインタイプがありませんので、 '/ payment'で始まる階層を作成することで、既にMoodleが動作する方法とは異なるでしょう(coreを編集する必要がある言語ストリングやメニュー項目を追加するためのファイル)。

admin toolまたはlocal pluginを作成してもう一度やり直すことをおすすめします。どちらのタイプも独自の言語文字列を持つことができ、サイト管理メニューにエントリを追加することができます(標準の管理ツールプラグインの中にsettings.phpを表示するか、ローカルプラグインの場合はlocal_MYPLUGIN_extend_settings_navigation()を作成します)関数)。複数の支払いオプションをサポートしたい場合、プラグインは各支払いオプションに対して新しいsubplugin typeを定義することができます。

+0

ご返信ありがとうございます。それは良い(私は十分な15評判ポイントがないため、あなたのために投票することはできません申し訳ありません)と聞こえる。これが私にこの仕事を完了させるのに役立つかどうかがわかります。問題は私の会社のクライアントがサイト管理メニューからmoodleに完全かつ恒久的に統合されたその機能を求めていることです。 – Anthony

+0

Moodleの標準プラグインシステムを使用すると、サイト管理メニューに機能を永続的に統合することができます。メニュー機能の多くは、コアコードにバンドルされたばかりのプラグインです。 – davosmith

関連する問題