Files
coolcoth.com/app/Controllers/Controller.php
T
2026-08-08 15:53:53 +08:00

67 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace App\Controllers;
use Core\View;
class Controller
{
protected $layout = 'layouts/site';
protected function view(string $view, array $data = []): string
{
return View::make($view, $data, $this->layout);
}
protected function redirect(string $url)
{
header('Location: ' . site_url($url));
exit;
}
protected function back()
{
$this->redirect($_SERVER['HTTP_REFERER'] ?? '');
}
protected function json($data, int $code = 200)
{
http_response_code($code);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data, JSON_UNESCAPED_UNICODE);
exit;
}
/** 一次性会话消息(成功 ok / 错误 err),布局模板自动渲染 */
protected function flash(string $msg, string $type = 'err'): void
{
$_SESSION['flash'] = ['msg' => $msg, 'type' => $type];
}
protected function get(string $key, $default = '')
{
return $_GET[$key] ?? $default;
}
protected function post(string $key, $default = '')
{
return $_POST[$key] ?? $default;
}
/**
* 分系统(CRM / PSI)统一后台渲染:左侧导航 + 顶栏 + 内容区。
* 与 layouts/admin.php 同源规范,保证团队多系统体验一致、可维护。
* @param string $sys crm | psi
* @param string $view 视图名(如 crm/dashboard
* @param array $nav 子系统导航项 [['k'=>, 'label'=>, 'icon'=>, 'url'=>]]
* @param string $seg 当前激活导航 key
*/
protected function renderSubsys(string $sys, string $view, array $data, array $nav, string $seg): string
{
$data['_sys'] = $sys;
$data['_nav'] = $nav;
$data['_seg'] = $seg;
$data['_home'] = $sys; // 子系统首页路由段
return View::make($view, $data, 'layouts/subsys');
}
}