Connect site to DB and enable contact email
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
$DB_HOST = '192.168.222.20';
|
||||||
|
$DB_PORT = '3306';
|
||||||
|
$DB_NAME = 'cv.linkedcorp';
|
||||||
|
$DB_USER = 'cvlinkedcorp';
|
||||||
|
$DB_PASS = 'CvLinkedCorp*2026';
|
||||||
|
|
||||||
|
$dsn = "mysql:host={$DB_HOST};port={$DB_PORT};dbname={$DB_NAME};charset=utf8mb4";
|
||||||
|
$options = [
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
];
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo = new PDO($dsn, $DB_USER, $DB_PASS, $options);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
http_response_code(500);
|
||||||
|
echo 'Database connection failed.';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
+104
-80
@@ -1,80 +1,104 @@
|
|||||||
<?php
|
<?php
|
||||||
|
require __DIR__ . '/../config/db.php';
|
||||||
// configure
|
|
||||||
$from = 'info@yourdomain.com'; // Replace it with Your Hosting Admin email. REQUIRED!
|
$profileId = 1;
|
||||||
$sendTo = 'your@mail.com'; // Replace it with Your email. REQUIRED!
|
|
||||||
$subject = 'New message from contact form';
|
$contactMetaStmt = $pdo->prepare('SELECT email_to, email_from, recaptcha_secret FROM contact_meta WHERE profile_id = ? AND is_active = 1 LIMIT 1');
|
||||||
$fields = array('name' => 'Name', 'email' => 'Email', 'subject' => 'Subject', 'message' => 'Message'); // array variable name => Text to appear in the email. If you added or deleted a field in the contact form, edit this array.
|
$contactMetaStmt->execute([$profileId]);
|
||||||
$okMessage = 'Contact form successfully submitted. Thank you, I will get back to you soon!';
|
$contactMeta = $contactMetaStmt->fetch();
|
||||||
$errorMessage = 'There was an error while submitting the form. Please try again later';
|
|
||||||
|
$emailTo = $contactMeta['email_to'] ?? 'mgonzalez@linkedcorp.net';
|
||||||
// let's do the sending
|
$emailFrom = $contactMeta['email_from'] ?? $emailTo;
|
||||||
|
$recaptchaSecret = $contactMeta['recaptcha_secret'] ?? '';
|
||||||
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
|
|
||||||
//your site secret key
|
$subject = 'New message from contact form';
|
||||||
$secret = '6LdqmCAUAAAAANONcPUkgVpTSGGqm60cabVMVaON';
|
$fields = array('name' => 'Name', 'email' => 'Email', 'subject' => 'Subject', 'message' => 'Message');
|
||||||
//get verify response data
|
$okMessage = 'Contact form successfully submitted. Thank you, I will get back to you soon!';
|
||||||
|
$errorMessage = 'There was an error while submitting the form. Please try again later';
|
||||||
$c = curl_init('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
|
|
||||||
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
|
function json_response($type, $message)
|
||||||
$verifyResponse = curl_exec($c);
|
{
|
||||||
|
$responseArray = array('type' => $type, 'message' => $message);
|
||||||
$responseData = json_decode($verifyResponse);
|
header('Content-Type: application/json');
|
||||||
if($responseData->success):
|
echo json_encode($responseArray);
|
||||||
|
exit;
|
||||||
try
|
}
|
||||||
{
|
|
||||||
$emailText = nl2br("You have new message from Contact Form\n");
|
$name = trim($_POST['name'] ?? '');
|
||||||
|
$email = trim($_POST['email'] ?? '');
|
||||||
foreach ($_POST as $key => $value) {
|
$userSubject = trim($_POST['subject'] ?? '');
|
||||||
|
$message = trim($_POST['message'] ?? '');
|
||||||
if (isset($fields[$key])) {
|
|
||||||
$emailText .= nl2br("$fields[$key]: $value\n");
|
if ($name === '' || $email === '' || $userSubject === '' || $message === '') {
|
||||||
}
|
json_response('danger', 'All fields are required.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$headers = array('Content-Type: text/html; charset="UTF-8";',
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
'From: ' . $from,
|
json_response('danger', 'Valid email is required.');
|
||||||
'Reply-To: ' . $from,
|
}
|
||||||
'Return-Path: ' . $from,
|
|
||||||
);
|
$insertStmt = $pdo->prepare('INSERT INTO contact_messages (profile_id, full_name, email, subject, message, send_status) VALUES (?, ?, ?, ?, ?, ?)');
|
||||||
|
$insertStmt->execute([$profileId, $name, $email, $userSubject, $message, 'pending']);
|
||||||
mail($sendTo, $subject, $emailText, implode("\n", $headers));
|
$messageId = (int) $pdo->lastInsertId();
|
||||||
|
|
||||||
$responseArray = array('type' => 'success', 'message' => $okMessage);
|
$sendStatus = 'failed';
|
||||||
}
|
$sendError = null;
|
||||||
catch (\Exception $e)
|
$sentAt = null;
|
||||||
{
|
|
||||||
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
|
if ($recaptchaSecret !== '') {
|
||||||
}
|
$recaptchaResponse = $_POST['g-recaptcha-response'] ?? '';
|
||||||
|
if ($recaptchaResponse === '') {
|
||||||
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
|
$sendError = 'recaptcha_missing';
|
||||||
$encoded = json_encode($responseArray);
|
$updateStmt = $pdo->prepare('UPDATE contact_messages SET send_status = ?, send_error = ? WHERE id = ?');
|
||||||
|
$updateStmt->execute([$sendStatus, $sendError, $messageId]);
|
||||||
header('Content-Type: application/json');
|
json_response('danger', 'Please click on the reCAPTCHA box.');
|
||||||
|
}
|
||||||
echo $encoded;
|
|
||||||
}
|
$c = curl_init('https://www.google.com/recaptcha/api/siteverify?secret=' . $recaptchaSecret . '&response=' . $recaptchaResponse);
|
||||||
else {
|
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
|
||||||
echo $responseArray['message'];
|
$verifyResponse = curl_exec($c);
|
||||||
}
|
$responseData = json_decode($verifyResponse);
|
||||||
|
if (!$responseData || empty($responseData->success)) {
|
||||||
else:
|
$sendError = 'recaptcha_failed';
|
||||||
$errorMessage = 'Robot verification failed, please try again.';
|
$updateStmt = $pdo->prepare('UPDATE contact_messages SET send_status = ?, send_error = ? WHERE id = ?');
|
||||||
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
|
$updateStmt->execute([$sendStatus, $sendError, $messageId]);
|
||||||
$encoded = json_encode($responseArray);
|
json_response('danger', 'Robot verification failed, please try again.');
|
||||||
|
}
|
||||||
header('Content-Type: application/json');
|
}
|
||||||
|
|
||||||
echo $encoded;
|
try {
|
||||||
endif;
|
$emailText = nl2br("You have new message from Contact Form\n");
|
||||||
else:
|
|
||||||
$errorMessage = 'Please click on the reCAPTCHA box.';
|
foreach (['name' => $name, 'email' => $email, 'subject' => $userSubject, 'message' => $message] as $key => $value) {
|
||||||
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
|
if (isset($fields[$key])) {
|
||||||
$encoded = json_encode($responseArray);
|
$emailText .= nl2br($fields[$key] . ': ' . $value . "\n");
|
||||||
|
}
|
||||||
header('Content-Type: application/json');
|
}
|
||||||
|
|
||||||
echo $encoded;
|
$headers = array(
|
||||||
endif;
|
'Content-Type: text/html; charset="UTF-8"',
|
||||||
|
'From: ' . $emailFrom,
|
||||||
|
'Reply-To: ' . $email,
|
||||||
|
'Return-Path: ' . $emailFrom,
|
||||||
|
);
|
||||||
|
|
||||||
|
$sent = mail($emailTo, $subject, $emailText, implode("\n", $headers));
|
||||||
|
|
||||||
|
if ($sent) {
|
||||||
|
$sendStatus = 'sent';
|
||||||
|
$sentAt = date('Y-m-d H:i:s');
|
||||||
|
} else {
|
||||||
|
$sendError = 'mail_failed';
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$sendError = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$updateStmt = $pdo->prepare('UPDATE contact_messages SET send_status = ?, send_error = ?, sent_at = ? WHERE id = ?');
|
||||||
|
$updateStmt->execute([$sendStatus, $sendError, $sentAt, $messageId]);
|
||||||
|
|
||||||
|
if ($sendStatus === 'sent') {
|
||||||
|
json_response('success', $okMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
json_response('danger', $errorMessage);
|
||||||
|
|||||||
@@ -0,0 +1,809 @@
|
|||||||
|
<?php
|
||||||
|
require __DIR__ . '/config/db.php';
|
||||||
|
|
||||||
|
$profileId = 1;
|
||||||
|
|
||||||
|
$profileStmt = $pdo->prepare('SELECT * FROM profile WHERE id = ? AND is_active = 1 LIMIT 1');
|
||||||
|
$profileStmt->execute([$profileId]);
|
||||||
|
$profile = $profileStmt->fetch();
|
||||||
|
|
||||||
|
$rolesStmt = $pdo->prepare('SELECT role_title FROM profile_roles WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$rolesStmt->execute([$profileId]);
|
||||||
|
$roles = $rolesStmt->fetchAll();
|
||||||
|
|
||||||
|
$menuItems = $pdo->query('SELECT label, anchor, icon_class FROM menu_items WHERE is_active = 1 ORDER BY sort_order, id')->fetchAll();
|
||||||
|
|
||||||
|
$socialLinksStmt = $pdo->prepare('SELECT label, icon_class, url FROM social_links WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$socialLinksStmt->execute([$profileId]);
|
||||||
|
$socialLinks = $socialLinksStmt->fetchAll();
|
||||||
|
|
||||||
|
$aboutStmt = $pdo->prepare('SELECT description FROM about_me WHERE profile_id = ? AND is_active = 1 LIMIT 1');
|
||||||
|
$aboutStmt->execute([$profileId]);
|
||||||
|
$about = $aboutStmt->fetch();
|
||||||
|
|
||||||
|
$personalInfoStmt = $pdo->prepare('SELECT label, value FROM personal_info_items WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$personalInfoStmt->execute([$profileId]);
|
||||||
|
$personalInfo = $personalInfoStmt->fetchAll();
|
||||||
|
|
||||||
|
$servicesStmt = $pdo->prepare('SELECT icon_class, title, description FROM services WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$servicesStmt->execute([$profileId]);
|
||||||
|
$services = $servicesStmt->fetchAll();
|
||||||
|
|
||||||
|
$testimonialsStmt = $pdo->prepare('SELECT author_name, company, photo_url, quote FROM testimonials WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$testimonialsStmt->execute([$profileId]);
|
||||||
|
$testimonials = $testimonialsStmt->fetchAll();
|
||||||
|
|
||||||
|
$clientsStmt = $pdo->prepare('SELECT name, logo_url, website_url FROM clients WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$clientsStmt->execute([$profileId]);
|
||||||
|
$clients = $clientsStmt->fetchAll();
|
||||||
|
|
||||||
|
$pricingPlansStmt = $pdo->prepare('SELECT id, name, price, billing_period, is_featured, button_label, button_url FROM pricing_plans WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$pricingPlansStmt->execute([$profileId]);
|
||||||
|
$pricingPlans = $pricingPlansStmt->fetchAll();
|
||||||
|
|
||||||
|
$pricingFeaturesStmt = $pdo->query('SELECT pricing_plan_id, feature_text FROM pricing_features WHERE is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$pricingFeaturesRaw = $pricingFeaturesStmt->fetchAll();
|
||||||
|
$pricingFeatures = [];
|
||||||
|
foreach ($pricingFeaturesRaw as $row) {
|
||||||
|
$pricingFeatures[(int) $row['pricing_plan_id']][] = $row['feature_text'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$funFactsStmt = $pdo->prepare('SELECT icon_class, title, value FROM fun_facts WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$funFactsStmt->execute([$profileId]);
|
||||||
|
$funFacts = $funFactsStmt->fetchAll();
|
||||||
|
|
||||||
|
$educationStmt = $pdo->prepare('SELECT period_label, institution, degree_title, description FROM education WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$educationStmt->execute([$profileId]);
|
||||||
|
$education = $educationStmt->fetchAll();
|
||||||
|
|
||||||
|
$experienceStmt = $pdo->prepare('SELECT period_label, company, role_title, description FROM experience WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$experienceStmt->execute([$profileId]);
|
||||||
|
$experience = $experienceStmt->fetchAll();
|
||||||
|
|
||||||
|
$skillsStmt = $pdo->prepare('SELECT skill_type, name, proficiency FROM skills WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$skillsStmt->execute([$profileId]);
|
||||||
|
$skillsRaw = $skillsStmt->fetchAll();
|
||||||
|
$skills = ['design' => [], 'coding' => []];
|
||||||
|
foreach ($skillsRaw as $row) {
|
||||||
|
$type = $row['skill_type'];
|
||||||
|
if (!isset($skills[$type])) {
|
||||||
|
$skills[$type] = [];
|
||||||
|
}
|
||||||
|
$skills[$type][] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
$knowledgesStmt = $pdo->prepare('SELECT name FROM knowledges WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$knowledgesStmt->execute([$profileId]);
|
||||||
|
$knowledges = $knowledgesStmt->fetchAll();
|
||||||
|
|
||||||
|
$certificatesStmt = $pdo->prepare('SELECT title, membership_id, date_label, company, logo_url FROM certificates WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$certificatesStmt->execute([$profileId]);
|
||||||
|
$certificates = $certificatesStmt->fetchAll();
|
||||||
|
|
||||||
|
$portfolioCategories = $pdo->query('SELECT id, name, slug FROM portfolio_categories WHERE is_active = 1 ORDER BY sort_order, id')->fetchAll();
|
||||||
|
|
||||||
|
$portfolioCategoryMap = [];
|
||||||
|
foreach ($portfolioCategories as $cat) {
|
||||||
|
$portfolioCategoryMap[$cat['slug']] = $cat['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$portfolioItemsStmt = $pdo->prepare('SELECT id, title, item_type, thumb_url, link_url, icon_class FROM portfolio_items WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$portfolioItemsStmt->execute([$profileId]);
|
||||||
|
$portfolioItems = $portfolioItemsStmt->fetchAll();
|
||||||
|
|
||||||
|
$portfolioItemCategoriesStmt = $pdo->query('SELECT pic.portfolio_item_id, pc.slug FROM portfolio_item_categories pic JOIN portfolio_categories pc ON pc.id = pic.portfolio_category_id WHERE pc.is_active = 1');
|
||||||
|
$portfolioItemCategoriesRaw = $portfolioItemCategoriesStmt->fetchAll();
|
||||||
|
$portfolioItemCategories = [];
|
||||||
|
foreach ($portfolioItemCategoriesRaw as $row) {
|
||||||
|
$portfolioItemCategories[(int) $row['portfolio_item_id']][] = $row['slug'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$blogPostsStmt = $pdo->prepare('SELECT bp.title, bp.slug, bp.cover_image_url, bp.published_date, bc.name AS category_name FROM blog_posts bp JOIN blog_categories bc ON bc.id = bp.category_id WHERE bp.profile_id = ? AND bp.is_active = 1 ORDER BY bp.published_date DESC, bp.id DESC');
|
||||||
|
$blogPostsStmt->execute([$profileId]);
|
||||||
|
$blogPosts = $blogPostsStmt->fetchAll();
|
||||||
|
|
||||||
|
$contactInfoStmt = $pdo->prepare('SELECT label, value, icon_class FROM contact_info WHERE profile_id = ? AND is_active = 1 ORDER BY sort_order, id');
|
||||||
|
$contactInfoStmt->execute([$profileId]);
|
||||||
|
$contactInfo = $contactInfoStmt->fetchAll();
|
||||||
|
|
||||||
|
$contactMetaStmt = $pdo->prepare('SELECT location_label, map_iframe_url, availability_label, recaptcha_site_key FROM contact_meta WHERE profile_id = ? AND is_active = 1 LIMIT 1');
|
||||||
|
$contactMetaStmt->execute([$profileId]);
|
||||||
|
$contactMeta = $contactMetaStmt->fetch();
|
||||||
|
|
||||||
|
function e($value)
|
||||||
|
{
|
||||||
|
return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8');
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" class="no-js">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>BreezyCV - Resume / CV / vCard Template</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
||||||
|
<meta name="description" content="BreezyCV - Resume / CV / vCard Template" />
|
||||||
|
<meta name="keywords" content="vcard, resposnive, retina, resume, jquery, css3, bootstrap, Material CV, portfolio" />
|
||||||
|
<meta name="author" content="lmpixels" />
|
||||||
|
<link rel="shortcut icon" href="favicon.ico">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="css/reset.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/bootstrap-grid.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/animations.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/perfect-scrollbar.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/owl.carousel.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/magnific-popup.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="css/main.css" type="text/css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- Animated Background -->
|
||||||
|
<div class="lm-animated-bg" style="background-image: url(img/main_bg.png);"></div>
|
||||||
|
<!-- /Animated Background -->
|
||||||
|
|
||||||
|
<!-- Loading animation -->
|
||||||
|
<div class="preloader">
|
||||||
|
<div class="preloader-animation">
|
||||||
|
<div class="preloader-spinner">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /Loading animation -->
|
||||||
|
|
||||||
|
<div class="page">
|
||||||
|
<div class="page-content">
|
||||||
|
|
||||||
|
<header id="site_header" class="header mobile-menu-hide">
|
||||||
|
<div class="header-content">
|
||||||
|
<div class="header-photo">
|
||||||
|
<img src="<?php echo e($profile['photo_url'] ?? 'img/main_photo.jpg'); ?>" alt="<?php echo e($profile['full_name'] ?? 'Profile'); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="header-titles">
|
||||||
|
<h2><?php echo e($profile['full_name'] ?? ''); ?></h2>
|
||||||
|
<h4><?php echo e($profile['headline'] ?? ''); ?></h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="main-menu">
|
||||||
|
<?php foreach ($menuItems as $index => $item): ?>
|
||||||
|
<li<?php echo $index === 0 ? ' class="active"' : ''; ?>>
|
||||||
|
<a href="#<?php echo e($item['anchor']); ?>" class="nav-anim">
|
||||||
|
<span class="menu-icon <?php echo e($item['icon_class']); ?>"></span>
|
||||||
|
<span class="link-text"><?php echo e($item['label']); ?></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="social-links">
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($socialLinks as $link): ?>
|
||||||
|
<li><a href="<?php echo e($link['url']); ?>" target="_blank"><i class="<?php echo e($link['icon_class']); ?>"></i></a></li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header-buttons">
|
||||||
|
<a href="<?php echo e($profile['cv_url'] ?: '#'); ?>" target="_blank" class="btn btn-primary">Download CV</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="copyrights">© 2020 All rights reserved.</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Mobile Navigation -->
|
||||||
|
<div class="menu-toggle">
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
</div>
|
||||||
|
<!-- End Mobile Navigation -->
|
||||||
|
|
||||||
|
<!-- Arrows Nav -->
|
||||||
|
<div class="lmpixels-arrows-nav">
|
||||||
|
<div class="lmpixels-arrow-right"><i class="lnr lnr-chevron-right"></i></div>
|
||||||
|
<div class="lmpixels-arrow-left"><i class="lnr lnr-chevron-left"></i></div>
|
||||||
|
</div>
|
||||||
|
<!-- End Arrows Nav -->
|
||||||
|
|
||||||
|
<div class="content-area">
|
||||||
|
<div class="animated-sections">
|
||||||
|
<!-- Home Subpage -->
|
||||||
|
<section data-id="home" class="animated-section start-page">
|
||||||
|
<div class="section-content vcentered">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
||||||
|
<div class="title-block">
|
||||||
|
<h2><?php echo e($profile['full_name'] ?? ''); ?></h2>
|
||||||
|
<div class="owl-carousel text-rotation">
|
||||||
|
<?php foreach ($roles as $role): ?>
|
||||||
|
<div class="item">
|
||||||
|
<div class="sp-subtitle"><?php echo e($role['role_title']); ?></div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- End of Home Subpage -->
|
||||||
|
|
||||||
|
<!-- About Me Subpage -->
|
||||||
|
<section data-id="about-me" class="animated-section">
|
||||||
|
<div class="section-content">
|
||||||
|
<div class="page-title">
|
||||||
|
<h2>About <span>Me</span></h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Personal Information -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-7">
|
||||||
|
<p><?php echo e($about['description'] ?? ''); ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-sm-5">
|
||||||
|
<div class="info-list">
|
||||||
|
<ul>
|
||||||
|
<?php foreach ($personalInfo as $info): ?>
|
||||||
|
<li>
|
||||||
|
<span class="title"><?php echo e($info['label']); ?></span>
|
||||||
|
<span class="value"><?php echo e($info['value']); ?></span>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End of Personal Information -->
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<!-- Services -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>What <span>I Do</span></h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?php
|
||||||
|
$serviceChunks = array_chunk($services, 2);
|
||||||
|
foreach ($serviceChunks as $chunk):
|
||||||
|
?>
|
||||||
|
<div class="col-xs-12 col-sm-6">
|
||||||
|
<div class="col-inner">
|
||||||
|
<div class="info-list-w-icon">
|
||||||
|
<?php foreach ($chunk as $service): ?>
|
||||||
|
<div class="info-block-w-icon">
|
||||||
|
<div class="ci-icon">
|
||||||
|
<i class="<?php echo e($service['icon_class']); ?>"></i>
|
||||||
|
</div>
|
||||||
|
<div class="ci-text">
|
||||||
|
<h4><?php echo e($service['title']); ?></h4>
|
||||||
|
<p><?php echo e($service['description']); ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Services -->
|
||||||
|
|
||||||
|
<div class="white-space-30"></div>
|
||||||
|
|
||||||
|
<!-- Testimonials -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Testimonials</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="testimonials owl-carousel">
|
||||||
|
<?php foreach ($testimonials as $testimonial): ?>
|
||||||
|
<div class="testimonial">
|
||||||
|
<div class="img">
|
||||||
|
<img src="<?php echo e($testimonial['photo_url']); ?>" alt="<?php echo e($testimonial['author_name']); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
<p><?php echo e($testimonial['quote']); ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="author-info">
|
||||||
|
<h4 class="author"><?php echo e($testimonial['author_name']); ?></h4>
|
||||||
|
<h5 class="company"><?php echo e($testimonial['company']); ?></h5>
|
||||||
|
<div class="icon">
|
||||||
|
<i class="fas fa-quote-right"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End of Testimonials -->
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<!-- Clients -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Cilents</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="clients owl-carousel">
|
||||||
|
<?php foreach ($clients as $client): ?>
|
||||||
|
<div class="client-block">
|
||||||
|
<a href="<?php echo e($client['website_url'] ?: '#'); ?>" target="_blank" title="<?php echo e($client['name']); ?>">
|
||||||
|
<img src="<?php echo e($client['logo_url']); ?>" alt="<?php echo e($client['name']); ?>">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End of Clients -->
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<!-- Pricing -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Pricing</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class=" col-xs-12 col-sm-12 ">
|
||||||
|
<div class="fw-pricing clearfix row">
|
||||||
|
<?php foreach ($pricingPlans as $plan): ?>
|
||||||
|
<div class="fw-package-wrap col-md-6 <?php echo $plan['is_featured'] ? 'highlight-col ' : ''; ?>">
|
||||||
|
<div class="fw-package">
|
||||||
|
<div class="fw-heading-row">
|
||||||
|
<span><?php echo e($plan['name']); ?></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fw-pricing-row">
|
||||||
|
<span>$<?php echo e($plan['price']); ?></span>
|
||||||
|
<small><?php echo e($plan['billing_period']); ?></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fw-button-row">
|
||||||
|
<a href="<?php echo e($plan['button_url'] ?: '#'); ?>" target="_self" class="btn <?php echo $plan['is_featured'] ? 'btn-primary' : 'btn-secondary'; ?>"><?php echo e($plan['button_label'] ?: 'Free Trial'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php foreach ($pricingFeatures[$plan['id']] ?? [] as $feature): ?>
|
||||||
|
<div class="fw-default-row"><?php echo e($feature); ?></div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php if (empty($pricingFeatures[$plan['id']] ?? [])): ?>
|
||||||
|
<div class="fw-default-row"></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End of Pricing -->
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<!-- Fun Facts -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Fun <span>Facts</span></h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?php foreach ($funFacts as $fact): ?>
|
||||||
|
<div class="col-xs-12 col-sm-4">
|
||||||
|
<div class="fun-fact gray-default">
|
||||||
|
<i class="<?php echo e($fact['icon_class']); ?>"></i>
|
||||||
|
<h4><?php echo e($fact['title']); ?></h4>
|
||||||
|
<span class="fun-fact-block-value"><?php echo e($fact['value']); ?></span>
|
||||||
|
<span class="fun-fact-block-text"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Fun Facts -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- End of About Me Subpage -->
|
||||||
|
|
||||||
|
<!-- Resume Subpage -->
|
||||||
|
<section data-id="resume" class="animated-section">
|
||||||
|
<div class="section-content">
|
||||||
|
<div class="page-title">
|
||||||
|
<h2>Resume</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-7">
|
||||||
|
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Education</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="timeline timeline-second-style clearfix">
|
||||||
|
<?php foreach ($education as $item): ?>
|
||||||
|
<div class="timeline-item clearfix">
|
||||||
|
<div class="left-part">
|
||||||
|
<h5 class="item-period"><?php echo e($item['period_label']); ?></h5>
|
||||||
|
<span class="item-company"><?php echo e($item['institution']); ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
<div class="right-part">
|
||||||
|
<h4 class="item-title"><?php echo e($item['degree_title']); ?></h4>
|
||||||
|
<p><?php echo e($item['description']); ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Experience</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="timeline timeline-second-style clearfix">
|
||||||
|
<?php foreach ($experience as $item): ?>
|
||||||
|
<div class="timeline-item clearfix">
|
||||||
|
<div class="left-part">
|
||||||
|
<h5 class="item-period"><?php echo e($item['period_label']); ?></h5>
|
||||||
|
<span class="item-company"><?php echo e($item['company']); ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
<div class="right-part">
|
||||||
|
<h4 class="item-title"><?php echo e($item['role_title']); ?></h4>
|
||||||
|
<p><?php echo e($item['description']); ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Skills & Certificates -->
|
||||||
|
<div class="col-xs-12 col-sm-5">
|
||||||
|
<!-- Design Skills -->
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Design <span>Skills</span></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="skills-info skills-second-style">
|
||||||
|
<?php $skillIndex = 1; ?>
|
||||||
|
<?php foreach ($skills['design'] ?? [] as $skill): ?>
|
||||||
|
<div class="skill clearfix">
|
||||||
|
<h4><?php echo e($skill['name']); ?></h4>
|
||||||
|
<div class="skill-value"><?php echo e($skill['proficiency']); ?>%</div>
|
||||||
|
</div>
|
||||||
|
<div class="skill-container skill-<?php echo $skillIndex; ?>">
|
||||||
|
<div class="skill-percentage"></div>
|
||||||
|
</div>
|
||||||
|
<?php $skillIndex++; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Design Skills -->
|
||||||
|
|
||||||
|
<div class="white-space-10"></div>
|
||||||
|
|
||||||
|
<!-- Coding Skills -->
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Coding <span>Skills</span></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="skills-info skills-second-style">
|
||||||
|
<?php foreach ($skills['coding'] ?? [] as $skill): ?>
|
||||||
|
<div class="skill clearfix">
|
||||||
|
<h4><?php echo e($skill['name']); ?></h4>
|
||||||
|
<div class="skill-value"><?php echo e($skill['proficiency']); ?>%</div>
|
||||||
|
</div>
|
||||||
|
<div class="skill-container skill-<?php echo $skillIndex; ?>">
|
||||||
|
<div class="skill-percentage"></div>
|
||||||
|
</div>
|
||||||
|
<?php $skillIndex++; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Coding Skills -->
|
||||||
|
|
||||||
|
<div class="white-space-10"></div>
|
||||||
|
|
||||||
|
<!-- Knowledges -->
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Knowledges</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="knowledges">
|
||||||
|
<?php foreach ($knowledges as $knowledge): ?>
|
||||||
|
<li><?php echo e($knowledge['name']); ?></li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
<!-- End of Knowledges -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Skills & Certificates -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="white-space-50"></div>
|
||||||
|
|
||||||
|
<!-- Certificates -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>Certificates</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?php foreach ($certificates as $cert): ?>
|
||||||
|
<div class="col-xs-12 col-sm-6">
|
||||||
|
<div class="certificate-item clearfix">
|
||||||
|
<div class="certi-logo">
|
||||||
|
<img src="<?php echo e($cert['logo_url']); ?>" alt="logo">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="certi-content">
|
||||||
|
<div class="certi-title">
|
||||||
|
<h4><?php echo e($cert['title']); ?></h4>
|
||||||
|
</div>
|
||||||
|
<div class="certi-id">
|
||||||
|
<span><?php echo e($cert['membership_id']); ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="certi-date">
|
||||||
|
<span><?php echo e($cert['date_label']); ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="certi-company">
|
||||||
|
<span><?php echo e($cert['company']); ?></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Certificates -->
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- End of Resume Subpage -->
|
||||||
|
|
||||||
|
<!-- Portfolio Subpage -->
|
||||||
|
<section data-id="portfolio" class="animated-section">
|
||||||
|
<div class="section-content">
|
||||||
|
<div class="page-title">
|
||||||
|
<h2>Portfolio</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<!-- Portfolio Content -->
|
||||||
|
<div class="portfolio-content">
|
||||||
|
|
||||||
|
<ul class="portfolio-filters">
|
||||||
|
<?php foreach ($portfolioCategories as $index => $cat): ?>
|
||||||
|
<li<?php echo $index === 0 ? ' class="active"' : ''; ?>>
|
||||||
|
<a class="filter btn btn-sm btn-link" data-group="<?php echo e($cat['slug']); ?>"><?php echo e($cat['name']); ?></a>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- Portfolio Grid -->
|
||||||
|
<div class="portfolio-grid three-columns">
|
||||||
|
<?php foreach ($portfolioItems as $item): ?>
|
||||||
|
<?php
|
||||||
|
$itemId = (int) $item['id'];
|
||||||
|
$groups = $portfolioItemCategories[$itemId] ?? [];
|
||||||
|
if (!in_array('category_all', $groups, true)) {
|
||||||
|
array_unshift($groups, 'category_all');
|
||||||
|
}
|
||||||
|
$groupJson = e(json_encode($groups));
|
||||||
|
$type = $item['item_type'];
|
||||||
|
$figureClass = 'standard';
|
||||||
|
$linkClass = 'ajax-page-load';
|
||||||
|
if ($type === 'audio') {
|
||||||
|
$figureClass = 'lbaudio';
|
||||||
|
$linkClass = 'lightbox mfp-iframe';
|
||||||
|
} elseif ($type === 'video') {
|
||||||
|
$figureClass = 'lbvideo';
|
||||||
|
$linkClass = 'lightbox mfp-iframe';
|
||||||
|
} elseif ($type === 'image') {
|
||||||
|
$figureClass = 'lbimage';
|
||||||
|
$linkClass = 'lightbox';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<figure class="item <?php echo e($figureClass); ?>" data-groups='<?php echo $groupJson; ?>'>
|
||||||
|
<div class="portfolio-item-img">
|
||||||
|
<img src="<?php echo e($item['thumb_url']); ?>" alt="<?php echo e($item['title']); ?>" title="" />
|
||||||
|
<a href="<?php echo e($item['link_url']); ?>" class="<?php echo e($linkClass); ?>" title="<?php echo e($item['title']); ?>"></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<i class="<?php echo e($item['icon_class']); ?>"></i>
|
||||||
|
<h4 class="name"><?php echo e($item['title']); ?></h4>
|
||||||
|
<?php
|
||||||
|
$categoryLabels = array_values(array_filter($groups, function ($slug) {
|
||||||
|
return $slug !== 'category_all';
|
||||||
|
}));
|
||||||
|
$displayCategory = '';
|
||||||
|
if (!empty($categoryLabels)) {
|
||||||
|
$first = $categoryLabels[0];
|
||||||
|
$displayCategory = $portfolioCategoryMap[$first] ?? $first;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<span class="category"><?php echo e($displayCategory); ?></span>
|
||||||
|
</figure>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End of Portfolio Content -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- End of Portfolio Subpage -->
|
||||||
|
|
||||||
|
<!-- Blog Subpage -->
|
||||||
|
<section data-id="blog" class="animated-section">
|
||||||
|
<div class="section-content">
|
||||||
|
<div class="page-title">
|
||||||
|
<h2>Blog</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12">
|
||||||
|
<div class="blog-masonry two-columns clearfix">
|
||||||
|
<?php foreach ($blogPosts as $index => $post): ?>
|
||||||
|
<div class="item post-<?php echo $index % 2 === 0 ? '1' : '2'; ?>">
|
||||||
|
<div class="blog-card">
|
||||||
|
<div class="media-block">
|
||||||
|
<div class="category">
|
||||||
|
<a href="#" title="View all posts in <?php echo e($post['category_name']); ?>"><?php echo e($post['category_name']); ?></a>
|
||||||
|
</div>
|
||||||
|
<a href="blog-post-1.html">
|
||||||
|
<img src="<?php echo e($post['cover_image_url']); ?>" class="size-blog-masonry-image-two-c" alt="<?php echo e($post['title']); ?>" title="" />
|
||||||
|
<div class="mask"></div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="post-info">
|
||||||
|
<div class="post-date"><?php echo e($post['published_date'] ? date('d M Y', strtotime($post['published_date'])) : ''); ?></div>
|
||||||
|
<a href="blog-post-1.html">
|
||||||
|
<h4 class="blog-item-title"><?php echo e($post['title']); ?></h4>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<!-- End of Blog Subpage -->
|
||||||
|
|
||||||
|
<!-- Contact Subpage -->
|
||||||
|
<section data-id="contact" class="animated-section">
|
||||||
|
<div class="section-content">
|
||||||
|
<div class="page-title">
|
||||||
|
<h2>Contact</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<!-- Contact Info -->
|
||||||
|
<div class="col-xs-12 col-sm-4">
|
||||||
|
<?php foreach ($contactInfo as $info): ?>
|
||||||
|
<div class="lm-info-block gray-default">
|
||||||
|
<i class="<?php echo e($info['icon_class']); ?>"></i>
|
||||||
|
<h4><?php echo e($info['label']); ?></h4>
|
||||||
|
<span class="lm-info-block-value"><?php echo e($info['value']); ?></span>
|
||||||
|
<span class="lm-info-block-text"></span>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<!-- End of Contact Info -->
|
||||||
|
|
||||||
|
<!-- Contact Form -->
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<div class="lmpixels-map">
|
||||||
|
<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="<?php echo e($contactMeta['map_iframe_url'] ?? ''); ?>"></iframe>
|
||||||
|
</div>
|
||||||
|
<div class="block-title">
|
||||||
|
<h3>How Can I <span>Help You?</span></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form id="contact_form" class="contact-form" action="contact_form/contact_form.php" method="post">
|
||||||
|
|
||||||
|
<div class="messages"></div>
|
||||||
|
|
||||||
|
<div class="controls two-columns">
|
||||||
|
<div class="fields clearfix">
|
||||||
|
<div class="left-column">
|
||||||
|
<div class="form-group form-group-with-icon">
|
||||||
|
<input id="form_name" type="text" name="name" class="form-control" placeholder="" required="required" data-error="Name is required.">
|
||||||
|
<label>Full Name</label>
|
||||||
|
<div class="form-control-border"></div>
|
||||||
|
<div class="help-block with-errors"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group form-group-with-icon">
|
||||||
|
<input id="form_email" type="email" name="email" class="form-control" placeholder="" required="required" data-error="Valid email is required.">
|
||||||
|
<label>Email Address</label>
|
||||||
|
<div class="form-control-border"></div>
|
||||||
|
<div class="help-block with-errors"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group form-group-with-icon">
|
||||||
|
<input id="form_subject" type="text" name="subject" class="form-control" placeholder="" required="required" data-error="Subject is required.">
|
||||||
|
<label>Subject</label>
|
||||||
|
<div class="form-control-border"></div>
|
||||||
|
<div class="help-block with-errors"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-column">
|
||||||
|
<div class="form-group form-group-with-icon">
|
||||||
|
<textarea id="form_message" name="message" class="form-control" placeholder="" rows="7" required="required" data-error="Please, leave me a message."></textarea>
|
||||||
|
<label>Message</label>
|
||||||
|
<div class="form-control-border"></div>
|
||||||
|
<div class="help-block with-errors"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="g-recaptcha" data-sitekey="<?php echo e($contactMeta['recaptcha_site_key'] ?? ''); ?>" data-theme="dark"></div>
|
||||||
|
|
||||||
|
<input type="submit" class="button btn-send" value="Send message">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<!-- End of Contact Form -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- End of Contact Subpage -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="js/jquery.min.js"></script>
|
||||||
|
<script src="js/modernizr.custom.js"></script>
|
||||||
|
<script src="js/animating.js"></script>
|
||||||
|
|
||||||
|
<script src="js/imagesloaded.pkgd.min.js"></script>
|
||||||
|
<script src='https://www.google.com/recaptcha/api.js'></script>
|
||||||
|
|
||||||
|
<script src='js/perfect-scrollbar.min.js'></script>
|
||||||
|
<script src='js/jquery.shuffle.min.js'></script>
|
||||||
|
<script src='js/masonry.pkgd.min.js'></script>
|
||||||
|
<script src='js/owl.carousel.min.js'></script>
|
||||||
|
<script src="js/jquery.magnific-popup.min.js"></script>
|
||||||
|
|
||||||
|
<script src="js/validator.js"></script>
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user