S5SlideShow


Wolfgang Fahl

Please comment here

Extension
edit
name  S5SlideShow
url  https://www.mediawiki.org/wiki/Extension:S5SlideShow
purpose  Slideshow presentation from Wikimarkup
since  2009
wiki  

S5

Example Slideshows

click "slideshow" on any of the talk pages

 
Build Your Own Self Driving Vehicle with Java
EMWConTalk2023-04
Graph Approaches for Software Engineeering
Mediawiki 1.35 Migration
SMWConTalk2015-05
SMWConTalk2015-05-01
SMWConTalk2015-10
SMWConTalk2016-09
SMWConTalk2017-10
SMWConTalk2018-12
SMWConTalk2019-09
SMWConTalk2020-04
SMWConTalk2022-10

Links

Issues[edit]

Call to undefined method WikitextContent:getText()[edit]

Exception encountered, of type "Error"
[c34bfba970bc2aa84ca0a212] /index.php?title=SWMConTalk2015-10&action=slide Error from line 254 of extensions/S5SlideShow/src/Render.php: Call to undefined method WikitextContent::getText()
Backtrace:
#0 extensions/S5SlideShow/src/Render.php(348): S5SlideShow\Render->loadContent()
#1 extensions/S5SlideShow/src/Action.php(90): S5SlideShow\Render->genSlideFile(boolean)
#2 includes/MediaWiki.php(493): S5SlideShow\Action->show()
/srv/www/mediawiki/code/extensions/S5SlideShow$ gitinfo
== Remote URL: origin	https://github.com/WolfgangFahl/S5SlideShow (fetch)
origin	https://github.com/WolfgangFahl/S5SlideShow (push)
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes Call to undefined method WikitextContent::getText() for MW 1.27.3 env see https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/Translate/+/538756/3/TranslateHooks.php as an example
name  Wolfgang Fahl
date  2020-02-07 10:29:10 +0100
hash  6ed5a2a


Class 'S5SlideShow\Hooks not found[edit]

