donation/app/Controllers/BaseController.php
2023-12-13 12:57:35 +05:30

130 lines
4.9 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Models\AuthenticationModel;
/**
* Class BaseController
*
* BaseController provides a convenient place for loading components
* and performing functions that are needed by all your controllers.
* Extend this class in any new controllers:
* class Home extends BaseController
*
* For security be sure to declare any new methods as protected or private.
*/
abstract class BaseController extends Controller
{
/**
* Instance of the main Request object.
*
* @var CLIRequest|IncomingRequest
*/
protected $request;
/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var array
*/
protected $helpers = [];
/**
* Be sure to declare properties for any property fetch you initialized.
* The creation of dynamic property is deprecated in PHP 8.2.
*/
// protected $session;
public $authData = [];
/**
*
*
* @return void
*/
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);
$uri = $request->getUri();
// Get the path or route from the URI
$requestedRoute = $uri->getPath();
$requestType = get_class($request);
if (php_sapi_name() === 'cli') {
echo "This is a command-line request.";
// echo $requestedRoute;
} else {
if ($requestedRoute !== 'login' && $requestedRoute !== 'authenticate') {
$this->authData = $this->session_log();
}
}
}
public function render_page($viewpage, $data){
helper('session');
$session_uid = get_logged_user_id();
$session_uname = get_logged_name();
$mergedData = array_merge($data, $this->authData);
$mergedData['browser_title']= $mergedData['company_name'] . ' | ' . $mergedData['company_short_name'] . ' ' . $mergedData['page_name'];
$mergedData['heading']= $mergedData['page_name'] === "Dashboard" ? 'Welcome to ' . $mergedData['company_name'] : "";
echo view('template/header.php', $mergedData );
echo view('template/topbar.php', $mergedData);
echo view($viewpage, $mergedData);
echo view('template/footer.php', $mergedData);
}
public function session_log()
{
helper('session');
$session_uid = get_logged_user_id();
$session_uname = get_logged_name();
if(!is_session_active()) {
header("Location: " . base_url("login"));
exit();
}
$auth_model = new AuthenticationModel();
$details = $auth_model->getheringDetailsForHeader($session_uid);
$data['company_name'] = $details[0]['site_name'];
$data['company_short_name'] = $details[0]['site_title'];
$data['company_address'] = $details[0]['company_address'];
$data['company_mobile_no'] = $details[0]['company_mobile_no'];
$data['company_email'] = $details[0]['company_email'];
$data['loggedin_person'] = $session_uname;
$data['loggedin_person_id'] = $session_uid;
$data['loggedin_person_role'] = $details[0]['role'];
$data['favicon'] = !empty($details[0]['favicon']) && file_exists(FCPATH."public/uploads/".$details[0]['favicon']) ? base_url("public/uploads/".$details[0]['favicon']) : base_url("public/uploads/default.ico");
$data['profile_picture'] = !empty($details[0]['profile_picture']) && file_exists(FCPATH."public/uploads/".$details[0]['profile_picture']) ? base_url("public/uploads/" . $details[0]['profile_picture']) : base_url("public/uploads/avatar.png");
$data['company_logo_small'] = !empty($details[0]['company_logo_small']) && file_exists(FCPATH."public/uploads/".$details[0]['company_logo_small']) ? base_url("public/uploads/" . $details[0]['company_logo_small']) : base_url("public/uploads/default_logo.png");
$data['company_logo_large'] = !empty($details[0]['company_logo_large']) && file_exists(FCPATH."public/uploads/".$details[0]['company_logo_large']) ? base_url("public/uploads/" . $details[0]['company_logo_large']) : base_url("public/uploads/default.png");
$data['loggedin_person'] = $session_uname;
$session_bid = get_business_id();
$data['bid'] = $session_bid;
$data['footer_about'] = $details[0]['footer_about'];
return $data;
}
}