48:前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスと言えます。アーティファクトを例に挙げると、Maharaコアはブログ、ファイルマネージャ、レジュメおよびプロファイル情報のプラグインと共に提供されます。通知において、Maharaは「内部」(ユーザの活動ログにメッセージを記録)、EメールおよびEメールダイジェストを持ちます。前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスと言えます。アーティファクトを例に挙げると、Maharaコアはブログ、ファイルマネージャ、レジュメおよびプロファイル情報のプラグインと共に提供されます。通知において、Maharaは「内部」(ユーザの活動ログにメッセージを記録)、EメールおよびEメールダイジェストを持ちます。++それぞれのプラグインには少なくとも1つのクラス定義が含まれるlib.phpが提供されます。このクラスでは、プラグインがcronジョブおよびイベントを登録することができます。そのプラグインタイプ固有の機能に接続することができます。−−それぞれのプラグインには少なくとも1つのクラス定義が含まれるlib.phpが提供されます。このクラスではプラグインがcronジョブおよびイベントを登録することができます。そのプラグインタイプ固有の機能に接続することができます。アーティファクトプラグインではメインメニューに新しいメニューアイテムを登録することができます。アーティファクトプラグインの場合、それぞれのプラグインは必要なページを描写するための1つまたはそれ以上のPHPスクリプトを提供することができます。他のコンテンツアイテムの様々な属性を共有できる利点すべてを得ることができるのに加えて、このようにして、アーティファクトプラグインはコンテンツ管理のために高度にカスタマイズしたインタフェースを提供することができます。アーティファクトプラグインの場合、それぞれのプラグインは必要なページを描写するための1つまたはそれ以上のPHPスクリプトを提供することができます。他のコンテンツアイテムの様々な属性を共有できる利点すべてを得ることができるのに加えて、このようにして、アーティファクトプラグインはコンテンツ管理のために高度にカスタマイズしたインタフェースを提供することができます。mitsこのドキュメントは、Maharaアーキテクチャの基本イントロダクションおよびアーキテクチャがどのようにコードに反映されているか、あなたに情報提供することを目的としています。このドキュメントを読んだ後、あなたはMaharaがどのように組み合わされているか、新しいプラグインまたはコアコードを書いて、どのように拡張するのか、合理的な理解を得ることができます。サブページ概要MaharaはPHPで書かれたウェブアプリケーションであり、Moodle、Drupal、phpBBに良く似ています。フレームワークのような機能を提供するため、いくつかのライブラリを使用しますが、それ自体はZendフレームワークのようなPHPフレームワークをベースとしているわけではありません。実際、あなたが作業するのに必要なデータベースライブラリおよびフォーム作成のフレームワーク、そしてあなたのカスタマイズに関してコアをハックしなくても済むようなプラグインアーキテクチャをMaharaは提供します。この意味で、MaharaはDrupalおよびMoodleのようなプラグイン着脱可能なソフトウェアと良く似ています。Maharaへのリクエストは直接PHPスクリプトに向かいます。現在のところ、ディスパッチはありません。ホームページへのリクエストは、index.php等によって処理されます。これらのスクリプトはMaharaコアを読み込み、必要なデータを検索して、データ構造または必要なフォームを生成した後、表示のために渡します。どのPHPスクリプトがどのページを生成するのか簡単に探すことができるため、理解するのにシンプルなモデルです。「クリーンURL」の利点を逃すことになりますが、多くのウェブサーバに移植することができます。Maharaのコンセプトの核となるものは「プラグイン」です。機能でさえ、プラグインを記述することで実装されています。できるよう、設計されています。(ハックしやすさ)Maharaは土台から最上部まで、高度に着脱可能な状態に設計されているため、簡単にハックすることができます。使用できるように、様々なLAMP環境で動作させることができます。Maharaチームがそのような環境でテストすることはありませんが、WindowsおよびIIS環境下で動作させているユーザも存在します。(恐らく、すでにあなたは知っていると思いますが)。チーム内には、新しい機能、バグフィックス、フォーラム投稿サポート、Maharaの一般的な改善等に毎日関わっている小さな開発部隊が存在します。新しい機能の開発からバグ報告まで、Maharaの使用に関して最善の方法を提案しています。重要な点は、Maharaがフリーソフトウェアであり、あなたは無条件に思いっきりハックできるということです!プラグインシステムMaharaアーキテクチャの重要な特徴はプラグインシステムです。ユーザが持つことのできるコンテンツから、ユーザの認証方法、検索の実装およびグループのワークまでがプラグイン着脱可能です。関わらず、Mahara内のプラグインすべてはcronジョブの登録およびイベントの購読等、いくつかの機能を共有しています。少ない数のサブシステムが実装されていることも、プラグインの作成を容易にしています。プラグインタイプMaharaの部品がプラグイン着脱可能であるため、特にAPIはその目的に合致するため作成されました。検索APIではどのような検索結果が必要であるか取り扱うメソッドを提供するのに対して、ユーザコンテンツタイプAPIではコンテンツ自体およびコンテンツのオーナーシップを取り扱うメソッドを含みます。私たちはこれら異なるタイプのプラグインをコールすることができます。(ユーザコンテンツのアイテムが「アーティファクト」呼ばれることが、この名称の由来です)。プラグインにはユーザアカウントの正当性を確認するAPIがあります。(search)このアプローチには、いくつかの素晴らしい点があります。適切なタイプのプラグインのみが使用されます。プラグインタイプでは実際要件のため、私たちがAPIをカスタマイズすることができます。検索を扱うプラグインでは単に検索APIメソッドを実装するだけで良く、そのことに関して、ユーザコンテンツ、通知または他の機能を実装しないことに言及する必要はありません。フォルダ内にディレクトリを持ちます。それぞれディレクトリには、lib.phpを含みます。プラグイン前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスと言えます。アーティファクトを例に挙げると、Maharaコアはブログ、ファイルマネージャ、レジュメおよびプロファイル情報のプラグインと共に提供されます。通知において、Maharaは「内部」(ユーザの活動ログにメッセージを記録)、EメールおよびEメールダイジェストを持ちます。それぞれのプラグインには少なくとも1つのクラス定義が含まれるlib.phpが提供されます。このクラスでは、プラグインがcronジョブおよびイベントを登録することができます。そのプラグインタイプ固有の機能に接続することができます。アーティファクトプラグインの場合、それぞれのプラグインは必要なページを描写するための1つまたはそれ以上のPHPスクリプトを提供することができます。他のコンテンツアイテムの様々な属性を共有できる利点すべてを得ることができるのに加えて、このようにして、アーティファクトプラグインはコンテンツ管理のために高度にカスタマイズしたインタフェースを提供することができます。それぞれのプラグインは該当するプラグインタイプのサブディレクトリ配下にあるサブディレクトリに入ります。ディレクトリが入ります。ように他のディレクトリも含みます。それぞれのプラグインのlib.phpには、プラグインを拡張するプラグインクラスを含みます。PluginArtefactBlogはPluginArtefactを拡張します。これは適切なAPIを実装します。プラグインタイプに応じて、他のクラスが必要になる場合があります。