Exception encountered, of type "Error"
[120789ca59e7b0366a3b81ea] /index.php?title=SWMConTalk2015-10&action=slide Error from line 293 of /hd/owei/srv/www/mediawiki/code/extensions/S5SlideShow/src/Render.php: Class 'S5SlideShow\Hooks' not found
Backtrace:
#0 /hd/owei/srv/www/mediawiki/code/extensions/S5SlideShow/src/Render.php(271): S5SlideShow\Render->parse(string)
grep "Hooks::" *.php
Render.php:		$prev = Hooks::$parsingSlide;
Render.php:		Hooks::$parsingSlide = true;
Render.php:		Hooks::$parsingSlide = $prev;
Render.php:			Hooks::$styles['print'] = 'print.css';
Render.php:		foreach ( Hooks::$styles as $k => $file ) {
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes Class 'S5SlideShow\Hooks not found
name  Wolfgang Fahl
date  2020-02-08 08:59:39
hash  54a50873165b20ef93981f7f5ce60f920dc30a5b

Class 'Wikimedia\AtEase\AtEase' not found[edit]

Superfluous by now.

Call to undefined method WikitextContent:getText()[edit]

Exception encountered, of type "Error"
[c34bfba970bc2aa84ca0a212] /index.php?title=SWMConTalk2015-10&action=slide Error from line 254 of extensions/S5SlideShow/src/Render.php: Call to undefined method WikitextContent::getText()
Backtrace:
#0 extensions/S5SlideShow/src/Render.php(348): S5SlideShow\Render->loadContent()
#1 extensions/S5SlideShow/src/Action.php(90): S5SlideShow\Render->genSlideFile(boolean)
#2 includes/MediaWiki.php(493): S5SlideShow\Action->show()
/srv/www/mediawiki/code/extensions/S5SlideShow$ gitinfo
== Remote URL: origin	https://github.com/WolfgangFahl/S5SlideShow (fetch)
origin	https://github.com/WolfgangFahl/S5SlideShow (push)
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes Call to undefined method WikitextContent::getText() for MW 1.27.3 env see https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/Translate/+/538756/3/TranslateHooks.php as an example
name  Wolfgang Fahl
date  2020-02-07 10:29:10 +0100
hash  6ed5a2a

Class 'S5SlideShow\Hooks not found[edit]

Exception encountered, of type "Error"
[120789ca59e7b0366a3b81ea] /index.php?title=SWMConTalk2015-10&action=slide Error from line 293 of /hd/owei/srv/www/mediawiki/code/extensions/S5SlideShow/src/Render.php: Class 'S5SlideShow\Hooks' not found
Backtrace:
#0 /hd/owei/srv/www/mediawiki/code/extensions/S5SlideShow/src/Render.php(271): S5SlideShow\Render->parse(string)
grep "Hooks::" *.php
Render.php:		$prev = Hooks::$parsingSlide;
Render.php:		Hooks::$parsingSlide = true;
Render.php:		Hooks::$parsingSlide = $prev;
Render.php:			Hooks::$styles['print'] = 'print.css';
Render.php:		foreach ( Hooks::$styles as $k => $file ) {
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes Class 'S5SlideShow\Hooks not found
name  Wolfgang Fahl
date  2020-02-08 08:59:39
hash  54a50873165b20ef93981f7f5ce60f920dc30a5b

Class 'Wikimedia\AtEase\AtEase' not found[edit]

Superfluous by now.

composer.local.json[edit]

{
	"require": {
		"wikimedia/at-ease": "*"
	}
}
php composer.phar update

PPNode_DOM properties[edit]

Notice: Undefined property: PPNode_DOM::$ownerDocument in extensions/S5SlideShow/src/Render.php on line 176
Notice: Undefined property: PPNode_DOM::$childNodes in extensions/S5SlideShow/src/Render.php on line 177
Notice: Trying to get property 'length' of non-object in extensions/S5SlideShow/src/Render.php on line 193
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes invalid yatil subpath content
name  Wolfgang Fahl
date  2020-02-08 15:28:51 +0100
hash  8aadf71


Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes namespace reference and avoids use of AtEase
name  Wolfgang Fahl
date  2020-02-08 18:05:52 +0100
hash  1b7821e


Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes template path and autoloading of Skin.php
name  Wolfgang Fahl
date  2020-02-09 08:20:17 +0100
hash  8d9c1a1


Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes node access
name  Wolfgang Fahl
date  2020-02-09 08:37:04 +0100
hash  bcabc8f

Trying to get property nodeName of None object[edit]

Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes Trying to get property nodeName of None object
name  Wolfgang Fahl
date  2020-02-09 08:50:14 +0100
hash  539a5e8

Argument 1 passed to S5SlideShow\Skin::setupSkinUserCss() must be an instance of S5SlideShow\OutputPage,[edit]

TypeError: Argument 1 passed to S5SlideShow\Skin::setupSkinUserCss() must be an instance of S5SlideShow\OutputPage, instance of OutputPage given, called in /var/www/html/mediawiki-1.33.2/includes/OutputPage.php on line 3127 and defined in /var/www/html/mediawiki-1.33.2/extensions/S5SlideShow/src/Skin.php:33
Stack trace:
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  remove type hint (could also add namespace)
name  Wolfgang Fahl
date  2020-02-09 11:03:03 +0100
hash  99dcfe7

typo extension.json ParserGetVariablValueSwitch[edit]

Original exception: [fba9fa950b264030360a7267] /index.php/Hauptseite MWException from line 176 of /var/www/mediawiki/code/includes/Hooks.php: Invalid callback S5SlideShow\S5SlideShowHooks::ParserGetVariablValueSwitch in hooks for ParserGetVariableValueSwitch
Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes typo
name  Wolfgang Fahl
date  2020-02-09 15:49:19 +0100
hash  06e58ba

Authors[edit]

Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  adds author hexmode and links
name  Wolfgang Fahl
date  2020-02-09 16:14:36 +0100
hash  6fbca98

type on file_get_contents and wrong __DIR__[edit]

Commit
host  https://github.com
path  WolfgangFahl
project  S5SlideShow
subject  fixes file_get_contents call - looks good
name  Wolfgang Fahl
date  2020-02-09 17:03:41 +0100
hash  c51ab7e

Code[edit]

Debugging[edit]

PHP Mediawiki Eclipse debugging

extension.json[edit]

{
    "name": "S5SlideShow",
    "namemsg": "s5slide-name",
    "descriptionmsg": "s5slide-desc",
    "version": "0.3",
    "license-name": "GPL-2.0+",
    "type": "parserhook",
    "url": "https://www.mediawiki.org/wiki/Extension:S5SlideShow",
    "requires": {
        "MediaWiki": ">= 1.27.3"
    },
    "author": [
        "Vitaliy Filippov",
        "Wolfgang Fahl"
    ],
    "Actions": {
	"slide": "S5SlideShow\\Action"
    },
    "Hooks": {
  	"ImageBeforeProduceHTML": [
            "S5SlideShow\\S5SlideShowHooks::ImageBeforeProduceHTML"
		],
        "ParserFirstCallInit": [
            "S5SlideShow\\S5SlideShowHooks::ParserFirstCallInit"
        ],
        "ArticleFromTitle": [
            "S5SlideShow\\S5SlideShowHooks::ArticleFromTitle"
        ],
        "AlternateEdit": [
            "S5SlideShow\\S5SlideShowHooks::AlternateEdit"
        ],
        "MagicWordwgVariableIDs": [
            "S5SlideShow\\S5SlideShowHooks::MagicWordwgVariableIDs"
        ],
        "ParserGetVariableValueSwitch": [
            "S5SlideShow\\S5SlideShowHooks::ParserGetVariableValueSwitch"
        ]
    },
    "SpecialPages": {
        "S5SlideShow": "S5SlideShow\\SpecialS5SlideShow"
    },
    "MessagesDirs": {
        "S5SlideShow": [
            "i18n"
        ]
    },
    "ExtensionMessagesFiles": {
        "S5SlideShowI18n": "src/I18n.php"
    },
    "AutoloadClasses": {
        "S5SlideShow\\S5SlideShowHooks": "src/S5SlideShowHooks.php",
        "S5SlideShow\\SpecialS5SlideShow": "src/Special.php",
        "S5SlideShow\\Action": "src/Action.php",
        "S5SlideShow\\Render": "src/Render.php",
        "S5SlideShow\\Skin": "src/Skin.php"
    },
    "config": {
		"_prefix": "egS5",
		"Scaled": false,
		"DefaultStyle": "default",
		"BrowserScaleHack": true,
		"SlideTemplateFile": "extensions/S5SlideShow/slide.htm",
		"SlideCenterMark": "(center)",
		"SlideHeadingMark": false,
		"SlideIncMark": "(step)"
	},
    "manifest_version": 1
}

extension.json[edit]

{
    "name": "S5SlideShow",
    "namemsg": "s5slide-name",
    "descriptionmsg": "s5slide-desc",
    "version": "0.3",
    "license-name": "GPL-2.0+",
    "type": "parserhook",
    "url": "https://www.mediawiki.org/wiki/Extension:S5SlideShow",
    "requires": {
        "MediaWiki": ">= 1.27.3"
    },
    "author": [
        "Vitaliy Filippov",
        "Wolfgang Fahl"
    ],
    "Actions": {
	"slide": "S5SlideShow\\Action"
    },
    "Hooks": {
  	"ImageBeforeProduceHTML": [
            "S5SlideShow\\S5SlideShowHooks::ImageBeforeProduceHTML"
		],
        "ParserFirstCallInit": [
            "S5SlideShow\\S5SlideShowHooks::ParserFirstCallInit"
        ],
        "ArticleFromTitle": [
            "S5SlideShow\\S5SlideShowHooks::ArticleFromTitle"
        ],
        "AlternateEdit": [
            "S5SlideShow\\S5SlideShowHooks::AlternateEdit"
        ],
        "MagicWordwgVariableIDs": [
            "S5SlideShow\\S5SlideShowHooks::MagicWordwgVariableIDs"
        ],
        "ParserGetVariableValueSwitch": [
            "S5SlideShow\\S5SlideShowHooks::ParserGetVariableValueSwitch"
        ]
    },
    "SpecialPages": {
        "S5SlideShow": "S5SlideShow\\SpecialS5SlideShow"
    },
    "MessagesDirs": {
        "S5SlideShow": [
            "i18n"
        ]
    },
    "ExtensionMessagesFiles": {
        "S5SlideShowI18n": "src/I18n.php"
    },
    "AutoloadClasses": {
        "S5SlideShow\\S5SlideShowHooks": "src/S5SlideShowHooks.php",
        "S5SlideShow\\SpecialS5SlideShow": "src/Special.php",
        "S5SlideShow\\Action": "src/Action.php",
        "S5SlideShow\\Render": "src/Render.php",
        "S5SlideShow\\Skin": "src/Skin.php"
    },
    "config": {
		"_prefix": "egS5",
		"Scaled": false,
		"DefaultStyle": "default",
		"BrowserScaleHack": true,
		"SlideTemplateFile": "extensions/S5SlideShow/slide.htm",
		"SlideCenterMark": "(center)",
		"SlideHeadingMark": false,
		"SlideIncMark": "(step)"
	},
    "manifest_version": 1
}
🖨 🚪