2011-10-03 00:56:18 +01:00
< ? php
/**
* @ author Joel Wan & Mark Slemko . Designs by Jonathan Easton
* @ link http :// www . phpobjectgenerator . com
* @ copyright Offered under the BSD license
*
* This setup file does the following :
* 1. Checks if configuration file is present
* 2. Checks if the data in the configuration file is correct
* 3. Checks if the database and table exist
* 4. Create table if not present
* 5. Tests 5 CRUD functions and determine if everything is OK for all objects within the current directory
* 6. When all tests pass , provides an interface to the database and a way to manage objects .
*/
if ( ! isset ( $_SESSION ))
{
session_start ();
}
if ( file_exists ( " ../configuration.php " ))
{
include_once ( " ../configuration.php " );
}
include_once ( " setup_library/authentication.php " );
include_once ( " setup_library/setup_misc.php " );
include_once ( " data_initialization/read_dump_lib.php " );
if ( ! isset ( $_SESSION [ 'diagnosticsSuccessful' ]) || ( isset ( $_GET [ 'step' ]) && $_GET [ 'step' ] == " diagnostics " ))
{
$_SESSION [ 'diagnosticsSuccessful' ] = false ;
}
?>
< ? php include " setup_library/inc.header.php " ; ?>
< ? php
ini_set ( " max_execution_time " , 0 );
if ( count ( $_POST ) > 0 && $_SESSION [ 'diagnosticsSuccessful' ] == false )
{
?>
< form action = " ./index.php " method = " POST " >
< div class = " container " >
< div class = " left " >
< div class = " logo2 " ></ div >
< div class = " text " >< div class = " gold " > POG setup diagnostics </ div >
< br /> Setup performs unit tests on all your objects in the object directory and makes sure they 're OK. <br/>This makes sure that your objects can talk to your database correctly. This can also be useful if you modify / customize the objects manually and want to make sure they still work once you' re done .
< br />< br /> The diagnostics screen on the right shows the results of those tests . If all tests pass successfully , you can be assured that all objects are working correctly .
</ div >
</ div >
< div class = " middle " >
< div id = " tabs " >
< a href = " ./index.php?step=diagnostics " >< img src = " ./setup_images/tab_setup.gif " /></ a >
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_diagnosticresults_on.gif " />
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_manageobjects.gif " />
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_manageplugins_off.gif " />
</ div >< div class = " subtabs " >& nbsp ; </ div >< a href = " ./index.php?step=diagnostics " >< img src = " ./setup_images/setup_recheck.jpg " border = " 0 " /></ a >< div class = " middle2 " >
< ? php
$errors = 0 ;
AddTrace ( 'Initializing POG Setup....OK!' );
if ( isset ( $GLOBALS [ 'configuration' ][ 'pdoDriver' ]))
{
$errors ++ ;
AddError ( 'POG setup for PHP4/5 objects cannot be run with a PDO configuration file. Regenerate configuration.php' );
}
else
{
/**
* verify file structure status
*/
if ( ! file_exists ( " ../objects/class.database.php " ))
{
$errors ++ ;
AddError ( 'Database wrapper (class.database.php) is missing.' );
}
else
{
include " ../objects/class.database.php " ;
}
if ( ! file_exists ( " ../objects/class.pog_base.php " ))
{
$errors ++ ;
AddError ( 'POG Base class (class.pog_base.php) is missing.' );
}
else
{
include " ../objects/class.pog_base.php " ;
}
if ( ! file_exists ( " ../configuration.php " ))
{
$errors ++ ;
AddError ( 'Configuration file (configuration.php) is missing' );
}
if ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] == '' )
{
$errors ++ ;
AddError ( 'Path to plugin folder has not been specified in configuration.php' );
}
else
{
if ( ! file_exists ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /plugin.base64.php " ))
{
$errors ++ ;
AddError ( 'Base64 plugin file (plugins/plugin.base64.php) is missing' );
}
else
{
include_once ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /plugin.base64.php " );
}
}
//load object names to be ignored
$ignoreObjects = file ( " ../objects/ignore_objects.txt " );
foreach ( $ignoreObjects as $key => $ignoreObject ){
$ignoreObjects [ $key ] = trim ( $ignoreObject );
}
$dir = opendir ( '../objects/' );
$objects = array ();
while (( $file = readdir ( $dir )) !== false )
{
if ( strlen ( $file ) > 4 && substr ( strtolower ( $file ), strlen ( $file ) - 4 ) === '.php' && ! is_dir ( $file ) && $file != " class.database.php " && $file != " class.pog_base.php " )
{
$objects [] = $file ;
include_once ( " ../objects/ { $file } " );
}
}
closedir ( $dir );
if ( sizeof ( $objects ) == 0 )
{
$errors ++ ;
AddError ( " [objects] folder does not contain any POG object. " );
}
if ( $errors == 0 )
{
$dir = opendir ( $GLOBALS [ 'configuration' ][ 'plugins_path' ]);
$plugins = array ();
while (( $file = readdir ( $dir )) !== false )
{
if ( file_exists ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /IPlugin.php " ))
{
include_once ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /IPlugin.php " );
}
if ( strlen ( $file ) > 4 && substr ( strtolower ( $file ), strlen ( $file ) - 4 ) === '.php' && ! is_dir ( $file ) && strtolower ( substr ( $file , 0 , 6 )) == 'plugin' )
{
include_once ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " / { $file } " );
$pluginName = GetPluginName ( $file );
if ( $pluginName != '' )
{
$plugins [] = $file ;
}
}
}
closedir ( $dir );
}
/**
* verify configuration info
*/
if ( $errors == 0 )
{
AddTrace ( 'File Structure....OK!' );
2012-02-05 21:51:07 +00:00
if ( ! mysql_connect ( $GLOBALS [ 'configuration' ][ 'host' ] . " : " . $GLOBALS [ 'configuration' ][ 'port' ], $GLOBALS [ 'configuration' ][ 'user' ], $GLOBALS [ 'configuration' ][ 'pass' ]))
2011-10-03 00:56:18 +01:00
{
$errors ++ ;
AddError ( 'Cannot connect to the specified database server. Edit configuration.php' );
}
if ( isset ( $GLOBALS [ 'configuration' ][ 'db_encoding' ]) && $GLOBALS [ 'configuration' ][ 'db_encoding' ] == 1 && ! Base64 :: IsBase64FunctionInstalled ())
{
$errors ++ ;
AddError ( '$configuration[db_encoding] needs to be set to 0 until you install the base64 plugin. Set db_encoding to 0 by editing configuration.php, run setup again and go to the "Manage Plugins" tab. Install the base64 plugin. Then you can set db_encoding = 1' );
}
if ( $errors == 0 )
{
if ( !@ mysql_select_db ( $GLOBALS [ 'configuration' ][ 'db' ]))
{
$errors ++ ;
AddError ( 'Cannot find the specified database "' . $GLOBALS [ 'configuration' ][ 'db' ] . '". Edit configuration.php' );
}
}
}
/**
* verify storage status
*/
if ( $errors == 0 )
{
AddTrace ( " Configuration Info....OK! \n " );
AddTrace ( " Storage Status " );
foreach ( $objects as $object )
{
$objectName = GetObjectName ( " ../objects/ " . $object );
eval ( '$instance = new ' . $objectName . '();' );
if ( TestStorageExists ( $objectName , " mysql " ))
{
if ( isset ( $_POST [ 'pog_table' ]) && ( $_POST [ 'pog_table' ] == " recreate " || $_POST [ 'pog_table' ] == " recreate_import " ))
{
if ( ! TestDeleteStorage ( $instance ))
{
$errors ++ ;
AddError ( " Dropping table ' " . strtolower ( $objectName ) . " ' failed. Drop and recreate the table manually. " );
}
else
{
if ( ! TestCreateStorage ( " ../objects/ " . $object ))
{
$errors ++ ;
AddError ( " Creating table [ " . strtolower ( $objectName ) . " ] failed. Create the table manually using the generated SQL query in the object header. " );
}
else
{
AddTrace ( " \t Dropping & Recreating table [ " . strtolower ( $objectName ) . " ]....OK! " );
}
}
}
else
{
if ( ! TestAlterStorage ( $instance ))
{
$errors ++ ;
AddError ( " Aligning [ $objectName ] with table ' " . strtolower ( $objectName ) . " ' failed. Alter the table manually so that object attributes and table columns match. " );
}
else
{
AddTrace ( " \t Aligning [ $objectName ] with table ' " . strtolower ( $objectName ) . " '....OK! " );
}
}
}
else
{
if ( ! TestCreateStorage ( " ../objects/ " . $object ))
{
$errors ++ ;
AddError ( " Creating table [ " . strtolower ( $objectName ) . " ] failed. Create the table manually using the generated SQL query in the object header. " );
}
else
{
AddTrace ( " \t Creating table [ " . strtolower ( $objectName ) . " ]....OK! " );
}
}
}
}
$objectNameList = array ();
/**
* Initialize test data ?
*/
if ( isset ( $_POST [ 'pog_table' ]) && $_POST [ 'pog_table' ] == 'recreate_import' )
{
$initialData = file_get_contents ( 'data_initialization/data_initialization.sql' );
PMA_splitSqlFile ( $statements , $initialData , 4 );
if ( sizeof ( $statements ) > 0 )
{
foreach ( $statements as $statement )
{
if ( ! TestExecuteQuery ( $statement [ 'query' ]))
{
$errors ++ ;
AddError ( 'Statement "' . $statement [ 'query' ] . '" failed' );
}
}
}
$structure_changes = file_get_contents ( 'data_initialization/additional_table_structures.sql' );
unset ( $statements );
PMA_splitSqlFile ( $statements , $structure_changes , 4 );
if ( sizeof ( $statements ) > 0 )
{
foreach ( $statements as $statement )
{
if ( ! TestExecuteQuery ( $statement [ 'query' ]))
{
$errors ++ ;
AddError ( 'Statement "' . $statement [ 'query' ] . '" failed' );
}
}
}
}
/**
* verify object status
*/
$objectNameList = array ();
foreach ( $objects as $object )
{
$objectName = GetObjectName ( " ../objects/ " . $object );
if ( isset ( $objectName ) && array_search ( $objectName , $ignoreObjects ) === false )
{
$objectNameList [] = $objectName ;
}
}
if ( $errors == 0 )
{
$pluginNameList = array ();
foreach ( $plugins as $plugin )
{
$pluginName = GetPluginName ( $plugin );
if ( $pluginName != '' )
{
$pluginNameList [] = $pluginName ;
}
}
}
if ( $errors == 0 && isset ( $_POST [ 'pog_test' ]) && $_POST [ 'pog_test' ] == 'yes' )
{
AddTrace ( " \n POG Essentials " );
$_SESSION [ 'links' ] = array ();
$objectCount = 1 ;
foreach ( $objects as $object )
{
$objectName = GetObjectName ( " ../objects/ " . $object );
if ( isset ( $objectName ) && array_search ( $objectName , $ignoreObjects ) === false )
{
eval ( '$instance = new ' . $objectName . '();' );
AddTrace ( " \t [ " . $objectName . " ] " );
$link = GetAtLink ( " ../objects/ " . $object );
$_SESSION [ 'links' ][ $objectName ] = $link ;
if ( ! TestEssentials ( $instance ))
{
$errors ++ ;
AddError ( " Object $objectName failed essential tests " );
}
if ( $objectCount != sizeof ( $objects ))
{
AddTrace ( " \t *** " );
}
}
$objectCount ++ ;
}
}
if ( $errors == 0 && isset ( $_POST [ 'pog_test' ]) && $_POST [ 'pog_test' ] == 'yes' )
{
AddTrace ( " \n POG Relations PreRequisites " );
$objectCount = 1 ;
foreach ( $objects as $object )
{
$objectName = GetObjectName ( " ../objects/ " . $object );
if ( isset ( $objectName ) && array_search ( $objectName , $ignoreObjects ) === false )
{
eval ( '$instance = new ' . $objectName . '();' );
AddTrace ( " \t [ " . $objectName . " ] " );
if ( ! TestRelationsPreRequisites ( $instance , $objectNameList , $objectName , $ignoreObjects ))
{
$errors ++ ;
}
if ( $objectCount != sizeof ( $objects ))
{
AddTrace ( " \t *** " );
}
}
$objectCount ++ ;
}
}
if ( $errors == 0 && isset ( $_POST [ 'pog_test' ]) && $_POST [ 'pog_test' ] == 'yes' )
{
AddTrace ( " \n POG Relations " );
$objectCount = 1 ;
foreach ( $objects as $object )
{
$objectName = GetObjectName ( " ../objects/ " . $object );
if ( isset ( $objectName ) && array_search ( $objectName , $ignoreObjects ) === false )
{
eval ( '$instance = new ' . $objectName . '();' );
AddTrace ( " \t [ " . $objectName . " ] " );
if ( ! TestRelations ( $instance , $objectNameList , $ignoreObjects ))
{
$errors ++ ;
AddError ( " Object $objectName failed relations tests " );
}
if ( $objectCount != sizeof ( $objects ))
{
AddTrace ( " \t *** " );
}
}
$objectCount ++ ;
}
}
if ( $errors == 0 )
{
$_SESSION [ 'diagnosticsSuccessful' ] = true ;
}
if ( isset ( $_POST [ 'pog_test' ]) && $_POST [ 'pog_test' ] == 'no' )
{
AddTrace ( " \n UNIT TESTS NOT PERFORMED. FOUND $errors ERROR(S) " );
}
else
{
AddTrace ( " \n CHECKED " . count ( $objectNameList ) . " OBJECT(S). FOUND $errors ERROR(S) " . ( $errors == 0 ? " . HURRAY! " : " : " ));
}
AddTrace ( " --------------------------------------------------- " );
if ( isset ( $_SESSION [ 'errorMessages' ]))
{
$errorMessages = unserialize ( $_SESSION [ 'errorMessages' ]);
}
$traceMessages = unserialize ( $_SESSION [ 'traceMessages' ]);
$diagnostics = '' ;
foreach ( $traceMessages as $traceMessage )
{
$diagnostics .= " \n $traceMessage " ;
}
if ( isset ( $errorMessages ))
{
foreach ( $errorMessages as $errorMessage )
{
$diagnostics .= " \n $errorMessage\n " ;
}
}
$_SESSION [ 'fileNames' ] = serialize ( $objects );
$_SESSION [ 'objectNameList' ] = serialize ( $objectNameList );
if ( isset ( $pluginNameList ))
{
$_SESSION [ 'pluginNameList' ] = serialize ( $pluginNameList );
}
}
echo " <textarea> " . $diagnostics . " </textarea><br/><br/><br/></div> " ;
if ( $_SESSION [ 'diagnosticsSuccessful' ])
{
echo '<input type="image" src="./setup_images/setup_proceed.gif" name="submit"/>' ;
}
unset ( $_POST , $instanceId , $_SESSION [ 'traceMessages' ], $_SESSION [ 'errorMessages' ]);
?>
</ div ></ div >
</ form >
< ? php
}
else if ( $_SESSION [ 'diagnosticsSuccessful' ] == true && ( ! isset ( $_GET [ 'plugins' ]) || $_GET [ 'plugins' ] != true ) )
{
$pluginNameList = unserialize ( $_SESSION [ 'pluginNameList' ]);
?>
< form action = " ./index.php " method = " POST " >
< div class = " container " >
< div class = " left " >
< div class = " logo3 " ></ div >
< div class = " text " >< div class = " gold " > POG documentation summary </ div >
< br />< br /> The following 3 documents summarize what POG is all about :< br />< br />
1. < a href = " http://www.phpobjectgenerator.com/plog/file_download/15 " > POG Essentials </ a >< br />< br />
2. < a href = " http://www.phpobjectgenerator.com/plog/file_download/21 " > POG Object Relations </ a >< br />< br />
3. < a href = " http://www.phpobjectgenerator.com/plog/file_download/18 " > POG SOAP API </ a >
</ div ><!-- text -->
</ div ><!-- left -->
< div class = " middle33 " >
< div id = " tabs3 " >
< a href = " ./index.php?step=diagnostics " >< img src = " ./setup_images/tab_setup.gif " /></ a >
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_diagnosticresults.gif " />
< img src = " ./setup_images/tab_separator.gif " />
< a href = " ./index.php " >< img src = " ./setup_images/tab_manageobjects_on.gif " /></ a >
< img src = " ./setup_images/tab_separator.gif " />
< ? php
if ( sizeof ( $pluginNameList ) > 0 )
{
?>
< a href = " ./index.php?plugins=true " >< img src = " ./setup_images/tab_manageplugins_off.gif " border = " 0 " /></ a >
< ? php
}
?>
</ div ><!-- tabs3 -->< div class = " subtabs " >
< ? php
//provide interface to the database
include " ./setup_library/xPandMenu.php " ;
$root = new XMenu ();
if ( file_exists ( " configuration.php " ))
{
include " ../configuration.php " ;
}
if ( file_exists ( " ../objects/class.database.php " ))
{
include " ../objects/class.database.php " ;
}
$fileNames = unserialize ( $_SESSION [ 'fileNames' ]);
foreach ( $fileNames as $filename )
{
include_once ( " ../objects/ { $filename } " );
}
$objectNameList = unserialize ( $_SESSION [ 'objectNameList' ]);
if ( isset ( $_GET [ 'objectName' ]))
{
$_SESSION [ 'objectName' ] = $_GET [ 'objectName' ];
}
$objectName = ( isset ( $_SESSION [ 'objectName' ]) ? $_SESSION [ 'objectName' ] : $objectNameList [ 0 ]);
?>
< div id = " header " >
< ul >
< li id = 'inactive' > My Objects :</ li >
< ? php
if ( ! isset ( $_SESSION [ 'objectName' ]))
{
$_SESSION [ 'objectName' ] = $objectNameList [ 0 ];
}
for ( $i = 0 ; $i < count ( $objectNameList ); $i ++ )
{
$name = $objectNameList [ $i ];
eval ( '$instance = new ' . $name . '();' );
if ( ! TestIsMapping ( $instance ))
{
echo " <li " . ( $_SESSION [ 'objectName' ] == $objectNameList [ $i ] ? " id='current' " : '' ) . " ><a href='./index.php?objectName= " . $objectNameList [ $i ] . " '> " . $objectNameList [ $i ] . " </a></li> " ;
//echo "<a href='./index.php?objectName=".$objectNameList[$i]."'".(isset($_SESSION['objectName']) && $_SESSION['objectName']==$objectNameList[$i]?"class='activetab'":(!isset($_SESSION['objectName'])&&$i==0?"class='activetab'":"inactivetab")).">".$objectNameList[$i]."</a> ";
}
}
?>
</ ul >
</ div ><!-- header -->
</ div ><!-- subtabs -->
< div class = " toolbar " >< a href = " <?php echo $_SESSION['links'] [ $_SESSION['objectName'] ]?> " target = " _blank " title = " modify and regenerate object " >< img src = " ./setup_images/setup_regenerate.jpg " border = " 0 " /></ a >< a href = " # " title = " Delete all objects " onclick = " if (confirm('Are you sure you want to delete all objects in this table? TPress OK to Delete.')) { window.location='./?thrashall=true';}else { alert('Phew, nothing was deleted ;)');} " >< img src = './setup_images/setup_deleteall.jpg' alt = 'delete all' border = " 0 " /></ a >< a href = " # " onclick = " javascript:expandAll();return false; " title = " expand all nodes " >< img src = './setup_images/setup_expandall.jpg' alt = 'expand all' border = " 0 " /></ a >< a href = " # " onclick = " javascript:collapseAll();return false; " title = " collapse all nodes " >< img src = './setup_images/setup_collapseall.jpg' alt = 'collapse all' border = " 0 " /></ a >< a href = " # " title = " update all objects to newest POG version " onclick = " if (confirm('Setup will now attempt to upgrade your objects by contacting the POG SOAP server. Would you like to continue?')) { window.location='./setup_library/upgrade.php';}else { alert('Upgrade aborted');} " >< img src = './setup_images/setup_updateall.jpg' alt = 'update all objects' border = '0' /></ a ></ div >< div class = " middle3 " >
< ? php
//is there an action to perform?
if ( isset ( $_GET [ 'thrashall' ]))
{
eval ( '$instance = new ' . $objectName . '();' );
$instanceId = strtolower ( get_class ( $instance )) . " Id " ;
$instanceList = $instance -> GetList ( array ( array ( $instanceId , " > " , " 0 " )));
foreach ( $instanceList as $instance )
{
$instance -> Delete ();
}
unset ( $_GET );
}
echo '<div id="container"></div>' ;
$_SESSION [ 'fileNames' ] = serialize ( $fileNames );
$_SESSION [ 'objectNameList' ] = serialize ( $objectNameList );
?>
< b class = " rbottom " >< b class = " r4 " ></ b >< b class = " r3 " ></ b >< b class = " r2 " ></ b >< b class = " r1 " ></ b ></ b >
</ div ><!-- middle3 -->
</ div ><!-- middle33 -->
</ div ><!-- container -->
</ form >
< ? php
echo " <script>sndReq('GetList', '', ' $objectName ', '', '', '', ' $objectName ');</script> " ;
}
else if ( $_SESSION [ 'diagnosticsSuccessful' ] && $_GET [ 'plugins' ])
{
?>
< form action = " ./index.php?plugins=true " method = " POST " >
< div class = " container " >
< div class = " left " >
< div class = " logo3 " ></ div >
< div class = " text " >< div class = " gold " > POG documentation summary </ div >
< br />< br /> The following 3 documents summarize what POG is all about :< br />< br />
1. < a href = " http://www.phpobjectgenerator.com/plog/file_download/15 " > POG Essentials </ a >< br />< br />
2. < a href = " http://www.phpobjectgenerator.com/plog/file_download/21 " target = " _blank " > POG Object Relations </ a >< br />< br />
3. < a href = " http://www.phpobjectgenerator.com/plog/file_download/18 " > POG SOAP API </ a >
</ div ><!-- text -->
</ div ><!-- left -->
< div class = " middle33 " >
< div id = " tabs3 " >
< a href = " ./index.php?step=diagnostics " >< img src = " ./setup_images/tab_setup.gif " /></ a >
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_diagnosticresults.gif " />
< img src = " ./setup_images/tab_separator.gif " />
< a href = " ./index.php " >< img src = " ./setup_images/tab_manageobjects.gif " /></ a >
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_manageplugins_on.gif " />
</ div ><!-- tabs3 -->< div class = " subtabs " >
< ? php
//provide interface to the database
include " ./setup_library/xPandMenu.php " ;
$root = new XMenu ();
if ( file_exists ( " configuration.php " ))
{
include " ../configuration.php " ;
}
if ( file_exists ( " ../objects/class.database.php " ))
{
include " ../objects/class.database.php " ;
}
include_once ( '../objects/class.pog_base.php' );
if ( file_exists ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /IPlugin.php " ))
{
include_once ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . '/IPlugin.php' );
}
$pluginNameList = unserialize ( $_SESSION [ 'pluginNameList' ]);
foreach ( $pluginNameList as $pluginName )
{
include_once ( $GLOBALS [ 'configuration' ][ 'plugins_path' ] . " /plugin. " . $pluginName . " .php " );
}
?>
< div id = " header " >
< ul >
< li id = 'inactive' > My Plugins :</ li >
< ? php
if ( isset ( $_GET [ 'pluginName' ]))
{
$_SESSION [ 'pluginName' ] = $_GET [ 'pluginName' ];
}
$pluginName = ( isset ( $_SESSION [ 'pluginName' ]) ? $_SESSION [ 'pluginName' ] : $pluginNameList [ 0 ]);
$_SESSION [ 'pluginName' ] = $pluginName ;
for ( $i = 0 ; $i < count ( $pluginNameList ); $i ++ )
{
$name = $pluginNameList [ $i ];
echo " <li " . ( $_SESSION [ 'pluginName' ] == $pluginNameList [ $i ] ? " id='current' " : '' ) . " ><a href='./index.php?plugins=true&pluginName= " . $pluginNameList [ $i ] . " '> " . $pluginNameList [ $i ] . " </a></li> " ;
}
$pluginInstance = new $_SESSION [ 'pluginName' ]( '' , '' );
?>
</ ul >
</ div ><!-- header -->
</ div ><!-- subtabs -->
< div class = " toolbar " >< img src = " setup_images/button_toolbar_left.gif " />
< a href = 'http://plugins.phpobjectgenerator.com/?id=<?=get_class($pluginInstance)?>' target = " _blank " >< img src = " setup_images/button_toolbar_homepage.gif " border = '0' /></ a >
< img src = " setup_images/toolbar_separator.gif " />
< ? php
if ( $pluginInstance -> AuthorPage () != null )
{
?>
< a href = '<?php echo $pluginInstance->AuthorPage();?>' target = " _blank " >< img src = " setup_images/button_toolbar_author.gif " border = '0' /></ a >
< img src = " setup_images/toolbar_separator.gif " />
< ? php
}
?>
< a href = 'http://plugins.phpobjectgenerator.com/?id=<?=get_class($pluginInstance)?>&help' target = " _blank " >< img src = " setup_images/button_toolbar_help.gif " border = '0' /></ a >
</ div >< div class = " middle3 " >
< ? php
echo '<div id="container"><div style="padding:30px;">' ;
$pluginInstance -> SetupRender ();
echo '</div></div>' ;
$_SESSION [ 'pluginNameList' ] = serialize ( $pluginNameList );
?>
< b class = " rbottom " >< b class = " r4 " ></ b >< b class = " r3 " ></ b >< b class = " r2 " ></ b >< b class = " r1 " ></ b ></ b >
</ div ><!-- middle3 -->
</ div ><!-- middle33 -->
</ div ><!-- container -->
</ form >
< ? php
}
else
{
unset ( $_SESSION [ 'objectNameList' ], $_SESSION [ 'fileNames' ], $_SESSION [ 'links' ], $_SESSION [ 'pluginNameList' ]);
//welcome screen
?>
< form action = " ./index.php " method = " POST " >
< div class = " container " >
< div class = " left " >
< div class = " logo " ></ div >
< div class = " text " >< div class = " gold " > What is POG Setup ? </ div > POG Setup is an extension of the online Php Object Generator . It is meant to help the veteran POG user and the novice alike .
< br />< br /> POG Setup is a 3 step process which :< br />< br />
1. Creates tables for your generated objects .< br />< br />
2. Performs diagnostics tests on all objects within your 'objects' directory .< br />< br />
3. Provides a light interface to your object tables .</ div >
</ div >
< div class = " middle " >
< div id = " tabs " >
< img src = " ./setup_images/tab_setup_on.gif " />
< img src = " ./setup_images/tab_separator.gif " height = " 20px " width = " 17px " />
< img src = " ./setup_images/tab_diagnosticresults.gif " height = " 20px " width = " 137px " />
< img src = " ./setup_images/tab_separator.gif " height = " 20px " width = " 17px " />
< img src = " ./setup_images/tab_manageobjects.gif " height = " 20px " width = " 129px " />
< img src = " ./setup_images/tab_separator.gif " />
< img src = " ./setup_images/tab_manageplugins_off.gif " />
</ div >
< div id = " nifty " >
< div style = " height:500px " >
< img src = " ./setup_images/setup_welcome.jpg " height = " 47px " width = " 617px " />
< div class = " col1 " >< img src = " ./setup_images/pog_setup_closed.jpg " />< div class = " gold " > What is POG ? </ div > POG generates PHP objects with integrated CRUD methods to dramatically accelerate web application development in PHP . < br />
< br /> POG allows developers to easily map object attributes onto columns of a database table without having to write SQL queries .</ div >
< div class = " col2 " >< img src = " ./setup_images/pog_setup_open.jpg " />< div class = " gold " > What is POG Setup ? </ div > You ' ve generated one or more objects using Php Object Generator ... Now what ? < br />
< br /> POG SETUP is an answer to this question and takes the POG experience one step further . The Setup process automates < b > table creation </ b > , < b > unit testing </ b > and provides a light < b > scaffolding </ b > environment .</ div >
< div class = " col3 " >
< div class = " gold " > If you are ready to get POG ' d up , click on thebutton below to proceed . Doing this will :</ div >< br />
< table >
< tr >
< td > TABLES :</ td >
< td >
< select class = " ss " name = " pog_table " >
< option value = " align " > Align tables with objects ( default ) </ option >
< option value = " recreate " > Recreate tables </ option >
< option value = " recreate_import " > Recreate tables and initialize data </ option >
</ select >
</ td >
</ tr >
< tr >
< td > TESTS :</ td >
< td >
< select class = " ss " name = " pog_test " >
< option value = " yes " > Perform unit tests ( default ) </ option >
< option value = " no " > Bypass unit tests </ option >
</ select >
</ td >
</ tr >
</ table >< br />
< br />< input type = " image " onclick = " PleaseWait(''); " src = " ./setup_images/setup_pogmeup.gif " name = " submit " />
< div align = " center " id = " pleasewait " style = " display:none; " >< img src = " ./setup_images/loading.gif " /></ div >
</ div >
</ div >
< b class = " rbottom " >< b class = " r4 " ></ b >< b class = " r3 " ></ b >< b class = " r2 " ></ b >< b class = " r1 " ></ b ></ b >
</ div >
</ div >
</ div >
</ form >
< ? php
}
?>
< div class = " footer " >
< ? php include " setup_library/inc.footer.php " ; ?>
</ div >
</ body >
</ html >