<?php 
/** 
* @author  Joel Wan & Mark Slemko.  Designs by Jonathan Easton 
* @link  http://www.phpobjectgenerator.com 
* @copyright  Offered under the  BSD license 
* 
* This upgrade file does the following: 
* 1. Checks if there is a new version of POG 
* 2. If there is, it reads generates newer versions of all objects in the object directory, 
* zip then and present them to the user to 'download' 
*/ 
include "../../configuration.php"; 
include "class.zipfile.php"; 
 
    /** 
     * Connects to POG SOAP server defined in configuration.php and 
     * generates new versions of all objects detected in /objects/ dir. 
     * All upgraded objects are then zipped and presented to user. 
     * 
     * @param string $path 
     */ 
    function UpdateAllObjects($path) 
    { 
        $dir = opendir($path); 
        $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 != "configuration.php" && $file != "setup.php") 
            { 
                $objects[] = $file; 
            } 
        } 
        closedir($dir); 
        $i = 0; 
        foreach($objects as $object) 
        { 
            $content = file_get_contents($path."/".$object); 
            $contentParts = split("<b>",$content); 
            if (isset($contentParts[1])) 
            { 
                $contentParts2 = split("</b>",$contentParts[1]); 
            } 
            if (isset($contentParts2[0])) 
            { 
                $className = trim($contentParts2[0]); 
            } 
            if (isset($className)) 
            { 
                $objectNameList[] = $className; 
 
                $linkParts1 = split("\*\/", $contentParts[1]); 
                $linkParts2 = split("\@link", $linkParts1[0]); 
                $link = $linkParts2[1]; 
                $client = new SoapClient($GLOBALS['configuration']['soap']) ; 
                if ($i == 0) 
                { 
                    $package = unserialize($client->GeneratePackageFromLink($link)); 
                } 
                else 
                { 
                    $objectString = $client->GenerateObjectFromLink($link); 
                    $package["objects"]["class.".strtolower($className).".php"] = $objectString; 
                } 
            } 
            $i++; 
        } 
        $zipfile = new createZip(); 
        $zipfile -> addPOGPackage($package); 
        $zipfile -> forceDownload("pog.".time().".zip"); 
    } 
 
    /** 
     * Checks if POG generator has been updated 
     * 
     * @return unknown 
     */ 
    function UpdateAvailable() 
    { 
        $client = new SoapClient($GLOBALS['configuration']['soap']); 
        $generatorVersion = base64_decode($client -> GetGeneratorVersion()); 
        if ($generatorVersion != $GLOBALS['configuration']['versionNumber'].$GLOBALS['configuration']['revisionNumber']) 
        { 
            return true; 
        } 
        else 
        { 
            return  false; 
        } 
    } 
 
    if (UpdateAvailable()) 
    { 
        UpdateAllObjects("../../objects/"); 
    } 
    else 
    { 
        echo "<script> 
            alert('All POG objects are already up to date'); 
            window.close(); 
        </script>"; 
    } 
?>
 
 |