如何在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的人来说都是一个非常普遍的要求。 谢谢
答案 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.
}