Files
avives 1f72193a64
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
- Base: wintercms/winter branch 1.2 (full framework)
- Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS
- Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication
- Partials: hero (offline-first), features, modes (offline/nube toggle),
  screenshots, pricing (3 planes), comparison, FAQ, CTA
- Plugin VivesPOS.Site with ContactForm
- Dockerfile: PHP 8.2 Apache, port 80, healthcheck
- Added winter/wn-pages, blog, sitemap, seo plugins
- Active theme set to vivespos
2026-08-21 19:29:00 -06:00

82 lines
1.9 KiB
PHP

<?php namespace Backend\Controllers;
use Backend;
use Redirect;
use BackendMenu;
use Backend\Classes\Controller;
use Backend\Widgets\ReportContainer;
/**
* Dashboard controller
*
* @package winter\wn-backend-module
* @author Alexey Bobkov, Samuel Georges
*
*/
class Index extends Controller
{
use \Backend\Traits\InspectableContainer;
/**
* @var array Permissions required to view this page.
* @see checkPermissionRedirect()
*/
public $requiredPermissions = [];
/**
* Constructor.
*/
public function __construct()
{
parent::__construct();
BackendMenu::setContextOwner('Winter.Backend');
$this->addCss('/modules/backend/assets/css/dashboard/dashboard.css', 'core');
}
public function index()
{
if ($redirect = $this->checkPermissionRedirect()) {
return $redirect;
}
$this->initReportContainer();
$this->pageTitle = 'backend::lang.dashboard.menu_label';
BackendMenu::setContextMainMenu('dashboard');
}
public function index_onInitReportContainer()
{
$this->initReportContainer();
return ['#dashReportContainer' => $this->widget->reportContainer->render()];
}
/**
* Prepare the report widget used by the dashboard
* @param Model $model
* @return void
*/
protected function initReportContainer()
{
new ReportContainer($this, 'config_dashboard.yaml');
}
/**
* Custom permissions check that will redirect to the next
* available menu item, if permission to this page is denied.
*/
protected function checkPermissionRedirect()
{
if (!$this->user->hasAccess('backend.access_dashboard')) {
if ($first = array_first(BackendMenu::listMainMenuItems())) {
return Redirect::intended($first->url);
}
return Backend::redirect('backend/myaccount');
}
}
}