| Current Path : /var/www/cesa.co.za/ |
| Current File : /var/www/cesa.co.za/awards-from-forminator.php |
<?php
// Start output buffering to prevent "headers already sent" warnings
ob_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
//header('Content-type: text/json');
// Set required server variables for WordPress
if (!isset($_SERVER['HTTP_HOST'])) {
$_SERVER['HTTP_HOST'] = 'localhost';
}
if (!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = '/';
}
if (!isset($_SERVER['DOCUMENT_ROOT']) || strlen($_SERVER['DOCUMENT_ROOT']) <= 0) {
$_SERVER['DOCUMENT_ROOT'] = str_replace('/crons', '', getcwd());
}
// echo $_SERVER['DOCUMENT_ROOT'];
// exit;
include_once($_SERVER['DOCUMENT_ROOT'] . "/ADOdb/adodb.inc.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/vendor/autoload.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/cfg/config.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/sqlFunctions.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/BaseTableClass.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/MemberFirm.php");
// Load WordPress with error handling
try {
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
echo 'WordPress loaded successfully' . "\r\n";
} catch (Exception $e) {
echo 'Error loading WordPress: ' . $e->getMessage() . "\r\n";
exit(1);
}
// Verify WordPress functions are available
if (!function_exists('get_post_meta')) {
echo 'WordPress function get_post_meta is not available. WordPress may not have loaded properly.' . "\r\n";
exit(1);
}
$sqlfWP = new sqlFunctions(WP_HOST, WPDB_USER, WPDB_PASS, WPDB_DB);
$wpFormsSQL = "SELECT * FROM wp_posts p "
. "INNER JOIN wp_postmeta pm ON p.id = pm.post_id "
. "WHERE p.post_type = 'forminator_forms'";
echo $wpFormsSQL . "\r\n";
$wpForms = $sqlfWP->getAll($wpFormsSQL);
$forms = array();
echo count($wpForms) . " forms found\r\n";
foreach ($wpForms as $wpForm) {
$formMeta = get_post_meta($wpForm['ID']);
$forminatorMeta = unserialize($formMeta['forminator_form_meta'][0]);
$forms[$forminatorMeta['settings']['form_name']] = array('name' => $forminatorMeta['settings']['formName'], 'fields' => array(), 'entries' => array());
$entriesFinal = array();
// var_dump(array_keys($wpForm));
// echo $forminatorMeta['settings']['form_name'] . ' - ' . $forminatorMeta['settings']['formName'];
// echo '<br /> ';
foreach ($forminatorMeta['fields'] as $field) {
if (isset($field['field_label'])) {
// echo 'Field ID: ' . $field['id'] . ' - Label: ' . $field['field_label'] . '<br />';
$forms[$forminatorMeta['settings']['form_name']]['fields'][$field['id']] = array('label' => $field['field_label']);
}
} //foreach
$entrySQL = "SELECT * FROM wp_frmt_form_entry WHERE form_id = " . $wpForm['ID'];
$formEntries = $sqlfWP->getAll($entrySQL);
$entries = array();
// echo '<br />Entries:<br/>';
foreach ($formEntries as $formEntry) {
$oneEntry = array(
'ExternalFormID' => $forminatorMeta['settings']['form_name'],
'ExternalEntryID' => $formEntry['entry_id'],
'EntryFormName' => $forminatorMeta['settings']['formName'],
'FirmName' => '',
'FormFields' => array(),
'PreEntryHTML' => '<table border="0" cellpadding="4" cellspacing="0" border="0">',
'FullEntryHTML' => '',
'JV_Partners' => '',
);
$entries[$formEntry['entry_id']] = array();
foreach ($forms[$forminatorMeta['settings']['form_name']]['fields'] as $fieldId => $vals) {
$fieldSQL = "SELECT * FROM wp_frmt_form_entry_meta WHERE entry_id = " . $formEntry['entry_id'] . " AND meta_key = '" . $fieldId . "'";
// echo $fieldSQL . ' <br />';
$fieldValue = $sqlfWP->getRow($fieldSQL);
$labelText = trim($forms[$forminatorMeta['settings']['form_name']]['fields'][$fieldId]['label']);
// echo 'Label: ' . $labelText . '<br />';
if (is_array($fieldValue) && isset($fieldValue['meta_value'])) {
if (in_array($fieldId, array('text-1'))) {
$oneEntry['Firm_Name'] = $fieldValue['meta_value'];
}
if ($labelText == 'Which awards category(ies) are you entering for? (Please select all relevant)' || $labelText == 'Name of Award Category' || $labelText == 'Which Award Category is the Submission for?') {
$numEntries = 0;
if (strpos(' ' . $fieldValue['meta_value'], '{') > 0) {
$fieldValue['meta_value'] = unserialize($fieldValue['meta_value']);
if (is_array($fieldValue['meta_value'])) {
$numEntries = count($fieldValue['meta_value']);
$fieldValue['meta_value'] = implode(', ', $fieldValue['meta_value']);
}
}
if ($numEntries <= 0) {
$numEntries = 1;
}
$oneEntry['Award_Category'] = $fieldValue['meta_value'];
// echo $labelText . ' found category: ' . $oneEntry['Award_Category'] . '<br />';
} else {
// echo 'label not category: ' . $labelText . '<br />';
}
if (in_array($fieldId, array('date-1', 'date-3', 'date-5', 'date-7', 'date-9'))) {
$oneEntry['Start_Date'] = $fieldValue['meta_value'];
}
if ($labelText == 'Name of Project Entered' || $labelText == 'Project Title') {
$oneEntry['Project_Name'] = $fieldValue['meta_value'];
}
if (in_array($fieldId, array('date-2', 'date-4', 'date-6', 'date-8', 'date-10'))) {
$oneEntry['End_Date'] = $fieldValue['meta_value'];
$oneEntry['Completion_Date'] = $fieldValue['meta_value'];
// echo $oneEntry['End_Date'] . '<br />';
}
if ($labelText == 'Full Name' || $labelText == 'Company Contact Person') {
$oneEntry['Lead_Consultant_Name'] = $fieldValue['meta_value'];
}
if ($labelText == 'Office Number') {
$oneEntry['Lead_Consultant_Tel'] = $fieldValue['meta_value'];
}
if ($labelText == 'Mobile Number' || $labelText == 'Phone Number of Contact Person') {
$oneEntry['Lead_Consultant_Mobile'] = $fieldValue['meta_value'];
}
if (substr($fieldId, 0, 5) == 'email') {
$oneEntry['Lead_Consultant_Email'] = $fieldValue['meta_value'];
}
if (substr($fieldId, 0, 5) == 'radio') {
$oneEntry['A1_Poster_Required'] = $fieldValue['meta_value'];
}
if ($labelText == 'Job Title') {
$oneEntry['Role_In_Project'] = $fieldValue['meta_value'];
}
if ($labelText == 'JV Partner Name' || in_array($fieldId, array('text-4', 'text-5', 'text-6', 'text-7', 'text-8', 'text-9'))) {
if (strlen($oneEntry['JV_Partners']) > 0) {
$oneEntry['JV_Partners'] .= ', ';
}
$oneEntry['JV_Partners'] .= $fieldValue['meta_value'];
}
if (substr($fieldId, 0, 6) == 'upload') {
$fieldValue['meta_value'] = unserialize($fieldValue['meta_value']);
if (is_array($fieldValue['meta_value']) && count($fieldValue['meta_value']) > 0 && isset($fieldValue['meta_value']['file']) && $fieldValue['meta_value']['file']['success']) {
if (is_array($fieldValue['meta_value']['file']['file_url'])) {
$fieldValue['meta_value']['file']['file_url'] = $fieldValue['meta_value']['file']['file_url'][0];
}
if (!isset($fieldValue['meta_value']['file']['file_name'])) {
$fieldValue['meta_value']['file']['file_name'] = substr($fieldValue['meta_value']['file']['file_url'], strrpos('/', $fieldValue['meta_value']['file']['file_url']));
}
$fieldValue['meta_value'] = '<a href="' . $fieldValue['meta_value']['file']['file_url'] . '" target="_blank">' . $fieldValue['meta_value']['file']['file_name'] . '</a>';
}
}
$oneEntry['FormFields'][] = array(
'id' => $fieldId,
'label' => $labelText,
'value' => $fieldValue['meta_value'],
);
// echo $fieldId . ' - ' . $labelText . ' = ' . $fieldValue['meta_value'] . '<br />';
$entries[$formEntry['entry_id']][$fieldId] = array('label' => $forms[$forminatorMeta['settings']['form_name']]['fields'][$fieldId]['label'], 'value' => $fieldValue['meta_value']);
} else {
// var_dump($fieldValue);
// echo '<br />';
}
} //foreach fields
foreach ($oneEntry['FormFields'] as $oneFormField) {
if (is_array($oneFormField['value'])) {
$oneFormField['value'] = print_r($oneFormField['value'], true);
}
$oneEntry['PreEntryHTML'] .= '<tr><td align="left" valign="top" width="40%"><b>' . $oneFormField['label'] . ':</b></td><td align="left" valign="top">' . $oneFormField['value'] . '</td></tr>';
}
$oneEntry['PreEntryHTML'] .= '</table>';
// echo '<br />Entry For DB:<br />';
$entriesFinal[] = $oneEntry;
// exit;
// unset($oneEntry['FormFields']);
// echo nl2br(print_r($oneEntry, true));
// echo 'Entry done<br /><br />';
} //foreach entries
echo '<h4>' . $forminatorMeta['settings']['form_name'] . '</h4>';
$firmObj = new MemberFirm($sqlf);
foreach ($entriesFinal as $oneEntry) {
if (is_numeric($oneEntry['Firm_Name'])) {
$firmArr = $firmObj->find($oneEntry['Firm_Name']);
if (is_array($firmArr) && count($firmArr) > 0) {
$oneEntry['Firm_Name'] = $firmArr['FirmName'];
}
// echo $oneEntry['Firm_Name'];
// exit;
}
if (in_array(
$forminatorMeta['settings']['form_name'],
array('pre-entry-form-project-awards', 'pre-entry-form-business-development-award', 'pre-entry-form-individual-awards', 'pre-entry-form-client-awards', 'Pre-Entry Form: Individual Awards')
)) {
$currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' "
. "AND ExternalEntryID = '" . $oneEntry['ExternalEntryID'] . "' AND PreEntry = 1");
if (!is_array($currentEntry) || count($currentEntry) <= 0) {
$sqlf->execute("INSERT INTO AwardsEntries (Firm_Name, ExternalFormID, ExternalEntryID, PreEntry, AwardYear) "
. "VALUES ('" . $oneEntry['Firm_Name'] . "', '" . $oneEntry['ExternalFormID'] . "', '" . $oneEntry['ExternalEntryID'] . "', 1, " . date('Y') . ")");
$currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' "
. "AND ExternalEntryID = '" . $oneEntry['ExternalEntryID'] . "'");
}
$currentEntry = array_merge($currentEntry, $oneEntry);
unset($currentEntry['FormFields']);
$currentEntry['FullEntryHTML'] = '';
$currentEntry['AwardYear'] = date('Y');
$sqlf->autoExecute('AwardsEntries', $currentEntry, 'UPDATE', 'AwardsEntryID = ' . $currentEntry['AwardsEntryID'], 'AwardsEntryID');
echo 'Entry ID: ' . $currentEntry['AwardsEntryID'] . '<br />';
// var_dump($oneEntry);
// echo '<br /><br />';
// var_dump($currentEntry);
// echo '<br /><br /> ';
// exit;
} else {
if (!isset($oneEntry['Award_Category'])) {
$oneEntry['Award_Category'] = '';
}
if (!isset($oneEntry['Award_Category']) || strlen($oneEntry['Award_Category']) <= 0) {
if ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-less-then-50-million') {
$oneEntry['Award_Category'] = 'Projects less than R50 million';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-ranging-from-r50-less-than-r250-million') {
$oneEntry['Award_Category'] = 'Projects ranging from R50 – less than R250 million';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-ranging-from-r250-less-than-r1-billion') {
$oneEntry['Award_Category'] = 'Projects ranging from R250 – less than R1 billion';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-mega-projects-greater-than-r1-billion') {
$oneEntry['Award_Category'] = 'Mega Projects greater than R1 billion';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-best-international-projects') {
$oneEntry['Award_Category'] = 'Best International Projects';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-water-sanitation-and-hygiene-wash-design-excellence-award') {
$oneEntry['Award_Category'] = 'Engineering Technology and Innovation: Water, Sanitation, and Hygiene (Wash) Design Excellence Award';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-hvac-building-systems-design-excellence-award') {
$oneEntry['Award_Category'] = 'Engineering Technology and Innovation: HVAC Building Systems Design Excellence Award';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-business-development-awards') {
//TODO: Is this correct mapping?
$oneEntry['Award_Category'] = 'Business Excellence Award';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-individual-awards') {
$oneEntry['Award_Category'] = 'Individual Awards';
} elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-client-awards') {
$oneEntry['Award_Category'] = 'Client Awards';
} elseif ($forminatorMeta['settings']['form_name'] == 'project-awards-full-submission') {
$oneEntry['Award_Category'] = 'Project Awards';
} else {
}
}
$currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries "
. "WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' AND Firm_Name = '" . $oneEntry['Firm_Name'] . "' "
. "AND Award_Category LIKE '%" . $oneEntry['Award_Category'] . "%' AND PreEntry = 0");
if (!is_array($currentEntry) || count($currentEntry) <= 0) {
$sqlf->execute("INSERT INTO AwardsEntries (Award_Category, Firm_Name, ExternalFormID, ExternalEntryID, PreEntry, AwardYear) "
. "VALUES ('" . $oneEntry['Award_Category'] . "', '" . $oneEntry['Firm_Name'] . "', '" . $oneEntry['ExternalFormID'] . "', "
. "'" . $oneEntry['ExternalEntryID'] . "', 0, " . date('Y') . ")");
$currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries "
. "WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' AND Firm_Name = '" . $oneEntry['Firm_Name'] . "' "
. "AND Award_Category LIKE '%" . $oneEntry['Award_Category'] . "%' AND PreEntry = 0");
}
$currentEntry = array_merge($currentEntry, $oneEntry);
unset($currentEntry['FormFields']);
$oneEntry['FullEntryHTML'] = '<table border="0" cellpadding="4" cellspacing="0" border="0">';
foreach ($oneEntry['FormFields'] as $oneFormField) {
$oneEntry['FullEntryHTML'] .= '<tr><td align="left" valign="top" width="40%"><b>' . $oneFormField['label'] . ':</b></td><td align="left" valign="top">' . $oneFormField['value'] . '</td></tr>';
}
$oneEntry['FullEntryHTML'] .= '</table>';
$currentEntry['FullEntryHTML'] = $oneEntry['FullEntryHTML'];
$currentEntry['PreEntryHTML'] = '';
$currentEntry['AwardYear'] = date('Y');
$sqlf->autoExecute('AwardsEntries', $currentEntry, 'UPDATE', 'AwardsEntryID = ' . $currentEntry['AwardsEntryID'], 'AwardsEntryID');
echo 'Entry ID: ' . $currentEntry['AwardsEntryID'] . '<br />';
// var_dump($oneEntry);
// echo '<br /><br />';
// var_dump($currentEntry);
// echo '<br /><br />';
// exit;
}
}
$forms[$forminatorMeta['settings']['form_name']]['entries'] = $entries;
echo 'DONE one form!<br />';
} //foreach form
//echo json_encode($forms);
//echo nl2br(print_r($entriesFinal, true));
//echo '<br /><br />';