view controller rendering working

This commit is contained in:
overplayed 2025-02-02 13:14:24 -05:00
parent 6e83b15ace
commit 15908dc7b0
30 changed files with 229 additions and 448 deletions

View File

@ -35,7 +35,7 @@ class EmergencySupportController
];
Logger::debug("EmergencySupportController::index() - Data prepared successfully.");
View::render('pages/emergency_support', $data);
View::render('pages/services/emergency_support', $data);
Logger::info("EmergencySupportController::index() - Emergency support page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("EmergencySupportController::index() - Error rendering emergency support page: " . $e->getMessage());

View File

@ -35,7 +35,7 @@ class ITConsultingController
];
Logger::debug("ITConsultingController::index() - Data prepared successfully.");
View::render('pages/it_consulting', $data);
View::render('pages/services/it_consulting', $data);
Logger::info("ITConsultingController::index() - IT consulting page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ITConsultingController::index() - Error rendering IT consulting page: " . $e->getMessage());

View File

@ -5,11 +5,11 @@ use WizdomNetworks\WizeWeb\Core\View;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
class ManagedHostingController
class ManagedServicesController
{
public function index()
{
Logger::debug("ManagedHostingController::index() - Executing managed hosting page rendering.");
Logger::debug("ManagedServicesController::index() - Executing managed hosting page rendering.");
try {
$data = [
@ -34,11 +34,11 @@ class ManagedHostingController
]
];
Logger::debug("ManagedHostingController::index() - Data prepared successfully.");
View::render('pages/managed_hosting', $data);
Logger::info("ManagedHostingController::index() - Managed hosting page rendered successfully.");
Logger::debug("ManagedServicesController::index() - Data prepared successfully.");
View::render('pages/services/managed_services', $data);
Logger::info("ManagedServicesController::index() - Managed hosting page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ManagedHostingController::index() - Error rendering managed hosting page: " . $e->getMessage());
Logger::error("ManagedServicesController::index() - Error rendering managed hosting page: " . $e->getMessage());
ErrorHandler::exception($e);
}
}

View File

