87 lines
2.3 KiB
PHP
87 lines
2.3 KiB
PHP
<?php
|
|
namespace App\Core;
|
|
|
|
abstract class Controller {
|
|
/**
|
|
* Helper to render a view file with data
|
|
*/
|
|
protected function renderOld(string $view, array $data = []) {
|
|
// Find the view file in the app/Views folder
|
|
$viewFile = __DIR__ . "/../Views/{$view}.phtml";
|
|
|
|
if (!file_exists($viewFile)) {
|
|
die("View file $view not found.");
|
|
}
|
|
|
|
// Extract data array into local variables for the view
|
|
extract($data);
|
|
|
|
// Start output buffering to capture the template content
|
|
ob_start();
|
|
include $viewFile;
|
|
echo ob_get_clean();
|
|
}
|
|
protected function render(string $view, array $data = []) {
|
|
extract($data);
|
|
|
|
// 1. Render the specific page view into a variable
|
|
ob_start();
|
|
include __DIR__ . "/../Views/{$view}.phtml";
|
|
$content = ob_get_clean();
|
|
|
|
// 2. Render the main layout and pass the $content into it
|
|
include __DIR__ . "/../Views/layouts/main.phtml";
|
|
}
|
|
protected function json(array $data, int $code = 200) {
|
|
// Set header to JSON
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
// Set HTTP status code (200, 201, 400, 404, etc.)
|
|
http_response_code($code);
|
|
|
|
// Output the data
|
|
echo json_encode($data);
|
|
exit; // End execution to prevent accidental HTML output
|
|
}
|
|
protected function getNetwork($msisdn){
|
|
$phone = str_replace(' ', '', $msisdn);
|
|
$phone = str_replace('+', '', $msisdn);
|
|
$pattern = "/^\+?(265|0)?[89]\d{8}$/i";
|
|
|
|
$retval = preg_match($pattern, $phone, $matches, PREG_OFFSET_CAPTURE);
|
|
if (count($matches) < 1) {
|
|
return false;
|
|
}
|
|
elseif (strlen($phone) == 9) {
|
|
$msisdn = "265" . $phone;
|
|
}
|
|
elseif (strlen($phone) == 10) {
|
|
$phone = ltrim($phone, 0);
|
|
$msisdn = "265" . $phone;
|
|
}
|
|
elseif (strlen($phone) == 12) {
|
|
$msisdn = $phone;
|
|
}
|
|
if (!isset($msisdn)) {
|
|
return FALSE;
|
|
}
|
|
|
|
$prefix = substr($msisdn, 0, 4);
|
|
|
|
if ($prefix == '2658') {
|
|
$network = 'tnm';
|
|
}
|
|
elseif ($prefix == '2659' ) {
|
|
$network = 'airtel';
|
|
}
|
|
else{
|
|
return FALSE;
|
|
}
|
|
return $network;
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|