ThinkFree

Installation

Follow these steps to install this script on your wiki.

  1. Go to System Settings inside the Control Panel.
  2. Under Extensions, click Add Script.
  3. Enter a descriptive name for the extension
  4. Under Configuration add the following to the Manifest field: http://scripts.mindtouch.com/thinkfree.xml
  5. Add extra configuration values as listed below under Configuration (If Configuration is not listed below, ignore this step.)
  6. Click on add script.

Related Links: DekiScript service, Extension Overview, DekiScript Overview, Extension Demos.


Overview

This extension contains functions for displaying Microsoft Office documents. This script requires MindTouch Deki 8.05.1 or later.

Functions:

  1. thinkfree.viewer

thinkfree.viewer(document, width, height, type) : xml

View a document.

Parameters:

NameTypeDescription
documenturiDocument uri.
widthnum(optional) Width of viewer. (default: 90%)
heightnum(optional) Height of viewer. (default: 425)
typestr(optional) Document type (either \"write\", \"calc\", or \"show\"; default: detect automatically)


Source Code

<extension>
  <title>ThinkFree Extension</title>
  <label>ThinkFree</label>
  <copyright>Copyright (c) 2007, 2008 MindTouch, Inc.</copyright>
  <description>This extension contains functions for displaying Microsoft Office documents.</description>
  <uri.help>http://wiki.developer.mindtouch.com/MindTouch_Deki/Extensions/ThinkFree</uri.help>
  <uri.logo>http://scripts.mindtouch.com/logos/thinkfree-logo.png</uri.logo>
  <namespace>thinkfree</namespace>

  <requires host="MindTouch Deki 8.05.1" />

  <function>
    <name>viewer</name>
    <description>View a document.</description>
    <param name="document" type="uri">Document uri.</param>
    <param name="width" type="num" optional="true">Width of viewer. (default: 90%)</param>
    <param name="height" type="num" optional="true">Height of viewer. (default: 425)</param>
    <param name="type" type="str" optional="true">Document type (either \"write\", \"calc\", or \"show\"; default: detect automatically)</param>
    <return>
      <html xmlns:eval="http://mindtouch.com/2007/dekiscript">
        <body>
          <eval:if test="$type == 'write'"><eval:expr value="iframe($document, $width, $height, 'WRITE_VIEWER')" /></eval:if>
          <eval:elseif test="$type == 'calc'"><eval:expr value="iframe($document, $width, $height, 'CALC_VIEWER')" /></eval:elseif>
          <eval:elseif test="$type == 'show'"><eval:expr value="iframe($document, $width, $height, 'SHOW_VIEWER')" /></eval:elseif>
          <eval:else>
            <eval:block value="var parts = uri.parse($document); var last = parts.path[#parts.path-1]; var index = string.lastindexof(last, '.'); var ext = (index >= 0) ? string.substr(last, index + 1) : ''">
              <eval:if test="list.contains(['doc', 'rtf', 'txt'], ext)"><eval:expr value="iframe($document, $width, $height, 'WRITE_VIEWER')" /></eval:if>
              <eval:elseif test="list.contains(['xls', 'csv'], ext)"><eval:expr value="iframe($document, $width, $height, 'CALC_VIEWER')" /></eval:elseif>
              <eval:elseif test="list.contains(['ppt', 'pps'], ext)"><eval:expr value="iframe($document, $width, $height, 'SHOW_VIEWER')" /></eval:elseif>
              <eval:else>ERROR: unable to determine document type, use 'type' argument to specify type</eval:else>
            </eval:block>
          </eval:else>
        </body>
      </html>
    </return>
  </function>

  <function>
    <access>private</access>
    <name>iframe</name>
    <param name="document" type="uri" />
    <param name="width" type="num" optional="true" />
    <param name="height" type="num" optional="true" />
    <param name="type" type="str" />
    <return>
      <html xmlns:eval="http://mindtouch.com/2007/dekiscript">
        <body>
          <iframe eval:src="'http://viewer.thinkfree.com/view.jsp?app=' .. $type .. '&amp;open=' .. uri.encode($document)" eval:width="web.size($width ?? 0.9)" eval:height="web.size($height ?? 425)" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" />
        </body>
      </html>
    </return>
  </function>
</extension>


Samples

   Output

To embed a 600 by 400 ThinkFree viewer for a word processing document:

{{ thinkfree.viewer("http://wiki.opengarden.org/@api/deki/files/1217", 600, 400, "write") }}
./ThinkFree1.JPG

To embed a 600 by 400 ThinkFree viewer for a spreadsheet:

{{ thinkfree.viewer("http://wiki.opengarden.org/@api/deki/files/1218", 600, 400, "calc") }}
./ThinkFree2.JPG

To embed a 600 by 400 ThinkFree viewer for a presentation:

{{ thinkfree.viewer("http://wiki.opengarden.org/@api/deki/files/1219", 600, 400, "show") }} 
./ThinkFree3.JPG

  

Tag page

Files 3

FileSizeDateAttached by 
 SampleDoc.doc Preview
No description
23.5 kB23:47, 19 Oct 2007BrigetteKActions
 SamplePowerpoint.ppt Preview
No description
8.5 kB00:06, 20 Oct 2007BrigetteKActions
 SampleSpreadsheet.xls Preview
No description
13.5 kB00:03, 20 Oct 2007BrigetteKActions
Viewing 1 of 1 comments: view all
Will this api also work with files on a local share? I have tried but it did not work.
Posted 20:06, 3 Dec 2007
Viewing 1 of 1 comments: view all
You must login to post a comment.
Powered by MindTouch Deki v.8.08.2