<?php
/*********************************************************************************************
This script serves both as an example of the use of PHPHelp and also to display the
PHPHelp class documentation by actually using PHPHelp.
The same documentation (although without live examples) is available as plain text
in helpdocs.txt
Put this script (helpdocs.php), phphelp.class.php, helpdocs.hxt and snippets.txt in an executable
directory on your server. If need be change the "require_once" and or the "$helpfile=" settings
at lines 38 and 84 and then browse to helpdocs.php
If topic links don't work properly you may need to adjust phphelp->linkURI for your server.
See linkURI in phphelp.txt
The complete distribution package for PHPHelp consists of the following files.
phphelp.class.php ... The PHPHelp class itself.
helpdocs.php ........ Example script that displays the documentation.
phphelp.hxt ......... PHPHelp documentation in PHPHelp file form to be viewed using helpdocs.php
snippets.txt ........ Example "snippets" file also used by helpdocs.php
All of the above are Copyright Mark Cole, 2014 and are released under the same GNU licence as
phphelp.class.php and should be included in any modified package that you distribute.
Also in the complete package is LICENCE.TXT, the GNU General Public Licence and this too must be
included in any modified distribution.
Note: PHPHelp and its examples and documentation were written on a Windows XP box (developed with
php 5.4.15/Apache 2.4.4) I apologise for any file encoding problems that may occur for users of other
OS's. PHPHelp has been tested with linux (PHP 5.3.28/Apache 2.2.24).
**********************************************************************************************/
require_once('phphelp.class.php');
echo
'<!DOCTYPE HTML><html><head><style>
h1 { text-align:center} h2 { text-align: center;}
html {height: 100%; overflow:hidden; }
body {position:relative; width:100%; height:97%;background: lightgray;}
div.code { position: relative; width: 90%; margin: auto; padding: 1em;background: white;font: 10pt Monospace;text-align:left;}
div.codei { position: relative; width: 70%; margin: auto; padding: 1em;background: white;font: 10pt Monospace;text-align:left;}
div.help { position: relative; height: 75%; overflow: auto; width: 90%;margin:auto; ;padding: 1em;background: beige; font: 10pt Verdana,Arial,Helvetica; text-align: justify;}
p.cent { position: relative; text-align: center;}
p.indent { position: relative; margin-left:5%; margin-right:5%;}
ul { width: 20%; margin: auto; list-style:none; line-height: 2em;}
b { font-style: italic; font-weight: bold;}
</style></head><body>
';
// This is an example of a callback macro - it is used by the phphelp.hxt file
// to show next topic and index links on each page.
function indexlink($s)
{
if ($s) return '<hr><div style="float:right">@{phphelp:Back to Index}</div><div>Next Topic: '.$s.'</div>';
else return '<p style="text-align: right;">@{phphelp:Back to Index}</p><hr>';
}
// Example to show the use of the phphelp->topics() method
function allTopics()
{
global $help;
$topics=$help->topics();
echo "<h1>PHPHelp Documentation</h1>";
echo "<div class=\"help\"><p style=\"text-align: center\"><h2>Available Topics</h2></p>";
echo '<p class="cent">(an example of the phphelp->topics() method)</p>';
echo "<div style=\"position: relative; width:30%;margin: auto; padding: 16px; border: 2px solid; text-align: left;\">";
foreach ($topics as $topic)
{
echo $topic['link']."<br>";
}
echo "</div></div>";
}
// Main code. Display help topics from the phphelp.hxt file
//=========================================================
// Path to help files. Change if need be.
$helpfile="phphelp.hxt";
// Instantiate a new phphelp object
$help=new phphelp($helpfile);
// Register the indexlink callback macro which is used in the PHPHelp help file (phphelp.hxt).
$help->registerCallbackMacro('indexlink');
// Example (used in the help file) of registering a PHP function as a callback macro
$help->registerCallbackMacro('substr');
// Variable Substitution example (used in the help file).
$example = "This is an example variable substitution.";
$help->registerVar('example',$example);
// Set ignoreErrors TRUE for production sites, false while debugging a
// help file. Default is FALSE
//$help->ignoreErrors=true;
// Expect a topic in the query string. If not go to the introduction page.
if (isset($_GET['topic'])) $topic=$_GET['topic']; else $topic="phphelp";
// If the topic is "topiclist" call allTopics to display a topic list.
if ($topic == "topiclist")
allTopics();
else
{
if ($topic=$help->help($topic))
{
echo "<h1>PHPHelp Documentation</h1><p class=\"cent\"><a href=\"".(isset($_SERVER['SCRIPT_URL']) ? $_SERVER['SCRIPT_URL'] : parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH))."?topic=topiclist\">List all Topics</a></p>";
echo "<div class=\"help\"><p class=\"cent\"><h2>$topic[0]</h2></p>";
echo "$topic[1]</div>";
}
else
{
echo "Help topic not found<br>";
if ($help->error) echo "Error=".$help->errorInfo;
}
}
echo '</body></html>';
?>
|