2015-04-27 14:05:31 +00:00
|
|
|
<?php
|
|
|
|
namespace Wikia\PortableInfobox\Parser\Nodes;
|
|
|
|
|
2015-05-07 12:37:13 +00:00
|
|
|
use Wikia\PortableInfobox\Helpers\ImageFilenameSanitizer;
|
|
|
|
|
2015-04-27 14:05:31 +00:00
|
|
|
class NodeImage extends Node {
|
|
|
|
const ALT_TAG_NAME = 'alt';
|
|
|
|
|
|
|
|
public function getData() {
|
2015-05-11 11:56:18 +00:00
|
|
|
global $wgContLang;
|
|
|
|
|
2015-05-11 15:07:07 +00:00
|
|
|
$title = \Title::newFromText(
|
2015-05-11 11:56:18 +00:00
|
|
|
ImageFilenameSanitizer::getInstance()->sanitizeImageFileName(
|
|
|
|
$this->getRawValueWithDefault( $this->xmlNode ),
|
|
|
|
$wgContLang
|
|
|
|
),
|
|
|
|
NS_FILE
|
|
|
|
);
|
2015-05-11 15:07:07 +00:00
|
|
|
|
|
|
|
|
2015-05-07 12:37:13 +00:00
|
|
|
return [
|
2015-05-11 15:07:07 +00:00
|
|
|
'url' => $this->resolveImageUrl( $title ),
|
|
|
|
'name' => ( $title ) ? $title->getDBkey() : '',
|
2015-05-07 12:37:13 +00:00
|
|
|
'alt' => $this->getValueWithDefault( $this->xmlNode->{self::ALT_TAG_NAME} )
|
|
|
|
];
|
2015-04-27 14:05:31 +00:00
|
|
|
}
|
|
|
|
|
2015-05-06 14:11:04 +00:00
|
|
|
public function isEmpty( $data ) {
|
|
|
|
return !( isset( $data[ 'url' ] ) ) || empty( $data[ 'url' ] );
|
|
|
|
}
|
|
|
|
|
2015-05-11 11:56:18 +00:00
|
|
|
public function resolveImageUrl( $title ) {
|
2015-04-27 14:05:31 +00:00
|
|
|
if ( $title && $title->exists() ) {
|
2015-05-04 14:43:53 +00:00
|
|
|
return \WikiaFileHelper::getFileFromTitle( $title )->getUrlGenerator()->url();
|
|
|
|
} else {
|
|
|
|
return "";
|
2015-04-27 14:05:31 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|