feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
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:
2026-08-21 19:29:00 -06:00
commit 1f72193a64
3266 changed files with 531480 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{% if this.theme.googleanalytics_id is not empty %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ this.theme.googleanalytics_id }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ this.theme.googleanalytics_id }}');
</script>
{% endif %}

View File

@@ -0,0 +1,4 @@
<link rel="stylesheet" href="{{ ['assets/less/theme.less'] | theme }}">
{% styles %}
{% placeholder head %}

View File

@@ -0,0 +1,17 @@
<!-- Scripts -->
<script src="{{ [
'@jquery',
'@framework',
'@framework.extras',
'assets/js/app.js',
] | theme }}"></script>
{% scripts %}
{% flash %}
<p data-control="flash-message" data-interval="7" class="flashmessage {{ type }}">
{{ message }}
</p>
{% endflash %}
</body>
</html>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% placeholder page_title default %}{{ this.page.title }}{% endplaceholder %}</title>
{% partial "meta/styles" %}
{% partial "meta/seo" %}
<meta name="generator" content="Winter CMS">
</head>
{% set pageId = this.page.id %}
{% set pageTitle = this.page.title %}
{% if pageId is empty %}
{% set pageId = page.id %}
{% endif %}
{% if pageTitle is empty %}
{% set pageTitle = page.title %}
{% endif %}
<body class="page-{{ pageId }} layout-{{ this.layout.id }}">