67 lines
1.8 KiB
PHP
67 lines
1.8 KiB
PHP
<?php
|
|
namespace MediaWiki\Extension\GlModelViewer;
|
|
|
|
use ImageHandler;
|
|
|
|
class GlModelHandler extends ImageHandler {
|
|
/**
|
|
* Model cannot be displayed directly in a browser but can be rendered.
|
|
*
|
|
* @param File $file
|
|
* @return bool
|
|
*/
|
|
public function mustRender( $file ) {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Model can be rendered.
|
|
*
|
|
* @param File $file
|
|
* @return bool
|
|
*/
|
|
public function canRender( $file ) {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get a MediaTransformOutput object representing the transformed output.
|
|
*
|
|
* @param File $image
|
|
* @param string $dstPath Filesystem destination path
|
|
* @param string $dstUrl Destination URL to use in output HTML
|
|
* @param array $params Arbitrary set of parameters validated by $this->validateParam()
|
|
* @param int $flags A bitfield, may contain self::TRANSFORM_LATER
|
|
* @return MediaTransformOutput
|
|
*/
|
|
public function doTransform($image, $dstPath, $dstUrl, $params, $flags = 0) {
|
|
echo '<script>';
|
|
self::console_log($image);
|
|
self::console_log($dstPath);
|
|
self::console_log($dstUrl);
|
|
self::console_log($params);
|
|
self::console_log($flags);
|
|
echo '</script>';
|
|
|
|
return new GlModelTransformOutput($image, ['type' => 'glb']);
|
|
}
|
|
|
|
/**
|
|
* Small helper function to display information on the browser console
|
|
*
|
|
* Usage:
|
|
* echo '<script>';
|
|
* self::console_log('logged string');
|
|
* echo '</script>';
|
|
*
|
|
* @param $data information to display
|
|
* @param bool $add_script_tags true to put information is inside complete script tag
|
|
*/
|
|
public static function console_log($data, $add_script_tags = false) {
|
|
$command = 'console.log('. json_encode($data, JSON_HEX_TAG).');';
|
|
if ($add_script_tags) {
|
|
$command = '<script>'. $command . '</script>';
|
|
}
|
|
echo $command;
|
|
}
|
|
} |