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:
25
plugins/vivespos/site/Plugin.php
Normal file
25
plugins/vivespos/site/Plugin.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Vivespos\Site;
|
||||
|
||||
use System\Classes\BaseExtension;
|
||||
|
||||
class Plugin extends BaseExtension
|
||||
{
|
||||
public function pluginDetails()
|
||||
{
|
||||
return [
|
||||
'name' => 'VivesPOS Site',
|
||||
'description' => 'Componentes del sitio VivesPOS',
|
||||
'author' => 'VivesPOS',
|
||||
'icon' => 'icon-shopping-cart',
|
||||
];
|
||||
}
|
||||
|
||||
public function registerComponents()
|
||||
{
|
||||
return [
|
||||
\Vivespos\Site\Components\ContactForm::class => 'contactForm',
|
||||
];
|
||||
}
|
||||
}
|
||||
45
plugins/vivespos/site/components/ContactForm.php
Normal file
45
plugins/vivespos/site/components/ContactForm.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Vivespos\Site\Components;
|
||||
|
||||
use Cms\Classes\ComponentBase;
|
||||
use Winter\Storm\Mail\Mailer;
|
||||
|
||||
class ContactForm extends ComponentBase
|
||||
{
|
||||
public function componentDetails()
|
||||
{
|
||||
return [
|
||||
'name' => 'Formulario de Contacto',
|
||||
'description' => 'Formulario simple que redirige a WhatsApp.',
|
||||
];
|
||||
}
|
||||
|
||||
public function onRun()
|
||||
{
|
||||
$this->addJs('/plugins/vivespos/site/components/contactform/assets/contactform.js');
|
||||
}
|
||||
|
||||
public function onSend()
|
||||
{
|
||||
$name = trim(post('name', ''));
|
||||
$phone = trim(post('phone', ''));
|
||||
$business = trim(post('business', ''));
|
||||
|
||||
$message = "Hola, soy {$name}";
|
||||
if ($phone) {
|
||||
$message .= " (tel: {$phone})";
|
||||
}
|
||||
if ($business) {
|
||||
$message .= ". Mi negocio: {$business}";
|
||||
}
|
||||
$message .= ". Quiero mas info de VivesPOS.";
|
||||
|
||||
$waUrl = 'https://wa.me/523317025248?text=' . urlencode($message);
|
||||
|
||||
return [
|
||||
'redirect' => $waUrl,
|
||||
'redirect_target' => '_blank',
|
||||
];
|
||||
}
|
||||
}
|
||||
8
plugins/vivespos/site/composer.json
Normal file
8
plugins/vivespos/site/composer.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "vivespos/site",
|
||||
"type": "winter-plugin",
|
||||
"description": "VivesPOS site components",
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user