Skip to content

Commit bb1d9d0

Browse files
authored
Update
1 parent f75dc87 commit bb1d9d0

File tree

4 files changed

+50
-30
lines changed

4 files changed

+50
-30
lines changed

EmbedScratch.php

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,43 @@
2525
if (!defined('MEDIAWIKI')) {
2626
die();
2727
}
28-
error_reporting(0);
29-
30-
$wgExtensionFunctions[] = 'beginEmbedScratch';
31-
$wgHooks['ParserFirstCallInit'][] = 'parserEmbedScratch';
32-
33-
function parserEmbedScratch (Parser $parser) {
34-
$parser->setHook('scratch', 'renderEmbedScratch');
35-
return true;
36-
}
37-
38-
function renderEmbedScratch ($input, array $args, Parser $parser, PPFrame $frame) {
39-
$project = $args["project"]?$args["project"]:"";
40-
if ($project == ""){
41-
return "";
42-
}
43-
$o = '<br>'
44-
. '<iframe allowtransparency="true" width="485" height="402" allowfullscreen frameborder="0" src="https://scratch.mit.edu/projects/embed/'
45-
. $project
46-
. '/?autostart=false"></iframe>';
47-
return $o;
48-
}
49-
function beginEmbedScratch () {
50-
global $wgOut;
51-
$wgOut->addModules('ext.embedScratch');
28+
class EmbedScratch{
29+
public static function parserEmbedScratch (&$parser) {
30+
$parser->setHook('scratch', array(__CLASS__,'renderEmbedScratch'));
31+
return true;
32+
}
33+
34+
function renderEmbedScratch ($input, $argv, $parser) {
35+
$project = '';
36+
$width = $width_max = 485;
37+
$height = $height_max = 402;
38+
39+
40+
if ( !empty( $argv['project'] ) ){
41+
$project=$argv['project'];
42+
} elseif (!empty($input)){
43+
$project=$input;
44+
}
45+
if (
46+
!empty( $argv['width'] ) &&
47+
settype( $argv['width'], 'integer' ) &&
48+
( $width_max >= $argv['width'] )
49+
)
50+
{
51+
$width = $argv['width'];
52+
}
53+
if (
54+
!empty( $argv['height'] ) &&
55+
settype( $argv['height'], 'integer' ) &&
56+
( $height_max >= $argv['height'] )
57+
)
58+
{
59+
$height = $argv['height'];
60+
}
61+
if (!empty($project)) {
62+
return "<iframe allowtransparency=\"true\" width=\"{$width}\" height=\"{$height}\" src=\"https://scratch.mit.edu/projects/embed/{$project}/?autostart=false\" frameborder=\"0\" allowfullscreen></iframe>";
63+
} else {
64+
return "";
65+
}
66+
}
5267
}
53-

extension.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "embedScratch",
3-
"version": "1.0.0",
2+
"name": "EmbedScratch",
3+
"version": "2.0.0",
44
"author": [
55
"Apple502j"
66
],
@@ -15,10 +15,10 @@
1515
"ContentHandlers": {},
1616
"ExtensionMessagesFiles": {},
1717
"Hooks": {
18-
"ParserFirstCallInit": "EmbedScratch::parserEmbedScratch"
18+
"ParserFirstCallInit": ["EmbedScratch::parserEmbedScratch"]
1919
},
2020
"MessagesDirs": {
21-
"embedScratch": [
21+
"EmbedScratch": [
2222
"i18n"
2323
]
2424
},

i18n/ja.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
"author": "apple502j"
44
},
55
"embedscratch-desc": "Scratchを埋め込もう!"
6-
}
6+
}

i18n/qqq.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"@metadata": {
3+
"author": "apple502j"
4+
},
5+
"embedscratch-desc": "Description of this extension"
6+
}

0 commit comments

Comments
 (0)