246 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
 | 
						|
Copyright 2018 Murray Hayes
 | 
						|
 | 
						|
Redistribution and use in source and binary forms, with or without
 | 
						|
modification, are permitted provided that the following conditions
 | 
						|
are met:
 | 
						|
 | 
						|
1. Redistributions of source code must retain the above copyright
 | 
						|
notice, this list of conditions and the following disclaimer.
 | 
						|
 | 
						|
2. Redistributions in binary form must reproduce the above copyright
 | 
						|
notice, this list of conditions and the following disclaimer in the
 | 
						|
documentation and/or other materials provided with the distribution.
 | 
						|
 | 
						|
3. Neither the name of the copyright holder nor the names of its
 | 
						|
contributors may be used to endorse or promote products derived from
 | 
						|
this software without specific prior written permission.
 | 
						|
 | 
						|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
						|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
						|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 | 
						|
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 | 
						|
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
						|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 | 
						|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
						|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
						|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 | 
						|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
						|
POSSIBILITY OF SUCH DAMAGE.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
 | 
						|
include_once 'DOMUtils.php';
 | 
						|
include_once 'utils.php';
 | 
						|
 | 
						|
$doc = returnDoc();
 | 
						|
$root = returnRoot($doc);
 | 
						|
$root = $doc->appendChild($root);
 | 
						|
 | 
						|
$root->appendChild(generateHead($doc));
 | 
						|
 | 
						|
$body = $doc->createElement('body');
 | 
						|
$root->appendChild($body);
 | 
						|
 | 
						|
$mastHead = $doc->createElement('h1');
 | 
						|
$mastHead->appendChild($doc->createTextNode("Read Me"));
 | 
						|
$mastHead->setAttribute('class', 'mastHead');
 | 
						|
$body->appendChild($mastHead);
 | 
						|
 | 
						|
$div = $doc->createElement('div');
 | 
						|
$div->setAttribute('class', 'readMe');
 | 
						|
$body->appendChild($div);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
This is the read me file for the member portal.  It details some of
 | 
						|
the critical files an administrator needs to know about during setup
 | 
						|
and maintanance in no particular order.
 | 
						|
EOD;
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The consts.php file contains all the constants used throughout the
 | 
						|
system including the password for the database.  It should be moved
 | 
						|
out of the document root (automagically by setup) in to an include
 | 
						|
directory.  Every admin should check that these constants are correct
 | 
						|
for their site.  Just about every file has an include_once for this
 | 
						|
file.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('consts.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The sql.php file contains all the SQL statements.  Alternate statments
 | 
						|
for database engines other than MySQL should go in the appropirate
 | 
						|
place reserved for them in the switch statement at the bottom.  The
 | 
						|
default statements are for MySQL but all the engines supported by the
 | 
						|
PDO driver should have a spot reserved for them.  This file should be
 | 
						|
moved out of the document root in to an include directory.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('sql.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The database.php file contains all the database access functions.  These
 | 
						|
typically have names like populateThisTable or generateThatForm.  The
 | 
						|
SQL statements are pulled from the sql.php file.  This file should be 
 | 
						|
moved out of the document root in to an include directory.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('database.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
Utility functions obviously.  This file was created very early and
 | 
						|
has a bit of a mish mash of functions.  This file should be moved out 
 | 
						|
of the document root in to an include directory.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('utils.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The DOMUtils.php file was created after a bunch of pages were already
 | 
						|
written and I had gained an understanding of the DOM API. A lot of 
 | 
						|
tedious coding could have been saved with this file and it makes for 
 | 
						|
a much more uniform approach to things like formatting and changing 
 | 
						|
between HTML and XML output.  This file should be moved out of the 
 | 
						|
document root and in to an include directory.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('DOMUtils.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The setup.php file is meant to be run once (but was run constantly
 | 
						|
during development) to initialize the database and configure the
 | 
						|
system including moving include files out of the document root
 | 
						|
(eventually).  I'm not sure if this file should self emolate or move
 | 
						|
its self somewhere or what.  For now it remains in the document root
 | 
						|
which is probably a security flaw of some kind....
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('setup.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
This file has a few utility functions most pages don't need.  This
 | 
						|
file should be moved out of the document root in to an include
 | 
						|
directory.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('formUtils.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
Template files are the skeletons for making new pages.  They provide
 | 
						|
a blank functioning page ready to be filled with content respective
 | 
						|
to their name.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('*-template.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The only file that relies on a library (fpdf.php) so far.  The
 | 
						|
library can go in an include subdirectory or not.  That should
 | 
						|
eventually be part of the setup process.  This page is also the
 | 
						|
only one that doesn't output html or xml, instead it generates
 | 
						|
a PDF of the application form for the currently logged in user.
 | 
						|
This needs to be tested and adjusted for the case of a new sign 
 | 
						|
up.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('applicationForm.php'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
Most other files are the actual pages that make up the site.  Most
 | 
						|
are based on a template file but the templates changed during
 | 
						|
development and so they are by no means consistant.  A code audit
 | 
						|
should include fixing that.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('other php files'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
The style sheet for the website.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('members.css'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
$str = <<<EOD
 | 
						|
That is all I have for now.  Hope this helps make this system easier
 | 
						|
to understand.
 | 
						|
EOD;
 | 
						|
 | 
						|
$header = $doc->createElement('h3');
 | 
						|
$header->appendChild($doc->createTextNode('End Of Line'));
 | 
						|
$div->appendChild($header);
 | 
						|
$para = $doc->createElement('p');
 | 
						|
$para->appendChild($doc->createTextNode($str));
 | 
						|
$div->appendChild($para);
 | 
						|
 | 
						|
 | 
						|
outputDoc($doc);
 | 
						|
 | 
						|
?>
 |