feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- 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
This commit is contained in:
71
modules/cms/reportwidgets/ActiveTheme.php
Normal file
71
modules/cms/reportwidgets/ActiveTheme.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php namespace Cms\ReportWidgets;
|
||||
|
||||
use Lang;
|
||||
use BackendAuth;
|
||||
use Cms\Classes\Theme;
|
||||
use Cms\Models\MaintenanceSetting;
|
||||
use Backend\Classes\ReportWidgetBase;
|
||||
use ApplicationException;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Active theme report widget.
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class ActiveTheme extends ReportWidgetBase
|
||||
{
|
||||
/**
|
||||
* @var string A unique alias to identify this widget.
|
||||
*/
|
||||
protected $defaultAlias = 'activetheme';
|
||||
|
||||
/**
|
||||
* Renders the widget.
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
try {
|
||||
$this->loadData();
|
||||
}
|
||||
catch (Exception $ex) {
|
||||
$this->vars['error'] = $ex->getMessage();
|
||||
}
|
||||
|
||||
return $this->makePartial('widget');
|
||||
}
|
||||
|
||||
public function defineProperties()
|
||||
{
|
||||
return [
|
||||
'title' => [
|
||||
'title' => 'backend::lang.dashboard.widget_title_label',
|
||||
'default' => 'cms::lang.dashboard.active_theme.widget_title_default',
|
||||
'type' => 'string',
|
||||
'validationPattern' => '^.+$',
|
||||
'validationMessage' => 'backend::lang.dashboard.widget_title_error',
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
$this->addCss('css/activetheme.css', 'core');
|
||||
}
|
||||
|
||||
protected function loadData()
|
||||
{
|
||||
if (!$theme = Theme::getActiveTheme()) {
|
||||
throw new ApplicationException(Lang::get('cms::lang.theme.not_found_name', ['name'=>Theme::getActiveThemeCode()]));
|
||||
}
|
||||
|
||||
$this->vars['theme'] = $theme;
|
||||
$this->vars['inMaintenance'] = MaintenanceSetting::get('is_enabled');
|
||||
$this->vars['canManage'] = BackendAuth::getUser()->hasAccess('cms.manage_themes');
|
||||
$this->vars['canConfig'] = BackendAuth::getUser()->hasAccess('cms.manage_theme_options');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
.widget-activetheme .theme-thumbnail {
|
||||
margin-top: -15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
48
modules/cms/reportwidgets/activetheme/partials/_widget.php
Normal file
48
modules/cms/reportwidgets/activetheme/partials/_widget.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<div class="report-widget widget-activetheme">
|
||||
<h3><?= e(trans($this->property('title'))) ?></h3>
|
||||
|
||||
<?php if (!isset($error)): ?>
|
||||
<div class="theme-thumbnail">
|
||||
<img src="<?= $theme->getPreviewImageUrl() ?>" alt="" class="img-responsive" />
|
||||
</div>
|
||||
<ul class="list-inline">
|
||||
<li>
|
||||
<?php if ($canManage): ?>
|
||||
<a href="<?= Backend::url('system/settings/update/winter/cms/maintenance_settings') ?>">
|
||||
<?php endif ?>
|
||||
<?php if ($inMaintenance): ?>
|
||||
<i class="icon-circle warning"></i>
|
||||
<span class="text-warning">
|
||||
<?= e(trans('cms::lang.dashboard.active_theme.maintenance')) ?>
|
||||
</span>
|
||||
<?php else: ?>
|
||||
<i class="icon-circle success"></i>
|
||||
<span class="text-success">
|
||||
<?= e(trans('cms::lang.dashboard.active_theme.online')) ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
<?php if ($canManage): ?>
|
||||
</a>
|
||||
<?php endif ?>
|
||||
</li>
|
||||
<?php if ($canManage): ?>
|
||||
<li>
|
||||
<a href="<?= Backend::url('cms/themes') ?>">
|
||||
<?= e(trans('cms::lang.dashboard.active_theme.manage_themes')) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<?php if ($canConfig && $theme->hasCustomData()): ?>
|
||||
<li>
|
||||
<a href="<?= Backend::url('cms/themeoptions/update/'.$theme->getDirName()) ?>">
|
||||
<?= e(trans('cms::lang.dashboard.active_theme.customize_theme')) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<div class="callout callout-warning">
|
||||
<div class="content"><?= e($error) ?></div>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
Reference in New Issue
Block a user