Extension:PHPTemplates

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:PHPTemplates and the translation is 33% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎polski • ‎sicilianu • ‎日本語
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
PHPTemplates
リリースの状態: 実験的
実装 Tag
説明 ページ内に埋め込まれた PHP コードを実行できるようにする
作者 Tim.landscheidttalk
最新バージョン 0.1dev
MediaWiki 1.19svn
PHP 5.2.13
ライセンス GNU General Public License 3.0 or later
ダウンロード
タグ
phpcode
使用するフック
ParserFirstCallInit
translatewiki.net で翻訳を利用できる場合は、PHPTemplates 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。

この拡張機能ができること

This extension allows you to embed white-listed PHP code in pages. Why the misnomer "PHPTemplates"? Because ultimately for reviewing code similar to Extension:FlaggedRevs , it would be nice to limit PHPTemplates's scope to templates starting with <?php. However, it is much easier at this time to plug into the MediaWiki parser via the general tag hook.

使用法

<phpcode>$a=$b+$c;echo($a);</phpcode>

That's all at this moment (yes, it will output "0"). The PHP grammar is rather complex, and trimming it down takes time.

ダウンロード手順

Please copy and paste the code found at GitHub and place it under $IP/extensions/PHPTemplates/.

$IP は、あなたが MediaWiki をインストールしたインストールパス (または「ディレクトリ」) を意味します (Install Path の略)。そのディレクトリには LocalSettings.phpindex.php などがあります。

インストール

To install this extension, add the following to LocalSettings.php :

require_once("$IP/extensions/PHPTemplates/PHPTemplates.php");

利用者の自由の制限

You can enhance PHPTemplates to somewhat cap the resources used. Duly note that enhancing in this context means amending the grammar and generating a new parser.

Validation

While parsing the source, you can count the number of statements and their levels of nesting and require that certain limits are not exceeded.

Runtime

Instead of just validating the source, you can amend it on the fly and transform for example:

while (true);

to:

while (wfAbortIfResourcesLimitExceeded () && (true));

There will probably be some bombs that cannot be guarded against this way, but it should cover most common mistakes.

関連項目