<?PHP
 
include '../ezhtml/class_html.php';
 
include 'class_infobox.php';
 
 
$html= new html('Infobox Demo', '../ezhtml/');
 
$html->doctype_strict = true;
 
 
if( !isset( $lastname ) ) $lastname = '';
 
if( !isset( $firstname ) ) $firstname = '';
 
 
$html->head();
 
 
$html->registerserver();
 
 
$html->metaname( 'keywords', 'PHP class javascript div floating layer infobox demo');
 
$html->metaname( 'description', "A demonstration of how to generate DHTML floating div layers with the PHP class 'infobox' by using PHP and javascript.");
 
 
?>
 
 
<style type="text/css">
 
<!--
 
a img{ border:none; }
 
a { color: #ff0000; }
 
a:hover{ background-color: #ffe0e0; color: #800000; }
 
label{ float:left;width:100px;text-align:right;padding: 0 1em 0 0 }
 
-->
 
</style>
 
 
<?PHP
 
 
 
$box = new infobox();
 
 
$box->width=200;
 
$box->head();
 
 
$html->body();
 
 
#
 
# the first call to newtip() generates a hidden screenreader link to make it
 
# possible to switch the infobox into titles at the very beginning of the document.
 
# This hidden link is located on a div positioned "absolute" out of the way.
 
# Some browsers make the text flow "break" when such a div is put into the middle
 
# of text. It is recommended to call newtip() once at the very beginning of the body.
 
#
 
$box->newtip('',''); // generate screenreader-tip
 
 
$html->div('container');
 
$html->h(1, $html->title );
 
$html->h(2, 'Infoboxes for links using $box->link(...)');
 
 
echo '<pre>'.$_SERVER['HTTP_USER_AGENT'].'</pre>';
 
?>
 
 
<p>Using infobox one can have floating mousetips for 
 
nearly every situation one could think of.
 
<br>Normally, they are used for links: 
 
 
<?PHP
 
 
$box->link( 'http://www.knopper.net/knoppix/', 
 
  'Knopper Net', 
 
  'Home of the Knoppix Linux', 
 
  'That is where I saw the infoboxes the first time. '.
 
  'Klaus Knopper distributes the code infobox.js under the GPL. '.
 
  'Knoppix is a Linux distribution that boots directly from cd - '.
 
  'it does not need a installation procedure.<br>'.
 
  '<img src="http://www.knopper.net/pics/knoppernet-logo.gif" alt="Knopper Net">');
 
  
 
$box->link( 'http://www.phpclasses.org/browse/author/21464.html', 
 
  'My Classes', 
 
  'Classes of Peter Klauer', 
 
  'The classes page of Peter Klauer at phpclasses.org. '.
 
  'Maybe there is something interesting for you.<br>'.
 
  '<img src="http://files.phpclasses.org/graphics/elephpant_logo.gif" '.
 
  'alt="PHP Classes Elephant">');
 
  
 
$box->link( 'http://www.phpclasses.org/browse/package/1255.html', 
 
  'ezhtml', 
 
  'Easy HTML',
 
  'This class simplyfies a PHP programmers life. '.
 
  'I used it for this demo. '.
 
  'The class ezhmtl is NOT required to make infobox work. '.
 
  'It just makes things easier.');
 
  
 
$box->link( 'http://www.php.net', 
 
  'PHP.net', 
 
  'Home of PHP', 
 
  'This site is a very important site where new versions of PHP '.
 
  'and manuals can be downloaded.<br>'.
 
  '<img src="http://static.php.net/www.php.net/images/php.gif" alt="PHP Logo">');
 
 
 
if( $box->showinfobox )
 
{
 
  echo "<BR>The images in the boxes are only available via an open internet connection.\n".
 
  "They are used to demonstrate that <b>any</b> HTML can be used on them.\n";
 
}
 
else
 
{
 
  echo "<br>Now all the infoboxes have become title attributes which can be read from screenreaders.\n";
 
}
 
 
echo $html->h(2,'Infoboxes for other elements using $box->newtip(...)');
 
 
echo "<p>Maybe you want to highlight some extra piece of text, a input box ".
 
"or an image. This can easily be done.<BR>";
 
 
$mouse = $box->newtip( 'Rectangular Area', 'This area should look like a square of 150x150 Pixels.');
 
 
echo "<div$mouse style='background-color:#ffdfdf;border:solid red 1px;width:150px;height:150px;float:left;margin:0 8px 0 0;text-align:center;overflow:scroll'><br>$firstname<br>$lastname</div>";
 
 
echo "<div style='background-color:#dfffdf;border:solid 1px green;float:left;padding:12pt;margin:0 8px 0 0'>";
 
 
echo "<form name='Test' action='$PHP_SELF' method='POST'><div>";
 
 
$texttip = $box->newtip( 'Textbox', 'Here you may enter a text value' );
 
$labeltip = $box->newtip( 'Label', 'This is a descriptive field for an input box.');
 
 
$selboxtip= $box->newtip( 'Selectbox', 'In earlier times, there was a problem with selectboxes. Infoboxes did not float above selectboxes, but floated <b>under</b> them. This is now fixed with the iframe-hack for IE.' );
 
 
echo '<b>Simple test form</b><br>
 
<label'.$labeltip.' for="vorname">First Name: </label>
 
<input'.$texttip.' type=text name="firstname" value="'.$firstname.'" id="vorname"><br>
 
<label'.$labeltip.' for="nachname">Last Name: </label>
 
<input'.$texttip.' type=text name="lastname" value="'.$lastname.'" id="nachname"><br>
 
<label'.$selboxtip.' for="options">Options: </label>
 
<select'.$selboxtip.' id="options" name="options"><option>Pure</option><option>Sugar</option><option>Milk</option></select>';
 
 
 
 
$mouse = $box->newtip('Submit button', 'Click on this button to make the form work.');
 
 
echo "<input$mouse onClick='untip()' type=submit value=' OK '></div></form></div>";
 
 
echo '<div style="float:left;background-color:#ffffe0;border:solid 1px #ffc000;padding:12pt;margin:0 8px 0 0">'.
 
'Please, try this link: ';
 
 
$box->onoff(); // User may switch boxes on or off
 
 
$img_valid_html = '<img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88">';
 
 
$mouse = $box->newtip(
 
'Valid HTML 4.01 STRICT',
 
'Infobox does not disturb the validation of your page against the W3C validator.<br>'.
 
$img_valid_html );
 
 
echo "<br><br><a$mouse href='http://validator.w3.org/check?uri=referer'>".
 
$img_valid_html."</a></div>";
 
 
 
 $html->undiv();
 
 
$box->generate();
 
 
$html->foot();
 
 
?>
 
 |