Milestone achievement, we finally got to rendering true codebase to PHP..., talking about creating PHP, JavaScript, CSS, Bootstrap, Html, automatically on real time...
After extracting everything from .RES files, and processing .RC files, either or...
We had to translate xBase code from .prg files, and c and c++ from .c and .cpp files...,
Work with api calls conversions, etc...
The necessary code is only a couple gigabytes, but we have a couple terabytes that we need to depure.... i tried to upload to a webserver, but between addresses, dependencies, and other factors, it will take a little while to have an online deployable working version... but already works in my development environment.
functions and class methods are done, just need to implement and make sure they render what its suppossed to be rendered...
We have a long way to go,,,, but proof of concept is already achieved.. it is possible....
<?php
/**
* fivedbu - Production Library File
* Platform: Production
* xBasePHP
*
function main($cdbfname = null) {
global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;
$obmptiled = null;
$obmptiled = null;
fwnumformat("A", true);
setautohelp(true);
$hado = ["DBASE" => [], "FOXPRO" => [], "EXCEL" => [], "MSACCESS" => [], "MSSQL" => [], "MYSQL" => [], "SQLITE" => [], "ORACLE" => [], "POSTGRE" => []];
TPreview::$bSaveAsPDF = function($o, $c, $l) { return fwsavepreviewtopdf($o, $c, $l); };
setresdebug(true);
$cconnection = hb_space(100);
// Unknown statement type: FunctionCall
// Unknown statement type: FunctionCall
loadpreferences();
if ($lpijama) {
setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), ((237 + (242 * 256)) + (248 * 65536))]]);
} else {
setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), 16777215]]);
}
$ofontx = new TFont("Calibri", 0, -(14), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
$obmptiled = (new TBitmap())->define("background", null, null);
$owndmain = new TMdiFrame(null, null, null, null, "FiveDBU", null, buildmenu(), null, null, null, null, true, true, null, null, null, null, "oWndMain", null, null, null, null);
$owndmain->SetFont($ofontx);
buildmainbar();
new TMsgBar($owndmain, "FiveDBU 32/64 bits, (c) FiveTech Software 2014-2020", false, false, true, true, null, null, null, null, false, (false ? false : true), null, false);
if (!(hb_empty($cdbfname))) {
open($cdbfname);
}
$owndmain->bRClicked = function($nrow, $ncol, $nkeyflags) { return buildpopupmenu($nrow, $ncol, $owndmain); };
$owndmain->bPainted = function($hdc, $cps) use ($owndmain, $obmptiled) { return drawtiled($hdc, $owndmain, $obmptiled); };
$owndmain->ACTIVATE(hb_upper("MAXIMIZED"), $owndmain->bLClicked, $owndmain->bRClicked, $owndmain->bMoved, $owndmain->bResized, $owndmain->bPainted, $owndmain->bKeyDown, $owndmain->bInit, null, null, null, null, null, null, null, null, function() { return (function() { fwmissingstrings(); return msgyesno(fwstring("Want to end ?"), fwstring("Select an option")); })(); }, null, $owndmain->bLButtonUp, false, null);
$obmptiled->END();
if ($ofontx && hb_isobject($ofontx) && $ofontx->END()) {
$ofontx = null;
hb_aeval($amariacn, function($a) { return $a[3]->Close(); });
heval($hado, function($k, $v) { return hb_aeval($v, function($a) { return $a[3]->Close(); }); });
ferase("checkres.txt");
checkres();
return null;
}
}
function buildpopupmenu($nrow = null, $ncol = null, $ownd = null) {
global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;
$opopup = null;
$oitem = null;
static $lserver = null;
static $hserver = null;
$opopup = null;
$oitem = null;
$lserver = false;
$hserver = null;
$opopup = menubegin(true, null, null, false, false, null, null, null, null, null, null, null, null, null, false, null, false, false, false, false, null, null, null, null, null, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, null, null, null, null, null, null, null);
if ($lserver) {
menuadditem("WebApp", null, true, null, function($omenuitem) { return (function() { $lserver = false; return hb_threadquitrequest($hserver); })(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
} else {
menuadditem("WebApp", null, false, null, function($omenuitem) { return (!($lserver) ? (function() { $lserver = true; return $hserver = hb_threadstart(webserver()); })() : null); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
}
menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
menuadditem("Controller", null, false, null, function($omenuitem) { return wa_controller(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
menuadditem("Dialogs", null, false, null, function($omenuitem) { return wa_showcodedialogs(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
menuend();
$opopup->ACTIVATE($nrow, $ncol, $ownd, !(false), null);
return null;
}