| Current Path : /var/www/html/mediawiki-1.43.1/extensions/SimpleEmbed/ |
| Current File : /var/www/html/mediawiki-1.43.1/extensions/SimpleEmbed/SimpleEmbed.php |
<?php
/**
*
* https://www.mediawiki.org/wiki/Extension:SimpleEmbed
*
* Example usage:
*
* <embed>{{PAGENAME}}</embed>
* <embed>http://localhost/mw/images/d/de/Sample.pdf</embed>;
* <embed>Sample.pdf</embed>
*
*/
$wgExtensionCredits['parserhook'][] = array(
'name' => 'SimpleEmbed',
# original 0.1 version from Kim Eik
'author' => 'Leonardo Martinho',
'version' => '0.2',
'url' => 'https://www.mediawiki.org/wiki/Extension:SimpleEmbed',
'description' => 'Allows for embedding files on a page',
);
$wgExtensionFunctions[] = 'registerEmbedHandler';
function registerEmbedHandler () {
$parser = \MediaWiki\MediaWikiServices::getInstance()->getParser();
$parser->setHook( 'embed', 'embed' );
}
function isValidUrl($url) {
return preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url);
}
function parseAsUrlOrWikiText($text, Parser $parser, PPFrame $frame) {
if (isValidUrl($text)){
return $text;
}
else{
$text = html_entity_decode($parser->recursiveTagParse($text, $frame));
if (!isValidUrl($text)) {
$file = \MediaWiki\MediaWikiServices::getInstance()->getRepoGroup()->findFile($text);
return $file ? $file->getFullUrl() : false;
}
return $text;
}
}
function embed ( $input, $argv, Parser $parser, PPFrame $frame ) {
$path = parseAsUrlOrWikiText($input, $parser, $frame);
if (!$path){
return "<span style=\"color: red;\">Invalid URI: $input</span>";
}
$width = isset($argv['width']) ? htmlspecialchars( $argv['width'] ) : '1000';
$height = isset($argv['height']) ? htmlspecialchars( $argv['height'] ) : '700';
return '<iframe src="'.$path.'" width="'.$width.'" height="'.$height.'"></iframe>';
}