talk:Mits|talk]])+このドキュメントはMaharaアーキテクチャの基本情報およびコードの繋がりの情報提供を目的としています。このドキュメントを読むことにより、Maharaの連携、プラグイン開発による拡張、コアコードのハッキングに関して理解できます。−−このドキュメントはあなたにMaharaアーキテクチャの基本的な情報およびコードとの繋がりを提供することを目的としています。このドキュメントを読むことにより、あなたはMaharaの連携、プラグインの開発による拡張、コアコードのハッキングに関して理解することができます。id="section_1">==概要====概要==+MaharaはPHPで書かれたウェブアプリケーションであり、Moodle、Drupal、phpBB等に良く似ています。フレームワークのような機能を提供するため、Maharaはいくつかのライブラリを提供しますが、これ自体はZendフレームワークのようなPHPのフレームワークをベースにしていません。実際のところ、Maharaはデータベースアクセスおよびフォーム構築のようなフレームワークを提供しています。あなたはその中で作業を進める必要があります。プラグインアーキテクチャにより、あなたのカスタマイズはコアコードの改変を避けることができます。この点において、MaharaはDrupalおよびMoodleのようなプラグイン設置可能なソフトウェアに非常に類似しています。−MaharaはPHPで書かれたウェブアプリケーションであり、Moodle、Drupal、phpBB等に良く似ています。フレームワークのような機能を提供するため、Maharaはいくつかのライブラリを提供しますが、これ自体はZendフレームワークのようなPHPのフレームワークをベースにしていません。実際のところ、Maharaはデータベースアクセスおよびフォーム構築のようなフレームワークを提供しています。あなたはその中で作業を進める必要があります。プラグインアーキテクチャによりあなたのカスタマイズはコアコードの改変を避けることができます。この点において、MaharaはDrupalおよびMoodleのようなプラグイン設置可能なソフトウェアに非常に類似しています。+Maharaへのリクエストは特定のPHPスクリプトにヒットします。現在、ディスパッチャはありません。ホームページへのリクエストはindex.php等により扱われます。これらのスクリプトはMaharaコアを読み込んで、必要なデータを検索して、必要なデータ構造またはフォームを生成して、それらを表示するためテンプレータに渡しています。これはどのPHPスクリプトがどのページを生成するのかを簡単に把握できるシンプルなモデルです。「クリーンURL」の利点を失うことになりますが、多くのウェブサイトにとって移植可能な方法でもあります。−Maharaへのリクエストは特定のPHPスクリプトにヒットします。現在、ディスパッチャはありません。ホームページへのリクエストはindex.php等により扱われます。これらのスクリプトはMaharaコアを読み込んで、必要なデータを検索して、必要なデータ構造またはフォームを生成して、それらを表示するためテンプレータに渡していました。これはどのPHPスクリプトがどのページを生成するか簡単に把握することのできるシンプルなモデルです。「クリーンURL」の利点を失うことになりますが、多くのウェブサイトにとって移植可能な方法でもあります。+Maharaコアのコンセプトは'''プラグイン'''です。仮にコア機能であったとしても、Maharaの大部分の機能はプラグインを書いた上で実装されています。あなたが変更したいMaharaの一部分がプラグインに対応していない場合、Maharaは簡単に改変できるよう設計されています。−−Maharaコアのコンセプトは'''プラグイン'''です。大部分のMaharaの機能はコア機能であってもプラグインを書いた上で実装されています。あなたが変更したいMaharaの部分がプラグインに対応されていない場合、Maharaは簡単に改変できるよう設計されています。14:==ハッカビリティ====ハッカビリティ==−Maharaは基本部分からすべてにおいて高度に着脱および簡単に改造できるよう設計されています。PHPおよびLAMPスタックに慣れている多くの開発者が存在しているため、私たちはMaharaを意図的にPHPで書くようにしました。移行も含めて、多くの様々なLAPMで動作させることができます。Maharaチームが厳密にテストしたわけではありませんが、MaharaをWindowsおよびIISで動作させた人もいます。:)+Maharaは基本部分からすべてにおいて、高度に着脱および簡単に改造できるよう設計されています。PHPおよびLAMPスタックに慣れた多くの開発者が存在するため、私たちはMaharaを意図的にPHPで書くようにしました。移行も含めて、多くの様々なLAPM環境で動作させることができます。Maharaチームが厳密にテストしたわけではありませんが、MaharaをWindowsおよびIISで動作させた人もいます。:)−パッチに関して話しますと、あなたがすでに知っているようにMaharaは無料のオープンソースです。Maharaの小規模の開発部隊は新しい機能、バグ修正、フォーラムでのサポート、Maharaの一般的な改善に日々関わっています。新しい機能の開発からMaharaの最良な利用の提案に関するバグレポートの投稿等、開発部隊のまわりには熱心なコミュニティ、翻訳者、ボランティア、開発者および多くの部分でMaharaの改善に尽力するユーザがいます。重要な点はMaharaがフリーソフトウェアであり、あなたが思う存分ハックできることです!+パッチに関して話しますと、すでにご存知のようにMaharaは無料のオープンソースです。Maharaの小規模開発部隊は新しい機能、バグ修正、フォーラムでのサポート、Maharaの一般的な改善に日々携わっています。新しい機能の開発からMaharaの最良な利用の提案に関するバグレポートの投稿等、開発部隊のまわりには熱心なコミュニティ、翻訳者、ボランティア、開発者および多くの部分でMaharaの改善に尽力するユーザがいます。22:==プラグインシステム====プラグインシステム==−Maharaアーキテクチャの重要な特徴はプラグインシステムであることです。実装、グループの運用方法まで、Maharaのすべての部品は脱着可能です。関わらずcronジョブの登録およびイベントの予約のような機能を共有していますプラグインを書く作業が簡単になるよう多くのすぐに使うことのできるサブシステムもあります。+Maharaアーキテクチャの重要な特徴はプラグインシステムであることです。実装、グループの運用方法まで、Maharaのすべての部品は脱着可能です。関わらずcronジョブの登録およびイベントの予約のような機能を共有しています。プラグインを書く作業が簡単になるよう、すぐに使える多くのサブシステムもあります。28:===プラグインタイプ======プラグインタイプ===−Maharaの部品は着脱可能ですが、特にAPIはこの目的で作成されました。検索APIが要求される検索結果を扱うためのメソッドを提供するのに対して、ユーザコンテンツタイプのAPIはコンテンツ自体および所有権を取り扱うためのメソッドを含みます。私たちはこれらすべてを異なるプラグインの'''タイプ'''と呼んでいます。以下、いくつかの例です:+Maharaの部品は着脱可能ですが、特にAPIはこの目的で作成されています。検索APIが要求される検索結果を扱うためのメソッドを提供するのに対して、ユーザコンテンツタイプAPIはコンテンツ自体および所有権を取り扱うためのメソッドを含みます。私たちはこれらすべてを異なるプラグインの'''タイプ'''と呼んでいます。(ユーザコンテンツのアイテムはアーティファクトと呼ばれるため、このプラグイン名となりました)。(ユーザコンテンツのアイテムはアーティファクトと呼ばれるため、このプラグイン名となりました)。'''認証'''プラグインタイプはユーザアカウントの認証のためのAPIです。'''認証'''プラグインタイプはユーザアカウントの認証のためのAPIです。'''ブロックタイプ'''プラグインタイプはシステムへの着脱可能な新しいタイプのブロックの設置を提供します。'''ブロックタイプ'''プラグインタイプはシステムへの着脱可能な新しいタイプのブロックの設置を提供します。アーティファクト、認証、ブロックタイプ、グループタイプ、インタラクション、通知および検索。アーティファクト、認証、ブロックタイプ、グループタイプ、インタラクション、通知および検索。−このアプローチにはいくつかの素晴らしい利点があります。正しいタイプのプラグインのみが使用されます。実際の必要条件のため、私たちはプラグインタイプでAPIをカスタマイズすることができます。検索を扱うプラグインは検索APIメソッドを実装するだけであり、ユーザコンテンツ、通知または他の関連する内容をサポートしないと伝える必要はありません。+このアプローチにはいくつかの素晴らしい利点があります。正しいタイプのプラグインのみが使用されます。実際の必要条件のため、私たちはプラグインタイプでAPIをカスタマイズできます。検索を扱うプラグインは検索APIメソッドを実装するだけであり、ユーザコンテンツ、通知または他の関連する内容をサポートしないと伝える必要はありません。プラグインタイプは「htdocs/」フォルダ内にそれぞれディレクトリを持ちます。これらすべてのディレクトリにはlib.phpが含まれます。内にそれぞれディレクトリを持ちます。これらすべてのディレクトリにはlib.phpが含まれます。Plugins===+===プラグイン===−前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスでしかありません。emaildigest.+前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスでしかありません。アーティファクトの場合、Maharaコアにはブログ、ファイルマネージャ、レジュメおよびプロファイル情報が同梱されます。(ユーザの活動ログへのログメッセージを記録)、メールおよびメールダイジェストがあります。menu.+それぞれのプラグインでは少なくとも1つのクラス定義を含むlib.phpファイルを提供する必要があります。このクラスはプラグインによるcronジョブおよびイベント登録を可能とします。そのプラグインタイプのさらに特別な機能を引き込むこともできます。アーティファクトプラグインにはメインメニューに新しいメニューアイテムを追加できます。content.+アーティファクトプラグインに関して言えば、それぞれのプラグインはページ描写に必要な1つまたはそれ以上のPHPスクリプトも提供します。このようにしてアーティファクトプラグインはコンテンツを管理するための高度なカスタムインターフェースを提供しながら、コンテンツのほかのアイテムと様々なプロパティを共有できる利点を獲得しています。それぞれのプラグインは適切なプラグインタイプサブディレクトリのサブディレクトリです。lib.phpおよびversion.php、そしてデータベーステーブルを必要とする場合、「db/」ディレクトリが提供されます。それぞれのプラグインのlib.phpにはプラグインを拡張するプラグインクラスが含まれます。PluginArtefactBlogはPluginArtefactを拡張します。これにより適切なAPIが実装されます。他のクラスはプラグインタイプによっては必要な場合があります。2019このドキュメントはMaharaアーキテクチャの基本情報およびコードの繋がりの情報提供を目的としています。このドキュメントを読むことにより、Maharaの連携、プラグイン開発による拡張、コアコードのハッキングに関して理解できます。サブページ概要MaharaはPHPで書かれたウェブアプリケーションであり、Moodle、Drupal、phpBB等に良く似ています。フレームワークのような機能を提供するため、Maharaはいくつかのライブラリを提供しますが、これ自体はZendフレームワークのようなPHPのフレームワークをベースにしていません。実際のところ、Maharaはデータベースアクセスおよびフォーム構築のようなフレームワークを提供しています。あなたはその中で作業を進める必要があります。プラグインアーキテクチャにより、あなたのカスタマイズはコアコードの改変を避けることができます。この点において、MaharaはDrupalおよびMoodleのようなプラグイン設置可能なソフトウェアに非常に類似しています。Maharaへのリクエストは特定のPHPスクリプトにヒットします。現在、ディスパッチャはありません。ホームページへのリクエストはindex.php等により扱われます。これらのスクリプトはMaharaコアを読み込んで、必要なデータを検索して、必要なデータ構造またはフォームを生成して、それらを表示するためテンプレータに渡しています。これはどのPHPスクリプトがどのページを生成するのかを簡単に把握できるシンプルなモデルです。「クリーンURL」の利点を失うことになりますが、多くのウェブサイトにとって移植可能な方法でもあります。Maharaコアのコンセプトはプラグインです。仮にコア機能であったとしても、Maharaの大部分の機能はプラグインを書いた上で実装されています。あなたが変更したいMaharaの一部分がプラグインに対応していない場合、Maharaは簡単に改変できるよう設計されています。ハッカビリティMaharaは基本部分からすべてにおいて、高度に着脱および簡単に改造できるよう設計されています。PHPおよびLAMPスタックに慣れた多くの開発者が存在するため、私たちはMaharaを意図的にPHPで書くようにしました。移行も含めて、多くの様々なLAPM環境で動作させることができます。Maharaチームが厳密にテストしたわけではありませんが、MaharaをWindowsおよびIISで動作させた人もいます。:)パッチに関して話しますと、すでにご存知のようにMaharaは無料のオープンソースです。Maharaの小規模開発部隊は新しい機能、バグ修正、フォーラムでのサポート、Maharaの一般的な改善に日々携わっています。新しい機能の開発からMaharaの最良な利用の提案に関するバグレポートの投稿等、開発部隊のまわりには熱心なコミュニティ、翻訳者、ボランティア、開発者および多くの部分でMaharaの改善に尽力するユーザがいます。できることです!プラグインシステムMaharaアーキテクチャの重要な特徴はプラグインシステムであることです。実装、グループの運用方法まで、Maharaのすべての部品は脱着可能です。関わらずcronジョブの登録およびイベントの予約のような機能を共有しています。プラグインを書く作業が簡単になるよう、すぐに使える多くのサブシステムもあります。プラグインタイプMaharaの部品は着脱可能ですが、特にAPIはこの目的で作成されています。検索APIが要求される検索結果を扱うためのメソッドを提供するのに対して、ユーザコンテンツタイプAPIはコンテンツ自体および所有権を取り扱うためのメソッドを含みます。私たちはこれらすべてを異なるプラグインのタイプと呼んでいます。(ユーザコンテンツのアイテムはアーティファクトと呼ばれるため、このプラグイン名となりました)。認証プラグインタイプはユーザアカウントの認証のためのAPIです。ブロックタイププラグインタイプはシステムへの着脱可能な新しいタイプのブロックの設置を提供します。アーティファクト、認証、ブロックタイプ、グループタイプ、インタラクション、通知および検索。このアプローチにはいくつかの素晴らしい利点があります。正しいタイプのプラグインのみが使用されます。実際の必要条件のため、私たちはプラグインタイプでAPIをカスタマイズできます。検索を扱うプラグインは検索APIメソッドを実装するだけであり、ユーザコンテンツ、通知または他の関連する内容をサポートしないと伝える必要はありません。内にそれぞれディレクトリを持ちます。これらすべてのディレクトリにはlib.phpが含まれます。プラグイン前のセクションを前提とした場合、プラグイン自体は単にプラグインタイプのインスタンスでしかありません。アーティファクトの場合、Maharaコアにはブログ、ファイルマネージャ、レジュメおよびプロファイル情報が同梱されます。(ユーザの活動ログへのログメッセージを記録)、メールおよびメールダイジェストがあります。それぞれのプラグインでは少なくとも1つのクラス定義を含むlib.phpファイルを提供する必要があります。このクラスはプラグインによるcronジョブおよびイベント登録を可能とします。そのプラグインタイプのさらに特別な機能を引き込むこともできます。アーティファクトプラグインにはメインメニューに新しいメニューアイテムを追加できます。アーティファクトプラグインに関して言えば、それぞれのプラグインはページ描写に必要な1つまたはそれ以上のPHPスクリプトも提供します。このようにしてアーティファクトプラグインはコンテンツを管理するための高度なカスタムインターフェースを提供しながら、コンテンツのほかのアイテムと様々なプロパティを共有できる利点を獲得しています。それぞれのプラグインは適切なプラグインタイプサブディレクトリのサブディレクトリです。lib.phpおよびversion.php、そしてデータベーステーブルを必要とする場合、「db/」ディレクトリが提供されます。それぞれのプラグインのlib.phpにはプラグインを拡張するプラグインクラスが含まれます。PluginArtefactBlogはPluginArtefactを拡張します。これにより適切なAPIが実装されます。他のクラスはプラグインタイプによっては必要な場合があります。