From: alex <bin...@li...> - 2001-08-24 00:07:14
|
alex Thu Aug 23 17:07:08 2001 EDT Modified files: /r2/binarycloud/base/utils xml2php.php Log: Andris revisions on xml2php. Index: r2/binarycloud/base/utils/xml2php.php diff -u r2/binarycloud/base/utils/xml2php.php:1.5 r2/binarycloud/base/utils/xml2php.php:1.6 --- r2/binarycloud/base/utils/xml2php.php:1.5 Mon Aug 20 20:24:57 2001 +++ r2/binarycloud/base/utils/xml2php.php Thu Aug 23 17:07:08 2001 @@ -1,11 +1,12 @@ -#!c:/php/php.exe -q +#!/usr/local/php4/bin/php -q <?php // {{{ Header /* - * -File $Id: xml2php.php,v 1.5 2001/08/21 03:24:57 alex Exp $ + * -File $Id: xml2php.php,v 1.6 2001/08/24 00:07:08 alex Exp $ * -License LGPL (http://www.gnu.org/copyleft/lesser.html) * -Copyright 2001, Intacct Corp. * -Author odysseas tsatalos, ody...@ya... + * -Author Andris Spruds, an...@do... */ // }}} @@ -21,8 +22,7 @@ $type = $argv[0]; array_shift($argv); $xmlfile = $argv[0]; $outfile = $argv[1]; -// A stupid hack. This shoulld be done in makefile. -// Andris Spruds (an...@do...) +// _small_stupid_hack_ This should be done in makefile. Andris Spruds (an...@do...) $outfile=ereg_replace(".xml.php$",".php",$outfile); // }}} @@ -30,74 +30,55 @@ import('binarycloud.lib.XMLUtils'); $trees = XMLUtils::XMLStr2XML(join('',file($xmlfile, 1))); $xmlTree=$trees[0]; -$phpTree = XMLUtils::XML2PHP($xmlTree); +$phpTree = XMLUtils::XML2PHP($xmlTree); +$txtTree = XMLUtils::PHP2PHPArr($phpTree,false); +$nl="\r\n"; switch ($type) { case 'page_def' : - $txtTree = XMLUtils::XML2PHPArr($xmlTree); - $txtTree = ereg_replace(",\r\n$","",$txtTree); - $txtTree = ereg_replace("^'".$xmlTree['tag']."' =>","\$gPageDef = ",$txtTree); - $buffer="<?\r\n"; - $buffer.="import('binarycloud.init.Init');\r\n\r\n"; - $buffer.=$txtTree; - $buffer.=";\r\n\r\n"; - $buffer.="\$Init = new Init();\r\n"; - $buffer.="\$Init->Startup();\r\n"; - $buffer.="\$Page->BuildPage();\r\n"; - $buffer.="\$Init->Shutdown();\r\n"; - $buffer.="?>"; + $buffer.="include_once('./prepend.php');".$nl; + $buffer.="import('binarycloud.init.Init');"; + $buffer.=$nl.$nl; + $buffer.="\$gPageDef = "; + $buffer.=$txtTree; + $buffer.=$nl.$nl; + $buffer.="\$Init = new Init();" . $nl; + $buffer.="\$Init->Startup();" . $nl; + $buffer.="\$Page->BuildPage();" . $nl; + $buffer.="\$Init->Shutdown();"; break; case 'lang_def' : - $txtTree = XMLUtils::XML2PHPArr($xmlTree); - $txtTree = ereg_replace(",\r\n$","",$txtTree); - $txtTree = ereg_replace("^'".$xmlTree['tag']."' =>","\$Lang->langs = ",$txtTree); - $buffer="<?\r\n"; - $buffer.="global \$Lang;\r\n\r\n"; + $buffer.="global \$Lang;"; + $buffer.=$nl.$nl; + $buffer.="\$Lang->langs = "; $buffer.=$txtTree; - $buffer.=";\r\n\r\n"; - $buffer.="?>"; break; case 'conf_def' : - $txtTree = XMLUtils::XML2PHPDef($xmlTree); - $buffer="<?\r\n"; + $txtTree=XMLUtils::XML2PHPDef($xmlTree); $buffer.=$txtTree; - $buffer.="?>"; break; case 'datasources_def' : - $txtTree = XMLUtils::XML2PHPArr($xmlTree); - $txtTree = ereg_replace(",\r\n$","",$txtTree); - $txtTree = ereg_replace("^'".$xmlTree['tag']."' =>","\$datasources = ",$txtTree); - $buffer="<?\r\n"; - $buffer.=$txtTree; - $buffer.=";\r\n\r\n"; - $buffer.="?>"; - break; - case 'operations_def' : - $txtTree = XMLUtils::XML2PHPArr($xmlTree); - $txtTree = ereg_replace(",\r\n$","",$txtTree); - $txtTree = ereg_replace("^'".$xmlTree['tag']."' =>","\$operations = ",$txtTree); - $buffer="<?\r\n"; + $buffer.="global \$QueryManager;"; + $buffer.=$nl.$nl; + $buffer.="\$QueryManager->datasources = "; $buffer.=$txtTree; - $buffer.=";\r\n\r\n"; - $buffer.="?>"; break; - case 'roles_def' : - $txtTree = XMLUtils::XML2PHPArr($xmlTree); - $txtTree = ereg_replace(",\r\n$","",$txtTree); - $txtTree = ereg_replace("^'".$xmlTree['tag']."' =>","\$roles[me] = ",$txtTree); - $buffer="<?\r\n"; - $buffer.=$txtTree; - $buffer.=";\r\n\r\n"; - $buffer.="?>"; - break; default: - die("Type '$type' is invalid. Valid styles are page_def,lang_def,conf_def,ds_def,roles_def.\n"); + $buffer.=$txtTree; break; - } +} // }}} // Produce output {{{ +$header="// XML2PHP {{{".$nl; +$header.="/******************************************************************************".$nl; +$header.="** -Source $xmlfile".$nl; +$header.="******************************************************************************/".$nl; +$header.="// }}}".$nl; + +$buffer="<?".$nl.$header.$nl.$buffer.$nl; +$buffer.="?>"; if ($outfile) { $dir_name=dirname($outfile); @@ -105,9 +86,9 @@ mkdir($dir_name,0700); } - $fd = @fopen( $outfile, "w" ) or die( "Could not open file for writing : $outfile\n" ); + $fd = @fopen( $outfile, "w" ) or die( "XML2PHP : could not open file for writing : $outfile\n" ); fwrite( $fd, $buffer, strlen($buffer) ); fclose($fd); } // }}} -?> \ No newline at end of file +?> |