@ -35,7 +35,7 @@ class OnlineBrandManagementController
];
Logger::debug("OnlineBrandManagementController::index() - Data prepared successfully.");
View::render('pages/online_brand_management', $data);
View::render('pages/services/online_brand_management', $data);
Logger::info("OnlineBrandManagementController::index() - Online brand management page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("OnlineBrandManagementController::index() - Error rendering online brand management page: " . $e->getMessage());

View File

@ -35,7 +35,7 @@ class ProjectManagementController
];
Logger::debug("ProjectManagementController::index() - Data prepared successfully.");
View::render('pages/project_management', $data);
View::render('pages/services/project_management', $data);
Logger::info("ProjectManagementController::index() - Project management page rendered successfully.");
} catch (\Throwable $e) {
Logger::error("ProjectManagementController::index() - Error rendering project management page: " . $e->getMessage());

View File

@ -27,13 +27,13 @@ class View
extract($data);
// Build the full path to the view file
$viewPath = __DIR__ . "/../../resources/views/$view.php";
$viewPath = realpath(__DIR__ . "/../../resources/views/" . str_replace('.', '/', $view) . ".php");
// Debugging: Log resolved path
Logger::debug("Resolved view path: $viewPath");
// Check if the file exists before including it
if (file_exists($viewPath)) {
// Validate and include the view file
if ($viewPath && file_exists($viewPath)) {
include $viewPath;
Logger::debug("Successfully rendered view: $view");
} else {

View File

@ -1,45 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Emergency Support Service
*
* Handles business logic related to emergency IT support services.
*/
class EmergencySupportService
{
/**
* Provide emergency support service details.
*
* @return array Details of the emergency support service.
*/
public function getServiceDetails(): array
{
try {
Logger::info("[DEBUG] Fetching emergency support service details");
$details = [
'name' => 'Emergency Support',
'description' => 'Round-the-clock emergency IT support for critical issues.',
'features' => [
'24/7 availability',
'Rapid response',
'Critical system recovery',
],
'price' => 'Custom pricing based on severity and scope',
];
Logger::info("[DEBUG] Retrieved emergency support service details: " . json_encode($details));
return $details;
} catch (\Exception $e) {
Logger::error("[ERROR] Failed to fetch emergency support service details: " . $e->getMessage());
ErrorHandler::exception($e);
return [];
}
}
}

View File

@ -1,8 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
class HelpDeskService
{
// Placeholder for future implementation
}

View File

@ -1,45 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* IT Consulting Service
*
* Handles business logic related to IT consulting services.
*/
class ITConsultingService
{
/**
* Provide IT consulting service details.
*
* @return array Details of the IT consulting service.
*/
public function getServiceDetails(): array
{
try {
Logger::info("[DEBUG] Fetching IT consulting service details");
$details = [
'name' => 'IT Consulting',
'description' => 'Expert IT consulting services to drive your business forward.',
'features' => [
'Infrastructure planning',
'Cloud integration',
'Technology strategy',
],
'price' => 'Custom pricing based on requirements',
];
Logger::info("[DEBUG] Retrieved IT consulting service details: " . json_encode($details));
return $details;
} catch (\Exception $e) {
Logger::error("[ERROR] Failed to fetch IT consulting service details: " . $e->getMessage());
ErrorHandler::exception($e);
return [];
}
}
}

View File

@ -1,45 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Managed Hosting Service
*
* Handles business logic related to managed hosting services.
*/
class ManagedHostingService
{
/**
* Provide managed hosting service details.
*
* @return array Details of the managed hosting service.
*/
public function getServiceDetails(): array
{
try {
Logger::info("[DEBUG] Fetching managed hosting service details");
$details = [
'name' => 'Managed Hosting',
'description' => 'Comprehensive managed hosting services to keep your business online.',
'features' => [
'Server management',
'Performance optimization',
'Data backups and recovery',
],
'price' => 'Custom pricing based on hosting requirements',
];
Logger::info("[DEBUG] Retrieved managed hosting service details: " . json_encode($details));
return $details;
} catch (\Exception $e) {
Logger::error("[ERROR] Failed to fetch managed hosting service details: " . $e->getMessage());
ErrorHandler::exception($e);
return [];
}
}
}

View File

@ -1,45 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Online Brand Management Service
*
* Handles business logic related to online brand management services.
*/
class OnlineBrandManagementService
{
/**
* Provide online brand management service details.
*
* @return array Details of the online brand management service.
*/
public function getServiceDetails(): array
{
try {
Logger::info("[DEBUG] Fetching online brand management service details");
$details = [
'name' => 'Online Brand Management',
'description' => 'Strategic online brand management to enhance your digital presence.',
'features' => [
'Social media management',
'Reputation monitoring',
'Content strategy',
],
'price' => 'Custom pricing based on campaign requirements',
];
Logger::info("[DEBUG] Retrieved online brand management service details: " . json_encode($details));
return $details;
} catch (\Exception $e) {
Logger::error("[ERROR] Failed to fetch online brand management service details: " . $e->getMessage());
ErrorHandler::exception($e);
return [];
}
}
}

View File

@ -1,45 +0,0 @@
<?php
namespace WizdomNetworks\WizeWeb\Services;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Project Management Service
*
* Handles business logic related to project management services.
*/
class ProjectManagementService
{
/**
* Provide project management service details.
*
* @return array Details of the project management service.
*/
public function getServiceDetails(): array
{
try {
Logger::info("[DEBUG] Fetching project management service details");
$details = [
'name' => 'Project Management',
'description' => 'Professional project management to ensure success from start to finish.',
'features' => [
'Planning and scheduling',
'Resource allocation',
'Risk management',
],
'price' => 'Custom pricing based on project scope',
];
Logger::info("[DEBUG] Retrieved project management service details: " . json_encode($details));
return $details;
} catch (\Exception $e) {
Logger::error("[ERROR] Failed to fetch project management service details: " . $e->getMessage());
ErrorHandler::exception($e);
return [];
}
}
}

View File

@ -19,7 +19,7 @@ class ErrorHandler
public static function register(): void
{
set_error_handler([self::class, 'handleError']);
set_exception_handler([self::class, 'handleException']);
set_exception_handler([self::class, 'exception']);
Logger::info("ErrorHandler registered successfully.");
}
@ -49,7 +49,7 @@ class ErrorHandler
*
* @param \Throwable $exception The exception object.
*/
public static function handleException(\Throwable $exception): void
public static function exception(\Throwable $exception): void
{
$message = sprintf(
"Exception: %s in %s on line %d\nStack trace:\n%s",

View File

@ -1,33 +1,43 @@
<?php
/**
* Application Entry Point
*
* This file initializes the application, sets up error handling, loads dependencies,
* and dispatches incoming requests using the Router.
*/
// Enable detailed error reporting for debugging
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//set_include_path(__DIR__ . '/../resources/views');
require_once __DIR__ . '/../vendor/autoload.php';
use WizdomNetworks\WizeWeb\Core\Router;
use WizdomNetworks\WizeWeb\Controllers\HomeController;
use WizdomNetworks\WizeWeb\Controllers\AboutController;
use WizdomNetworks\WizeWeb\Controllers\ContactController;
use WizdomNetworks\WizeWeb\Controllers\ServicesController;
use WizdomNetworks\WizeWeb\Controllers\TestimonialsController;
use WizdomNetworks\WizeWeb\Utils\ClassInspector;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
use WizdomNetworks\WizeWeb\Utils\Logger;
// Debug all classes in the top-level namespace
//ClassInspector::debugTopLevelNamespace();
// Register error handler
ErrorHandler::register();
// Initialize Logger
Logger::init();
// Initialize and configure router
$router = new Router();
$router->add('', HomeController::class, 'index');
$router->add('about', AboutController::class, 'index');
$router->add('contact', ContactController::class, 'index');
$router->add('testimonials', TestimonialsController::class, 'index');
$router->add('services', ServicesController::class, 'index');
$router->add('services/it-consulting', ServicesController::class, 'itConsulting');
$router->add('services/emergency-support', ServicesController::class, 'emergencySupport');
$router->add('services/managed-services', ServicesController::class, 'managedServices');
// Define routes
$router->add('', \WizdomNetworks\WizeWeb\Controllers\HomeController::class, 'index');
$router->add('about', \WizdomNetworks\WizeWeb\Controllers\AboutController::class, 'index');
$router->add('contact', \WizdomNetworks\WizeWeb\Controllers\ContactController::class, 'index');
$router->add('testimonials', \WizdomNetworks\WizeWeb\Controllers\TestimonialsController::class, 'index');
$router->add('services', \WizdomNetworks\WizeWeb\Controllers\ServicesController::class, 'index');
$router->add('services/it-consulting', \WizdomNetworks\WizeWeb\Controllers\ITConsultingController::class, 'index', 'pages/services/it_consulting');
$router->add('services/emergency-support', \WizdomNetworks\WizeWeb\Controllers\EmergencySupportController::class, 'index', 'pages/services/emergency_support');
$router->add('services/managed-services', \WizdomNetworks\WizeWeb\Controllers\ManagedServicesController::class, 'index', 'pages/services/managed_services');
$router->add('services/online-brand-management', \WizdomNetworks\WizeWeb\Controllers\OnlineBrandManagementController::class, 'index', 'pages/services/online_brand_management');
$router->add('services/project-management', \WizdomNetworks\WizeWeb\Controllers\ProjectManagementController::class, 'index', 'pages/services/project_management');
// Dispatch the request
$router->dispatch($_SERVER['REQUEST_URI']);

View File

@ -1,12 +1,23 @@
<footer class="bg-dark text-white py-3 mt-auto">
<?php
/**
* Footer Partial
*
* This file includes the footer section, including copyright information and necessary scripts.
*/
?><footer class="footer mt-auto py-3 bg-dark text-white">
<div class="container text-center">
<p>&copy; 2025 WizdomNetworks. All Rights Reserved.</p>
<ul class="list-inline">
<li class="list-inline-item"><a class="text-white" href="/privacy">Privacy Policy</a></li>
<li class="list-inline-item"><a class="text-white" href="/terms">Terms of Service</a></li>
</ul>
<p>&copy; <?php echo date('Y'); ?> Wizdom Networks. All rights reserved.</p>
<p>
<a href="/privacy" class="text-white">Privacy Policy</a> |
<a href="/terms" class="text-white">Terms of Service</a>
</p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
<!-- Bootstrap JS with Fallback -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
onerror="this.onerror=null;this.src='/assets/bootstrap/js/bootstrap.bundle.min.js';"></script>
<!-- Custom Scripts -->
<script src="/assets/js/main.js"></script>

View File

@ -6,12 +6,12 @@
* This file includes metadata, stylesheets, and scripts necessary for rendering the site.
*/
?><head>
?>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $title ?? 'Wizdom Networks'; ?></title>
<!-- Bootstrap CSS -->
<!-- Bootstrap CSS with Fallback -->
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
onerror="this.onerror=null;this.href='/assets/bootstrap/css/bootstrap.min.css';">
@ -24,7 +24,6 @@
<link rel="stylesheet" href="/assets/css/hero.css">
<?php endif; ?>
<!-- Conditionally Load Slider Stylesheet -->
<?php if (isset($showSlider)) : ?>
<link rel="stylesheet" href="/assets/css/slider.css">
@ -32,4 +31,4 @@
<!-- Favicon -->
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
</head>

View File

@ -3,35 +3,34 @@
/**
* Main Layout
*
* This file serves as the primary layout structure, including the header, footer, and optional sections
* like the hero section and slider, which can be enabled per page.
* This file defines the overall structure of the web pages, ensuring consistency across all views.
*/
?>
<!DOCTYPE html>
use WizdomNetworks\WizeWeb\Core\View;
?><!DOCTYPE html>
<html lang="en">
<head>
<?php $this->render('layouts/head', $data); ?>
<?php View::render('layouts/head', $data); ?>
</head>
<body>
<?php if (isset($showHeader)) : ?>
<?php $this->render('layouts/header', $data); ?>
<?php endif; ?>
<?php $this->render('partials/navbar', $data); ?>
<?php View::render('partials/navbar', $data); ?>
<!-- Render Hero Section if Defined -->
<?php if (isset($heroConfig)) : ?>
<?php $this->render('partials/hero', compact('heroConfig')); ?>
<?php View::render('partials/hero', compact('heroConfig')); ?>
<?php endif; ?>
<!-- Render Slider if Defined -->
<?php if (isset($showSlider)) : ?>
<?php $this->render('partials/slider', ['sliderConfig' => $showSlider]); ?>
<?php View::render('partials/slider', $showSlider); ?>
<?php endif; ?>
<div class="container">
<div class="row">
<div class="col-md-3">
<?php $this->render('partials/sidebar', $data); ?>
<?php View::render('partials/sidebar', $data); ?>
</div>
<div class="col-md-9">
<!-- Main Page Content -->
@ -40,6 +39,6 @@
</div>
</div>
<?php $this->render('layouts/footer', $data); ?>
<?php View::render('layouts/footer', $data); ?>
</body>
</html>

View File

@ -1,8 +1,16 @@
<?php
$title = 'About - Wizdom Networks';
$content = <<<HTML
<h1>About Wizdom Networks</h1><p>At Wizdom Networks, we specialize in delivering top-notch IT solutions to help your business thrive.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* About Page View
*
* This view dynamically renders the About page using data provided by the AboutController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'About Us - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,16 +1,16 @@
<?php
$title = 'Contact Us - Wizdom Networks';
$content = <<<HTML
<h1>Get in Touch</h1>
<p>We would love to hear from you. Use the form below to send us a message, or reach out via email or phone.</p>
<div class="contact-details">
<p><strong>Email:</strong> contact@wizdom.ca</p>
<p><strong>Phone:</strong> +1-800-123-4567</p>
</div>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
// Add the contact form
//$content .= $this->getContactForm($data);
/**
* Contact Page View
*
* This view dynamically renders the Contact page using data provided by the ContactController.
*/
$this->render('layouts/main', compact('title', 'content'));
// Ensure data is available before rendering
$title = $data['title'] ?? 'Contact Us - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,15 @@
<?php
$title = 'Error - Wizdom Networks';
$content = <<<HTML
<h1>Page Not Found</h1><p>The page you are looking for does not exist. Please check the URL or go back to the <a href=\"/\">home page</a>.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* Error Page View
*
* This view dynamically renders the error page when an issue occurs.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Error - Wizdom Networks';
$message = $data['message'] ?? 'An unexpected error occurred.';
View::render('layouts/main', compact('title', 'message'));

View File

@ -1,20 +1,18 @@
<?php
use WizdomNetworks\WizeWeb\Core\View;
/**
* Home Page
* Home Page View
*
* This file renders the homepage and dynamically loads the hero section and slider if configured.
* This view dynamically renders the homepage using data provided by the HomeController.
*/
$title = 'Home - Wizdom Networks';
$showSlider = ['type' => 'hero']; // Enable hero slider
// Ensure data is available before rendering
$title = $data['title'] ?? 'Home - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
$showSlider = $data['showSlider'] ?? [];
$content = <<<HTML
<h1>Welcome to Wizdom Networks</h1>
<p>Your trusted partner for IT Consulting and Services.</p>
<p><a href="/services" class="btn btn-primary">Explore Our Services</a></p>
HTML;
$this->render('layouts/main', compact('title', 'content', 'showHero', 'showSlider'));
?>
View::render('layouts/main', compact('title', 'content', 'heroConfig', 'showSlider'));

View File

@ -1,4 +1,16 @@
<?php $this->render('layouts/main', [
'content' => '<h1>Our Services</h1><p>Explore our wide range of IT services designed to meet your business needs.</p>',
'title' => $title ?? 'Our Services'
]); ?>
<?php
use WizdomNetworks\WizeWeb\Core\View;
/**
* Services Page View
*
* This view dynamically renders the Services page using data provided by the ServicesController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Our Services - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,18 +1,16 @@
<?php
$title = 'Emergency Support - Wizdom Networks';
$heroConfig = [
'title' => 'Innovative IT Solutions',
'description' => 'Empowering businesses with cutting-edge technology solutions.',
'image' => '/assets/images/rescue-training.jpg',
'cta' => ['text' => 'Learn More', 'link' => '/services'],
'style' => 'default',
'position' => 'top'
];
use WizdomNetworks\WizeWeb\Core\View;
/**
* Emergency Support Page View
*
* This view dynamically renders the Emergency Support page using data provided by the EmergencySupportController.
*/
$content = <<<HTML
<h1>Emergency Support</h1><p>We offer 24/7 emergency IT support to ensure your business operations run smoothly.</p>
HTML;
// Ensure data is available before rendering
$title = $data['title'] ?? 'Emergency Support - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
$this->render('layouts/main', $data);
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,16 @@
<?php
$title = 'It Consulting - Wizdom Networks';
$content = <<<HTML
<h1>IT Consulting</h1><p>Our IT consulting services provide businesses with tailored solutions to maximize productivity and efficiency.</p>
HTML;
/**
* IT Consulting Page View
*
* This view dynamically renders the IT Consulting page using data provided by the ITConsultingController.
*/
$this->render('layouts/main', $data);
use WizdomNetworks\WizeWeb\Core\View;
// Ensure data is available before rendering
$title = $data['title'] ?? 'IT Consulting - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,16 @@
<?php
$title = 'Managed Services - Wizdom Networks';
$content = <<<HTML
<h1>Managed Services</h1><p>We provide end-to-end managed IT services to keep your business running efficiently.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* Managed Services Page View
*
* This view dynamically renders the Managed Services page using data provided by the ManagedServicesController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Managed Services - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,16 @@
<?php
$title = 'Online Brand Management - Wizdom Networks';
$content = <<<HTML
<h1>Online Brand Management</h1><p>Enhance your online presence with our expert brand management services.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* Online Brand Management Page View
*
* This view dynamically renders the Online Brand Management page using data provided by the OnlineBrandManagementController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Online Brand Management - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,16 @@
<?php
$title = 'Project Management - Wizdom Networks';
$content = <<<HTML
<h1>Project Management</h1><p>Efficient project management to ensure your IT projects are delivered on time and within budget.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* Project Management Page View
*
* This view dynamically renders the Project Management page using data provided by the ProjectManagementController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Project Management - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,8 +1,16 @@
<?php
$title = 'Testimonials - Wizdom Networks';
$content = <<<HTML
<h1>Testimonials</h1><p>Here's what our clients have to say about us.</p>
HTML;
use WizdomNetworks\WizeWeb\Core\View;
$this->render('layouts/main', $data);
/**
* Testimonials Page View
*
* This view dynamically renders the Testimonials page using data provided by the TestimonialsController.
*/
// Ensure data is available before rendering
$title = $data['title'] ?? 'Client Testimonials - Wizdom Networks';
$content = $data['content'] ?? '';
$heroConfig = $data['heroConfig'] ?? [];
View::render('layouts/main', compact('title', 'content', 'heroConfig'));

View File

@ -1,4 +1,5 @@
<?php
/**
* Modular Hero Partial
*
@ -17,7 +18,7 @@
* ];
*/
// Ensure the hero config exists
// Ensure heroConfig is defined before rendering
$heroConfig = $heroConfig ?? [];
// Assign default values
@ -27,7 +28,6 @@ $heroImage = $heroConfig['image'] ?? "/assets/images/default-hero.jpg";
$heroCTA = $heroConfig['cta'] ?? null;
$heroStyle = $heroConfig['style'] ?? "default"; // 'default', 'compact', 'overlay'
$heroPosition = $heroConfig['position'] ?? "top"; // 'top', 'inline'
?>
<section class="hero-section hero-<?php echo $heroStyle; ?> hero-<?php echo $heroPosition; ?>" style="background-image: url('<?php echo $heroImage; ?>');">

View File

@ -13,78 +13,10 @@ if (!isset($sliderConfig) || empty($sliderConfig['type'])) {
}
$sliderType = $sliderConfig['type'];
// Slider images and their associated text & CTA
$sliderImages = [
[
'src' => '/assets/images/information-light.jpg',
'alt' => 'Information Light Banner',
'title' => 'Innovative Solutions',
'description' => 'Bringing technology and expertise together.',
'cta_text' => 'Learn More',
'cta_link' => '/services/technology',
'cta_top' => '70%',
'cta_left' => '30%'
],
[
'src' => '/assets/images/cardcatalouge-banner.jpg',
'alt' => 'Card Catalogue Banner',
'title' => 'Effortless Organization',
'description' => 'Streamline your workflow with our intuitive catalog system.',
'cta_text' => 'Learn More',
'cta_link' => '/services/catalogue-management',
'cta_top' => '100%',
'cta_left' => '75%'
],
[
'src' => '/assets/images/rolodex-banner.jpg',
'alt' => 'Rolodex Banner',
'title' => 'Contact Management Made Easy',
'description' => 'Keep track of important contacts and information in one place.',
'cta_text' => 'Get Started',
'cta_link' => '/services/contact-management',
'cta_top' => '20%',
'cta_left' => '60%',
'text_color' => 'black'
],
[
'src' => '/assets/images/oldmic.jpg',
'alt' => 'Old Microphone',
'title' => 'Broadcast Your Message',
'description' => 'Reach your audience with high-quality audio and video solutions.',
'cta_text' => 'Explore Options',
'cta_link' => '/services/media-solutions',
'cta_top' => '56%',
'cta_left' => '65%'
],
[
'src' => '/assets/images/ancient-library-shelf-crop1.jpg',
'alt' => 'Library Archives',
'title' => 'Knowledge Preservation',
'description' => 'Store and manage your records securely and efficiently.',
'cta_text' => 'Discover More',
'cta_link' => '/services/data-archiving',
'cta_top' => '50%',
'cta_left' => '50%'
],
[
'src' => '/assets/images/combosafedoor.jpg',
'alt' => 'Combination Safe Door',
'title' => 'Secure Your Data',
'description' => 'Advanced encryption and security solutions for your digital assets.',
'cta_text' => 'Protect Now',
'cta_link' => '/services/cybersecurity',
'cta_top' => '56%',
'cta_left' => '35%'
]
];
$sliderImages = $sliderConfig['slides'] ?? [];
?>
<section class="hero-slider">
<section class="hero-slider slider-<?php echo $sliderType; ?>">
<div id="heroCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<?php foreach ($sliderImages as $index => $image): ?>