<?php if (!defined('PmWiki')) exit (); /* This module enables inclusion of Google Waves in wiki pages. (Inspired by IncludeUrl recipe: http://www.pmwiki.org/wiki/Cookbook/IncludeUrl ) Width, height and some wave options can be set with parameters inside the markup. Syntax: (:gwave googlewave.com!w+xa11AaaAA [width=...] [height=...] [header=true/false] [toolbar=true/false] [footer=true/false]:) Released to public domain. */ # Version date $RecipeInfo['GoogleWave']['Version'] = '2010-08-02'; Markup('', 'directives', '/\\(:gwave\\s*(.*?)\\s*:\\)/ei', "gWave(PSS('$1'))"); function gWave($opt) { global $gWaveDefaults; SDVA($gWaveDefaults, array( 'width' => '100%', 'height' => '400px', 'header' => 'true', 'toolbar' => 'true', 'footer' => 'true', )); $opt = ParseArgs($opt); if($opt[''][0]) $tgt = $opt[''][0]; else foreach($opt as $k => $v) if(! array_key_exists($k, $gWaveDefaults) && ! in_array($k, array('', '#', '+', '-'))) { $tgt = "$k:$v"; break; } $opt = array_merge($gWaveDefaults, $opt); $out = array(); $out = "<div id=\"waveframe\" style=\"width: {$opt['width']}; height: {$opt['height']}\"></div><script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script><script type=\"text/javascript\">google.load(\"wave\", \"1\"); google.setOnLoadCallback(initialize); function initialize() { var waveframe = document.getElementById(\"waveframe\"); var embedOptions = { target: waveframe, header: {$opt['header']}, toolbar: {$opt['toolbar']}, footer: {$opt['footer']} }; var wavePanel = new google.wave.WavePanel(embedOptions); wavePanel.loadWave(\"{$tgt}\"); }</script>"; return Keep($out); }