Actions

Make your plugin compatible with LS4/ja: Difference between revisions

From LimeSurvey Manual

(Created page with ""ROOT_PATH"のように、コアアプリケーションや他のプラグインの変数と競合する可能性のあるグローバル定数の使用は避けてくださ...")
(Created page with "==名前空間の利用== 名前空間を使用すると、プラグインのタスクを実行するために一緒に動作するクラスをグループ化して、より...")
 
Line 68: Line 68:
"ROOT_PATH"のように、コアアプリケーションや他のプラグインの変数と競合する可能性のあるグローバル定数の使用は避けてください。プラグイン開発では、基本的にグローバル定数は使用しないでください。  
"ROOT_PATH"のように、コアアプリケーションや他のプラグインの変数と競合する可能性のあるグローバル定数の使用は避けてください。プラグイン開発では、基本的にグローバル定数は使用しないでください。  


==Use Namespaces==
==名前空間の利用==
Use namespace for better organization by grouping classes that work together to perform a task in your plugin. In that way you avoid using classes that are being used already in the core application.
名前空間を使用すると、プラグインのタスクを実行するために一緒に動作するクラスをグループ化して、よりよく整理することができます。これにより、コアアプリケーションで既に使用されているクラスの使用を避けることができます。





Latest revision as of 03:02, 14 March 2021


技術的な変更

新しいXML構成ファイル

LimeSurvey 4.0以降、プラグインをアプリケーションで実行するにはXML構成ファイルが必要になります。

これは、プラグインの作成者、サポートの電子メール、アップデートなどのメタデータ情報を保存できるようにするためです。

このXMLファイルは、LimeSurvey 4では必須です。プラグインのルートディレクトリーに配置する必要があります。詳しくは、プラグイン開発のプラグインの項をご覧ください。

例:

新しいプラグインディレクトリ

LimeSurvey 4では、プラグインディレクトリーが変更されています。セキュリティ上の理由から、新しいプラグインマネージャー(Plugin uploader)により、プラグインディレクトリーはアップロードディレクトリ(/upload/plugins)に配置されるようになりました。 手動でアップロードする場合は、ソフトウェアの誤動作を避けるため、新しいディレクトリーにアップロードすることをお勧めします。

プラグインにハードコーディングされている場合は、必ず新しいディレクトリーを変更または追加してください。

例:



新しいプラグインイベント

LS3の一部のプラグインイベントが非推奨となりました。古いプラグインイベントの代わりに、LS4で導入された新しいプラグインイベントを使用してください。詳しくは、プラグインイベントに関する開発マニュアルをご覧ください。

非推奨の関数とメソッド

LimeSurvey 4のコードベースや構造が変わったため、使われなくなったメソッドや関数がたくさんあります。 この問題を解決するには、まずconfig.phpファイルでデバッグモードを有効にしてからプラグインのページに移動する必要があります。存在しなくなったメソッドは、エラーページに表示されます。

メソッドの中には、LS4で名前が変更されたものや、使われなくなったものもあります。プラグインがLS3とLS4の両方で動作することを確認するには、必要なメソッドを呼び出す前にLSのバージョンを確認してください。


例:



ベストプラクティス

SVGファイルを避ける

セキュリティ(XSS)上の理由から、SVGファイルのアップロードはできません。プラグインのアップローダーはSVGファイルを無視します。PNGまたはJPEGファイルに置き換えてください。SVGファイルのアップロードは、FTPやその他のサーバーツールを使ってインストールディレクトリーにアクセスできる場合のみ可能です(ファイルのアップロードは自己責任でお願いします)。


グローバル定数を避ける

"ROOT_PATH"のように、コアアプリケーションや他のプラグインの変数と競合する可能性のあるグローバル定数の使用は避けてください。プラグイン開発では、基本的にグローバル定数は使用しないでください。

名前空間の利用

名前空間を使用すると、プラグインのタスクを実行するために一緒に動作するクラスをグループ化して、よりよく整理することができます。これにより、コアアプリケーションで既に使用されているクラスの使用を避けることができます。


例: