2017-07-26 1 views
0

別のページでそれを使った人の名前を自動的に追加するテンプレートを作りたいと思います。例えばテンプレートを使用したユーザーの名前を挿入する方法はありますか?

「addedby」という名前の次のテンプレートいた私は場合:

Added by '~~~~'. 

を私はこのようなページで使用するとき、私はそれをしたい:

This page was {{addedby}} 

~~~~テンプレートを使用したユーザーの名前に自動的に置き換えられます。ユーザージョンは "テンプレートを使用した場合
たとえば、上記の最後のページには、次のようになります。

This page was Added by 'john'. 

が可能、このですか?私は~~~~を使用してみましたが、テンプレートを保存すると~~~~はテンプレートを保存するときに直接置き換えられます。

+0

'このページだった{{addedby | ~~~~}}私はこれをしたい' – Bergi

+0

主な理由は、パラメータのないことです。しかし、それがないと、そこにはない方法があると思いますか? – user241205

答えて

1

substitutedテンプレートでは不可能です。 {{REVISIONUSER}} magic variableを使用することもできますが、テンプレートを追加したページではなくページに最後に編集したユーザーが常に表示されます。あなたは何らかの方法で、ユーザー名をページマークアップの中に入れなければなりません。

ですから、あなたのテンプレートにパラメータを使用することができ、次のいずれか

Added by '{{{1}}}'. 

This page was {{addedby|~~~}} 

またはユーザー名を挿入するための代替とtrick from Template:4~を使用します。

Added by '~~<noinclude></noinclude>~'. 

This page was {{subst:addedby}} 

(あなたもshow a warning when used without subst:を作ることができる)

+1

これについて考える良い方法は、ユーザーの名前を*どこかに保存する必要があることです。ページ履歴に格納されているという事実は、これを使うと何の助けにもならず、リビジョンIDはどこかに格納しなければならないことを意味します。同じ問題です。だから、あなたが 'subst'を使わない限り(この場合、あなたは記事wikitextに書かれたものを何らかの制御をして、ユーザ名が書き込まれるようにすることができます)、名前はその場所に格納されません。 wikitextパーサ。 – Tgr

+0

'~~~'は署名であり、名前ではありません。その名前のために、おそらく '{{{subst:REVISIONUSER}}}'を使用して、奇妙なプレビュー動作を犠牲にしてください。 – Tgr

+0

@Tgr右、私はちょうどOPが彼の質問にもそれを持っていたので、署名を使用した – Bergi

関連する問題