Extension:Iframe

From MediaWiki.org
Jump to navigation Jump to search
MediaWiki extensions manual
OOjs UI icon advanced.svg
Iframe
Release status: beta
Implementation Tag, Special page
Description Allows to integrate external web pages into a page
Author(s) Sigbert Klinke (Sigberttalk)
Latest version 0.07 (2018-08-06)
MediaWiki 1.25+
Database changes No
License GNU General Public License 3.0
Download
Tags

  • <iframe>
Hooks used
ParserFirstCallInit
Translate the Iframe extension if it is available at translatewiki.net
Check usage and version matrix.

Copyright & security issues[edit]

Embedding external webpage into MediaWiki has two issues:

  • Copyright violation: Embedding an external web page may violate copyrights. So, make sure that the domains that can be used in the extension are trusted!
  • Security issue: External web pages may contain malicious code. Again make sure that the domains that can be used in the extension are trusted!

The extension uses keys to select web servers which are given by the wiki adminstrator during installation. Therefore, behind the key should only be trusted domains.

Known problems[edit]

Download[edit]

You can obtain the extension from Github.

Installation[edit]

  1. Go to the extensions directory and
  2. clone it from GitHub
    git clone https://github.com/sigbertklinke/Iframe
    
  3. Add to the bottom of LocalSettings.php
     wfLoadExtension( 'Iframe' );
    

The global variable $wgIframe controls various aspects of the extensions, e.g. additional web adresses, delay of iframe loadings etc.

Adding other web addresses[edit]

If want to add own keys/servers then add in LocalSettings.php after loading the extension

 $wgIframe['server']['mykey'] = [ 'scheme' => 'https', 'domain' => 'mydomain' ];

This will allow you to use in wiki pages:

<iframe key="mykey" path="" />

Category[edit]

For easy finding of all wiki pages which have a

<iframe ... />

inside a category is added by

[[Category:Iframe]]

the name of the category can be controlled in LocalSettings.php by setting

 $wgIframe['category'] = 'Iframe';

Notes:

  • The extension does NOT create the page Category:Iframe, that is left to the wiki administrator or user.
  • If you create the page Category:Iframe then it might be useful to use hidden categories.

Width and height of an iframe[edit]

The default width and height of an iframe is 800x600 pixel. This can be set in LocalSettings.php via

$wgIframe['width'] = 640;
$wgIframe['height'] = 400;

If no width and height is given than these defaults are used.

Delay of iframe loading[edit]

Usually a HTML document is shown if all parts of a document are loaded. If a iframe on a server, e.g. a Shiny server, triggers a lengthy computation then the document will appear only after all iframe(s) are loaded. Therefore a delay mechanism with JavaScript is included which starts the loading of the iframe(s) only after the document is ready. By $wgIframe['delay'] the delay is controlled:

  1. If in LocalSettings.php
      $wgIframe['delay'] = -1;
    
    (or any negative value) is set then the iframe(s) will be loaded immediately, no delay will take place.
  2. If in LocalSettings.php
      $wgIframe['delay'] = 100;
    
    (the default) is set then the first iframe will be loaded 100 ms after the document is loaded, the second 200 ms, and so on.

Examples[edit]

1. Shows the test page of my shiny server

<iframe key="wiwi" path="" />

2. Shows the example app for R codes which I use (to load an file click on MMStatExampleButton.png, select File select and choose an example file).

<iframe key="wiwi" path="examples" />

3. As 2., but the iframe window has only VGA size (640x480).

<iframe key="wiwi" path="examples" size="vga" />

Usage[edit]

The tag iframe has the following attributes

Attribute Usage Remark
size Size of an iframe window Optional, for an overview see iframe.ods. Setting height and/or width overwrites this setting.
height Height of an iframe window Optional. Default: 600
width Width of an iframe window Optional. Default: 800
key Select a specific domain Required. Default: local
level Domain prefix Optional. Default: empty
path Path in domain Required. Default: empty
allowfullscreen Frame is allowed to be placed into full screen mode Optional.

The final URL is build by scheme://level.domain/path where scheme and domain are given by the key, e.g. the examples above will generate the URLs

Note: you can abbreviate the keys, e.g. for the examples above could be used

<iframe k="wiwi" p="" />
<iframe k="wiwi" p="examples" />
<iframe k="wiwi" p="examples" s="vga" />


Usage in templates[edit]

If you want to use the iframe tag in templates then use in the template:

{{#tag:iframe|key="wiwi"|path="examples"}}

This will also allow to embed parameters, e.g.

{{#tag:iframe|key="wiwi"|path="examples/{{{1}}}"}}

Wikis[edit]

Mailing list[edit]

There is a mailing list available: iframe.mediawiki@lists.hu-berlin.de. Note: as author of the extension I rarely read the discusson page but I read my e-mail every day ;)

See also[edit]