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

View File

@@ -0,0 +1,9 @@
{% if result %}
<span class="lead">
The result is <span class="label label-success">{{ result }}</span>
</span>
{% else %}
<span class="text-muted">
Click the <em>Calculate</em> button to find the answer.
</span>
{% endif %}

View File

@@ -0,0 +1,65 @@
<hr />
<!-- This file is an explanation of the AJAX page -->
<p class="lead">
<i class="icon-copy"></i> &nbsp; The HTML markup for this example:
</p>
<pre>{% apply escape %}<!-- The form -->
<form role="form" data-request="onTest" data-request-update="calcresult: '#result'">
<input type="text" value="15" name="value1">
<select name="operation">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" value="5" name="value2">
<button type="submit">Calculate</button>
</form>
<!-- The result -->
<div id="result">{{ "{% partial \"calcresult\" %}" }}</div>
{% endapply %}</pre>
<hr />
<p class="lead">
<i class="icon-tags"></i> &nbsp; The <code>calcresult</code> partial:
</p>
<pre>{% apply escape %}
{{ "{% if result %}" }}
The result is {{ "{{ result }}" }}.
{{ "{% else %}" }}
Click the <em>Calculate</em> button to find the answer.
{{ "{% endif %}" }}{% endapply %}</pre>
<hr />
<p class="lead">
<i class="icon-code"></i> &nbsp; The <code>onTest</code> PHP code:
</p>
<pre>function onTest()
{
$value1 = input('value1');
$value2 = input('value2');
$operation = input('operation');
switch ($operation) {
case '+' :
$this['result'] = $value1 + $value2;
break;
case '-' :
$this['result'] = $value1 - $value2;
break;
case '*' :
$this['result'] = $value1 * $value2;
break;
default :
$this['result'] = $value1 / $value2;
break;
}
}</pre>

View File

@@ -0,0 +1,17 @@
<hr />
<p class="lead">
<i class="icon-copy"></i> &nbsp; The HTML markup for this example:
</p>
<pre>
{% apply escape %}
{{ "{% component 'demoTodo' %}" }}
{% endapply %}</pre>
<hr />
<p class="lead">
<i class="icon-question"></i> &nbsp; Wait, only one line is needed?
</p>
<p><em>Yes!</em> unlike the <a href="{{ 'ajax'|page }}">AJAX example</a>, components are simple building blocks that can be used with a small amount of code.</p>
<p>The <code>demoTodo</code> component used here is provided by the plugin called <strong>Winter\Demo</strong>, you can find it in the <code>plugins/winter/demo</code> folder.</p>

View File

@@ -0,0 +1,6 @@
<div id="footer">
<div class="container">
<hr />
<p class="muted credit">&copy; 2021 - {{ "now" | date("Y") }} <a href="https://wintercms.com" target="_blank">Winter CMS</a>.</p>
</div>
</div>

View File

@@ -0,0 +1,29 @@
==
function onStart()
{
$this['backendUrl'] = Backend::url('/');
}
==
<!-- Nav -->
<nav id="layout-nav" class="navbar navbar-inverse navbar-fixed-top navbar-autohide" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ 'home'|page }}">Winter Demo</a>
</div>
<div class="collapse navbar-collapse navbar-main-collapse">
<ul class="nav navbar-nav">
<li class="separator hidden-xs"></li>
<li class="{% if this.page.id == 'home' %}active{% endif %}"><a href="{{ 'home'|page }}">Basic concepts</a></li>
<li class="{% if this.page.id == 'ajax' %}active{% endif %}"><a href="{{ 'ajax'|page }}">AJAX framework</a></li>
<li class="{% if this.page.id == 'plugins' %}active{% endif %}"><a href="{{ 'plugins'|page }}">Plugin components</a></li>
<li><a href="{{ backendUrl }}">Sign in to the Backend</a></li>
</ul>
</div>
</div>
</nav>