2

MediaWiki サイトで画像のファイル名を見つけるにはどうすればよいですか?
ファイル名を手動で入力したくありません。ファイル名を取得する PHP コードが必要です。
使用できます$f = wfFindFile( '$filename' );が、$filename を取得するにはどうすればよいですか?
FILE クラスを見てきましたが、使用方法がわかりません。File::getFilename();エラーが発生し続けますcall to undefined method

私は何を間違っていますか?

より詳細に説明します: 私は自分のサイトにピン留めボタンを追加したいので、ボタンをクリックすると、画像と画像の説明とともにピン留めボードに投稿されます。サイトのすべてのページで機能するように、php を使用して画像情報を送信する必要があります。画像名を毎回手動でコーディングすることはできません。これまでのところ、私はコードを持っています:

        <a href="http://pinterest.com/pin/create/button/?url=' . urlencode($f->getFullURL()).'&media='.urlencode($f->getCanonicalUrl() ).'&description='.urlencode($f->getDescription()) .'" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a>

$f (画像名) の値を入力する必要があることを除いて、これはうまく機能します。私の質問は、たとえば $f = wfFindFile( 'Sunset.jpg' ); に入れずに $f の値を取得する方法です。ピンタレストを自分のサイトに追加しようとしている人にとって、これは非常に一般的な要求だと思います。ありがとう

4

1 に答える 1

4

探している$filenameは、基本的に、アップロードされたときにMediaWikiで名前が付けられた方法です(Landscape-plain.jpgなど)。wfFindFile()ヘルパー関数を使用してFileオブジェクトを取得します。次に、メソッドを呼び出します。

$ php Maintenance / eval.php

> $ file = wfFindFile('Landscape-plain.jpg');

> $ file-> getName();を出力します。

風景-plain.jpg

> $ file-> getPath();を出力します。

mwstore://local-backend/local-public/b/b0/Landscape-plain.jpg

> $ file-> getFullPath();を出力します。

/path/to/images/b/b0/Landscape-plain.jpg

> $ file-> getTitle();を出力します。

ファイル:Landscape-plain.jpg

>終了

APIドキュメント:

以下の編集

ファイル情報はFileオブジェクトを介して入手できるため、このようなオブジェクトを取得するには、必ずwfFindFile()を使用する必要があります。

ユーザーが閲覧しているページのファイル名を実際に見つけるには、クエリコンテキストを使用して、そのタイトルを取得します。

$context = RequestContext::getMain();
$t = $context->getTitle();


if( $title->getNamespace == 'NS_FILE' ) {
  $filename = $title->getPrefixedText;
 // do your stuff.
}
于 2012-07-05T16:36:40.230 に答える