如何使用php在MediaWiki页面上找到图像的文件名?

时间:2012-07-02 06:19:29

标签: php mediawiki

如何在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的价值而不必输入例如$ f = wfFindFile('Sunset.jpg'); 我认为这对于任何试图在其网站上添加pinterest的人来说都是一个非常普遍的要求。 谢谢

1 个答案:

答案 0 :(得分:3)

您要查找的$ filename基本上是在MediaWiki上传时的名称,例如Landscape-plain.jpg。您将只使用wfFindFile()辅助函数来获取File对象。然后调用方法:

  

$ php maintenance / eval.php

     

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

     

&GT; print $ file-&gt; getName();

     

横向 - plain.jpg

     

&GT; print $ file-&gt; getPath();

     

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

     

&GT; print $ file-&gt; getFullPath();

     

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

     

&GT; print $ file-&gt; getTitle();

     

文件:风景-plain.jpg

     

&GT;出口

API文档:

以下编辑

文件信息可通过File对象获得,因此您肯定需要使用wfFindFile()来获取此类对象。

要实际查找用户正在浏览的页面的文件名,您需要使用查询上下文并获取其标题:

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


if( $title->getNamespace == 'NS_FILE' ) {
  $filename = $title->getPrefixedText;
 // do your stuff.
}