r14 - 13 Oct 2006 - 11:39:45 - TWikiGuestYou are here: TWiki >  TWiki Web > TWikiPlugins > ObjectPlugin

The Object Plugin

wip This plugin is in beta!

placeholder doco for Object Plugin ...

Uses the OBJECT html tag to embed arbitrary content into a wiki page, with a particular bent towards media: common media formats are detected and some "agnostic best-guess" html is used (derived from that recommended by the plugin providers). However, any content at all can be embedded using the object tag: java, pdf, other html, svg, even images (although there is of course no reason to do so). The plugin uses generic syntax when it cannot detect the type of file being embedded.

The plugin stores a range of default values (defined here on this page) which allow you to specify a bare minimum of info in your markup and still get acceptable results (see Basic Usage below). These defaults can of course be overridden on a use-by-use basis.

A USEEMBED flag should be left to "true" - I thought I could be clever before I fully understood the minefield that is browser plugin syntax.

Basic Usage

You could call the plugin as simply as:

%OBJECT{"SomeMovie.mov"}%

This will detect that the embedded file is a QuickTime and use "media-like" syntax (and pass the correct CLASSID to IE - why it can't work out which plugin to use is a little beyond me). However, unlike an IMG tag, plugins do not autosize to their content, and the movie would display at the default size. You could use media of only one size site-wide and specify the dimensions as defaults, but realistically the minimum markup you need to embed things into your wiki pages is:

%OBJECT{"SomeMovie.swf" width="320" height="180"}%

Advanced Usage

A call to the ObjectPlugin could get as complicated as:

%OBJECT{src="SomeMovie.wmv" width="320" height="180" controller="FALSE" play="TRUE" useembed="TRUE" myparam1="3.1419" myparam2="edinburgh"}%

Once you start passing a ton of parameters, you aren't gaining much by using the plugin, and you may actually be reducing the portability of your code, so it may be best to do your own HTML.

HELP Including a "mime-type" parameter may help your browser choose which browser plugin to use more efficiently

Paramters

ObjectPlugin supports arbitrary parameters. If you pass it cowtype="Jersey", that is passed on to the browser, both as a <PARAM> tag and inside the optional <EMBED> tag.

A few parameters are defined and get handled a little differently (they may be "translated" to a particular browser plugins syntax)

Parameter Value Description Notes*
src URI the content to embed ("src=" is optional)
width std web measure (px, %, em) with of box holding content
height std web measure (px, %, em) height of box holding content
controller text boolean ("TRUE" or "FALSE") whether to display controls automatically added for QT
play text boolean whether to auto-play the content automatically added for QT and Flash
useembed text boolean whether to include a non-standard (but widely recommended) EMBED tag

Detection of media type/Recommended plugin syntax

The plugin detects most media types and uses a hybrid of the html markup recommended by the browser plugin makers - in the hope of providing maximum compatibility. This is done simply by checking the extension of the filename.

Originally, the plugin used (almost) the exact recommended HTML on a type-by-type basis, but I've abandoned this in favour of "one markup fits all" because you don't know which plugin will be handling what - the various ISO formats (MPEG1,2,4, MP3) will be taken by whatever plugin was installed last, and QuickTime now handles Windows Media on Macintosh systems (at Microsoft's recommendation!).

While most of the HTML is as generic as possible, the CLASSID value and some other mime-type information is unique to a particular file-type, and for Flash, QuickTime and Windows Media the Microsoft-sanctioned values are sent. I understand MSIE has to have this info or it totally burns ...

I haven't bothered with Real. If there's huge demand, it wouldn't be hard to add - but it may also be handled quite well by the generic media syntax already.

The sytax recommendations are found:

From those startpoints, basically everything gets merged: all synonymous parameters get sent (e.g. QT's "AutoPlay", Flash's "Play" and WMV's "AutoStart") together, set to the same value.

Then everything is smoodged onto one line, TWiki doesn't like tags over line breaks, but I also noticed tables and Lists getting broken from line breaks added by the plugin, so one line for everything.

And (to keep the plugin reasonably simple) all information passed inside PARAM tags is also put in the EMBED tag (and any special EMBED only parameters go first).

In other words, all parameters recommended by the plugin maker are sent, plus more, and in any old order.

This is an interesting article on getting "pure" OBJECT tags to both a) validate and b) work with browsers:

http://alistapart.com/articles/byebyeembed

This is sort-of what I was aiming for with USEEMBED. I assumed that you could just leave EMBED out, but that will break on everything but IE, as the other browsers (a little churlishly) ingore the entire tag if it has MS's custom params in it.

ObjectPlugin Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %INTERWIKIPLUGIN_SHORTDESCRIPTION%

  • One line description, shown in the TWiki.TextFormattingRules topic:
  • Set SHORTDESCRIPTION = Embed arbitrary content into twiki pages with not much work ...

  • Default parameters for plugin. These must be defined. (For booleans use "TRUE" for true, anything else for false)
  • Set WIDTH = 320
  • Set HEIGHT = 180
  • Set CONTROLLER = TRUE
  • Set PLAY = TRUE
  • Set USEEMBED = TRUE

Plugin Installation Instructions

  • Download the ZIP file from the Plugin web (see below)
  • Unzip ObjectPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/ObjectPlugin.txt Plugin topic
    data/TWiki/ObjectPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/ObjectPlugin.pm Plugin Perl module
  • (Dakar) Visit configure in your TWiki installation, and enable the plugin in the {Plugins} section.
  • Test if the plugin is correctly installed:
  • You should see something below:
    %OBJECT{"http://support.microsoft.com/support/mediaplayer/wmptest/samples/new/mediaexample.wmv" height="240" width="320"}% %OBJECT{"http://kabru.eecs.umich.edu/pub/TWiki/ObjectPlugin/sample.mov" height="180" width="320"}%
    %OBJECT{"http://kabru.eecs.umich.edu/pub/TWiki/ObjectPlugin/Sample.swf" height="180" width="320"}% %OBJECT{"http://kabru.eecs.umich.edu/pub/TWiki/ObjectPlugin/sample.html" arbitrary="plplpl"}%

Plugin Info

Plugin Author: TWiki:Main.PiersGoodhew
Plugin Version: 0.001
Change History:  

Related Topics: TWikiPreferences, TWikiPlugins

-- TWikiGuest - 29 Sep 2006

Show attachmentsHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
elseswf Sample.swf manage 1.8 K 13 Oct 2006 - 02:52 TWikiGuest  
htmlhtml sample.html manage 0.1 K 13 Oct 2006 - 02:45 TWikiGuest sample html file
movmov sample.mov manage 21.2 K 13 Oct 2006 - 11:38 TWikiGuest sample QT movie
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r14 < r13 < r12 < r11 < r10 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.ObjectPlugin