Add LandingController and Arsha layout integration

This commit is contained in:
essae 2025-05-03 16:22:24 -04:00
parent 0b1e792d15
commit 0dea9b9c7c
4 changed files with 147 additions and 37 deletions

View File

@ -0,0 +1,24 @@
<?php
// File: app/Controllers/LandingController.php
// Version: v1.0
// Purpose: Handles landing page rendering for Arsha one-pager
// Project: Wizdom Networks Website
namespace Wizdomnetworks\WizdomWeb\Controllers;
use Wizdomnetworks\WizdomWeb\Utilities\View;
use Wizdomnetworks\WizdomWeb\Utilities\Logger;
class LandingController
{
public function index()
{
Logger::info("Rendering landing page via LandingController@index");
$data = [
'pageTitle' => 'Wizdom Networks | One-Pager'
];
View::render('pages/landing', $data, 'arsha');
}
}

View File

@ -1,47 +1,27 @@
<?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);
// File: public/index.php
// Version: v1.1
// Purpose: Application entry point with Arsha one-pager routing
// Project: Wizdom Networks Website
require_once __DIR__ . '/../vendor/autoload.php';
use WizdomNetworks\WizeWeb\Core\Router;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
use WizdomNetworks\WizeWeb\Utils\Logger;
use Dotenv\Dotenv;
use Wizdomnetworks\WizdomWeb\Core\Router;
use Wizdomnetworks\WizdomWeb\Utilities\Logger;
use Wizdomnetworks\WizdomWeb\Utilities\ErrorHandler;
use Wizdomnetworks\WizdomWeb\Controllers\LandingController;
$dotenv = Dotenv::createImmutable(__DIR__ . '/../');
$dotenv->load();
Logger::info("Bootstrapping application");
// Register error handler
ErrorHandler::register();
// Initialize Logger
Logger::init();
// Initialize and configure router
$router = new Router();
// 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');
// ✅ Register new Arsha landing route
$router->add('/', LandingController::class, 'index');
// Dispatch the request
$router->dispatch($_SERVER['REQUEST_URI']);
// 🛑 Optional: Disable old route to avoid conflict
// use WizdomNetworks\WizeWeb\Controllers\HomeController;
// $router->add('', HomeController::class, 'index');
$requestedPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$router->dispatch($requestedPath);

View File

@ -0,0 +1,86 @@
<?php
// File: /resources/views/layouts/arsha.php
// Version: v1.0
// Purpose: Layout file for Arsha one-pager integration using Bootstrap 5+
// Project: Wizdom Networks Website
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title><?= $pageTitle ?? 'Wizdom Networks' ?></title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="/public/assets/img/favicon.png" rel="icon">
<link href="/public/assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Raleway:300,400,500,600,700|Poppins:300,400,500,600,700" rel="stylesheet">
<!-- Vendor CSS Files -->
<link href="/public/assets/vendor/aos/aos.css" rel="stylesheet">
<link href="/public/assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/public/assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="/public/assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
<link href="/public/assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
<link href="/public/assets/vendor/remixicon/remixicon.css" rel="stylesheet">
<link href="/public/assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<!-- Main CSS File -->
<link href="/public/assets/css/style.css" rel="stylesheet">
</head>
<body>
<!-- ======= Header ======= -->
<header id="header" class="fixed-top d-flex align-items-center">
<div class="container d-flex align-items-center justify-content-between">
<h1 class="logo"><a href="/">Wizdom</a></h1>
<nav id="navbar" class="navbar">
<ul>
<li><a class="nav-link scrollto active" href="#hero">Home</a></li>
<li><a class="nav-link scrollto" href="#about">About</a></li>
<li><a class="nav-link scrollto" href="#services">Services</a></li>
<li><a class="nav-link scrollto" href="#contact">Contact</a></li>
</ul>
<i class="bi bi-list mobile-nav-toggle"></i>
</nav>
</div>
</header>
<!-- ======= Dynamic Content Injected Here ======= -->
<?= $content ?>
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="container py-4">
<div class="copyright">
&copy; Copyright <strong><span>Wizdom Networks</span></strong>. All Rights Reserved
</div>
</div>
</footer>
<a href="#" class="back-to-top d-flex align-items-center justify-content-center">
<i class="bi bi-arrow-up-short"></i>
</a>
<!-- Vendor JS Files -->
<script src="/public/assets/vendor/purecounter/purecounter_vanilla.js"></script>
<script src="/public/assets/vendor/aos/aos.js"></script>
<script src="/public/assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="/public/assets/vendor/glightbox/js/glightbox.min.js"></script>
<script src="/public/assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="/public/assets/vendor/swiper/swiper-bundle.min.js"></script>
<script src="/public/assets/vendor/waypoints/noframework.waypoints.js"></script>
<!-- Main JS File -->
<script src="/public/assets/js/main.js"></script>
</body>
</html>

View File

@ -0,0 +1,20 @@
<?php
// File: resources/views/pages/landing.php
// Version: v1.0
// Purpose: Injected content for Arsha layout one-pager
// Project: Wizdom Networks Website
?>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex align-items-center">
<div class="container" data-aos="zoom-out" data-aos-delay="100">
<h1>Welcome to <span>Wizdom Networks</span></h1>
<h2>We deliver powerful IT consulting, cloud strategy, and MSP services for growing businesses.</h2>
<div class="d-flex">
<a href="#services" class="btn-get-started scrollto">Get Started</a>
</div>
</div>
</section>
<!-- Add more trimmed Arsha sections here as needed -->