INTRODUCTION

The BMLT has two main components: The root server, which is implemented by the main_server directory, and the satellite server, which is a relatively small piece of code that connects to the root server, and is implemented by the satellite_server directory.

License:
This code is completely open and free. You may access it by visiting the BMLT Project Site. No one is allowed to resell this code. It should never be sold.
Version:
1.5.2

This is the standalone and PDF generator "satellite server." There are also plugins for Joomla!, Drupal and WordPress, but they are each separate projects.

HOW TO USE THE SATELLITE SERVER

This is the "embedable" version of the satellite. That means that it is some PHP code that you can insert into your own PHP site, and it will implement a BMLT satellite. It is not a "plug and play" plugin or component, like the WordPress, Drupal or Joomla! plugins. It needs you to do a bit of work. However, it isn't much work at all.

The Structure of the Code

The standalone satellite server consists of one PHP class: BMLT_Satellite. This is instantiated by your code, and you simply make a couple of calls to it in order to generate the BMLT code you need for your site.

For an example of this file, look at the standalone/index.php file. It will show exactly how you implement this code.

Before you start, download the source code for the standalone satellite.

The next thing to do is to set up your parameters in the standalone/config.inc file. You'll need to get a Google Maps API Key for your domain, and replace the default one with that.

You will also need to point to whatever root server is being used. You get this URL from the root server administrator.

There's a couple of other parameters in there that are pretty self-explanatory.

In order to start, you should do an include() or require() of the BMLT_Satellite.class.php file at the beginning of your file (before any HTML), like so:

        <?php
            include ( dirname ( __FILE__ ).'/standalone/BMLT_Satellite.class.php' );
            
            if ( !(($bmlt_instance = BMLT_Satellite::MakeBMLT()) instanceof BMLT_Satellite) )
                {
                die ( 'The BMLT object could not be created' );
                }
        ?>

The "dirname ( __FILE__ )" simply tells PHP to start off where the file is, and that the path should be relative from there. It is sort of optional, but it's usually a good idea to do that. It will allow the file to be included into other files.

The BMLT_Satellite::MakeBMLT() function is a "factory" function. It ensures that there is only ever one instance of the class, which is important.

The $bmlt_instance variable will now contain your connection to the BMLT root server.

After that, start building the Web page. Put the standard DOCTYPE stuff in there, and start the <head> section.

Now, the BMLT will need to put some stuff in the <head> section of the page, so we run a quick BMLT_Satellite::Execute('head') call inside the head, like so:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
        <title>Demo of the BMLT</title>
        <?php echo ( $bmlt_instance->Execute ( 'head' ) ); ?>
    </head>

An important note is that "<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />". This meta element is necessary, because the new Microsoft Internet Explorer 8 browser doesn't behave particularly well, unless it is sternly spoken to by that meta tag. Just take our word for it. Failing that, why don't you take Microsoft's word for it?

After that, you'll need to insert one more BMLT_Satellite::Execute() call in the <body>, and that's it!

In this call to BMLT_Satellite::Execute(), you don't specify any parameters. The class knows what to do.

    <body>
        <?php echo ( $bmlt_instance->Execute ( ) ); ?>
    </body>
</html>

Here is a complete, minimalist implementation of the BMLT:

<?php
    include ( dirname ( __FILE__ ).'/standalone/BMLT_Satellite.class.php' );
    
    if ( !(($bmlt_instance = BMLT_Satellite::MakeBMLT()) instanceof BMLT_Satellite) )
        {
        die ( 'The BMLT object could not be created' );
        }
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
        <title>Demo of the BMLT</title>
        <?php echo ( $bmlt_instance->Execute ( 'head' ) ); ?>
    </head>
    <body>
        <?php echo ( $bmlt_instance->Execute ( ) ); ?>
    </body>
</html>

What could be simpler?

In the example file, you will see the following CSS in the <head> section:

        <style type="text/css">
            *{ margin: 0; padding: 0 }
            body, html{ width:100%; height:100% }
        </style>

This is there to ensure that the map fills the entire screen in all browsers. It's required for Internet Explorer 6.

So, let's add that to our minimalist file:

<?php
    include ( dirname ( __FILE__ ).'/standalone/BMLT_Satellite.class.php' );
    
    if ( !(($bmlt_instance = BMLT_Satellite::MakeBMLT()) instanceof BMLT_Satellite) )
        {
        die ( 'The BMLT object could not be created' );
        }
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
        <title>Demo of the BMLT</title>
        <?php echo ( $bmlt_instance->Execute ( 'head' ) ); ?>
        <style type="text/css">
            *{ margin: 0; padding: 0 }
            body, html{ width:100%; height:100% }
        </style>
    </head>
    <body>
        <?php echo ( $bmlt_instance->Execute ( ) ); ?>
    </body>
</html>

That's all you need to do to give your Groups the best meeting list possible!

IMPORTANT CAVEAT!

If you wish to use the local PDF generator (set $use_local_pdf_generator to true), then you need to keep the standalone and pdf_generator directories on the same level as the main file that you use as your satellite file. It is possible to move them around, but that requires monkeying with the code, and you probably want to avoid that. Just plonk the two directories on the same level as your main file, and it should be OK.

RELEASE NOTES:

 All Data Structures Files Functions Variables Enumerations