Embedding a Viewer in Your Own Page

The simplest way to incorporate a MapGuide Viewer into your own site is to create a frame set that contains a frame for your own page layout and a frame for the Viewer. The Developer’s Guide samples use this technique. The main page for the samples, main.php, creates a frame set where the top frame in the set contains a site-specific page header, and the bottom frame in the set contains the embedded Viewer. The following code contains the important parts of main.php.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

    "http://www.w3.org/TR/html4/frameset.dtd">

    <?php

    require_once('common/common.php');

    try

    {

      // Initialize the web extensions,

      MgInitializeWebTier ($webconfigFilePath);

      // Connect to the site server and create a session

      $userInfo = new MgUserInformation("Author", "author");

      $site = new MgSite();

      $site->Open($userInfo);

    }

    catch (MgException $e)

    {

      echo "Could not connect to the MapGuide site server.";

        die();

    }

    try

    {

      $sessionId = $site->CreateSession();

      // Define some constants

      $webLayout = "Library://Samples/Layouts/SamplesPHP.WebLayout";

      $title = "Samples";

    }

    catch (MgException $e)

    {

      echo "ERROR: " . $e->GetMessage("eng") . "\n";

      echo $e->GetStackTrace("eng") . "\n";

    }

    ?>

    <html>

      <head>

        <title><?= $title ?></title>

      </head>

      <frameset rows="110,*">

        <frame src="common/Title.php?TitleText=<?= $title ?>"

          name="TitleFrame" scrolling="NO" noresize />

        <frame

        src="/mapguide/mapviewerajax/?

        SESSION=<?= $sessionId ?>&

        WEBLAYOUT=<?= $webLayout ?>" name="ViewerFrame" />

      </frameset>

    </html>