$features_table = ''; foreach ($data['content']['boatData']['features']['fields'] as $v) { $features_table .= ''; } $features_table .= '

' . _($data['content']['boatData']['features']['label']) . '

' . $v['title'] . ' ' . $v['value'] . (empty($v['suffix']) ? '' : ' ' . $v['suffix']) . '
'; } $file['content'] = str_replace('[boat_features]', $features_table, $file['content']); /* ************************************************************************************************************ */ $ex_features_table_1 = ""; $ex_features_table_2 = ""; if (!empty($data['content']['boatData']['extra_features'])) { $ex_features_table_1 = ''; $ex_features_table_1 .= ''; foreach ($data['content']['boatData']['extra_features']['sails']['fields'] as $efq) { $ex_features_table_1 .= ''; } $ex_features_table_1 .= ''; foreach ($data['content']['boatData']['extra_features']['navigation']['fields'] as $efq) { $ex_features_table_1 .= ''; } $ex_features_table_1 .= '

' . $data['content']['boatData']['extra_features']['sails']['label'] . '

' . $efq['title'] . ' ' . (empty($efq['prefix']) ? '' : $efq['prefix']) . ' ' . $efq['value'] . ' ' . (empty($efq['suffix']) ? '' : $efq['suffix']) . '

' . $data['content']['boatData']['extra_features']['navigation']['label'] . '

' . $efq['title'] . ' ' . (empty($efq['prefix']) ? '' : $efq['prefix']) . ' ' . $efq['value'] . ' ' . (empty($efq['suffix']) ? '' : $efq['suffix']) . '
'; $ex_features_table_2 = ''; $ex_features_table_2 .= ''; foreach ($data['content']['boatData']['extra_features']['comfort']['fields'] as $efq) { $ex_features_table_2 .= ''; } $ex_features_table_2 .= ''; foreach ($data['content']['boatData']['extra_features']['engine_room']['fields'] as $efq) { $ex_features_table_2 .= ''; } $ex_features_table_2 .= '

' . $data['content']['boatData']['extra_features']['comfort']['label'] . '

' . $efq['title'] . ' ' . (empty($efq['prefix']) ? '' : $efq['prefix']) . ' ' . $efq['value'] . ' ' . (empty($efq['suffix']) ? '' : $efq['suffix']) . '

' . $data['content']['boatData']['extra_features']['engine_room']['label'] . '

' . $efq['title'] . ' ' . (empty($efq['prefix']) ? '' : $efq['prefix']) . ' ' . $efq['value'] . ' ' . (empty($efq['suffix']) ? '' : $efq['suffix']) . '
'; } $file['content'] = str_replace('[other_features_1]', $ex_features_table_1, $file['content']); $file['content'] = str_replace('[other_features_2]', $ex_features_table_2, $file['content']); /* ************************************************************************************************************ */ $std_equipment[1] = ""; $std_equipment[2] = ""; $std_equipment[3] = ""; $std_equipment[4] = ""; $c[1] = array('comfort', 'sails', 'safety'); $c[2] = array('deck'); $c[3] = array('entertainment', 'navigation', 'engine_room'); $c[4] = array('galley', 'interior'); foreach ($c as $k => $v) { foreach ($v as $vv) { if (!empty($data['content']['boatData']['equipment']['standard'][$vv])) { $std_equipment[$k] = empty($std_equipment[$k]) ? '' : $std_equipment[$k]; $std_equipment[$k] .= ''; foreach ($data['content']['boatData']['equipment']['standard'][$vv]['fields'] as $el) { $std_equipment[$k] .= ''; } } } } $std_equipment[1] .= empty($std_equipment[1]) ? '' : '

' . $data['content']['boatData']['equipment']['standard'][$vv]['label'] . '

' . $el . '
'; $std_equipment[2] .= empty($std_equipment[2]) ? '' : ''; $std_equipment[3] .= empty($std_equipment[3]) ? '' : ''; $std_equipment[4] .= empty($std_equipment[4]) ? '' : ''; $file['content'] = str_replace('[std_equipment_title]', '

' . _('Standard Equipment') . '


', $file['content']); $file['content'] = str_replace('[std_equipment_1]', $std_equipment[1], $file['content']); $file['content'] = str_replace('[std_equipment_2]', $std_equipment[2], $file['content']); $file['content'] = str_replace('[std_equipment_3]', $std_equipment[3], $file['content']); $file['content'] = str_replace('[std_equipment_4]', $std_equipment[4], $file['content']); /* ************************************************************************************************************ */ $file['content'] = str_replace('[addon_title]', '

' . _('Additional Services & Equipment Equipment') . '


', $file['content']); $addon_table = ''; foreach ($data['content']['boatData']['date_features']['extras'] as $el) { $addon_table .= ''; foreach ($el['fields'] as $eq) { //p($eq) // Check description length to determine display style $descriptionLength = strlen($eq['description']); if ($descriptionLength < 200) { // Short description - display inline $addon_table .='' ; } else { // Long description - display on separate row $addon_table .='' ; } } } $addon_table .='

' . $el['label'] . '

' . $eq['title'] . ' ' . $eq['description'] . ' ' . $eq['prefix'] . " " . $eq['value'] . " " . $eq['period'] . ' ' . $eq['conditions'] . '
' . $eq['title'] . ' ' . $eq['prefix'] . " " . $eq['value'] . " " . $eq['period'] . ' ' . $eq['conditions'] . '
' . $eq['description'] . '
' ; $file['content']=str_replace('[addon_table]', $addon_table, $file['content']); // Generate a unique filename based on boat data with language $file_name='E.G.G-Yachting-' . $data['content']['boatData']['boat_name'] . '-' . $data['content']['boatData']['model_name'] . '-' . strtoupper($data['page']['lang']); $safe_filename=preg_replace('/[^a-zA-Z0-9\-_]/', '-' , $file_name); // Check if PDF already exists (to avoid regenerating) $pdf_path=ROOT_PATH . '/public_html/uploads/brochures/' . $safe_filename . '.pdf' ; // If PDF exists and is recent, redirect immediately if (file_exists($pdf_path) && (time() - filemtime($pdf_path)) < 3600) { error_log("PDF exists, redirecting: " . $safe_filename); header('Location: ' . APP_URL . '/uploads/brochures/' . $safe_filename . '.pdf?v=' . filemtime($pdf_path)); exit; } // Show loading page first, then trigger PDF generation via JavaScript ?> Generating PDF...

Generating your brochure...

Please wait, this may take a few seconds...