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,87 @@
<?php
namespace Backend\Console;
use Backend\Models\User;
use Backend\Models\UserRole;
use Illuminate\Support\Facades\Config;
use Winter\Storm\Console\Command;
class UserCreate extends Command
{
use \Winter\Storm\Console\Traits\ConfirmsWithInput;
/**
* @var string The console command name.
*/
protected static $defaultName = 'user:create';
/**
* @var string The name and signature of this command.
*/
protected $signature = 'user:create email
{email : The email address of the user to create.}
{--password= : The password for the user.}
{--fname= : The first name of the user.}
{--lname= : The last name of the user.}
{--role= : The role to assign the user to. <info>Use the role\'s code</info>}
{--f|force : Force the operation to run and ignore production warnings and confirmation questions.}';
/**
* @var string The console command description.
*/
protected $description = 'Creates a backend user.';
/**
* Execute the console command.
*/
public function handle(): int
{
$email = $this->argument('email');
if (
Config::get('app.env', 'production') !== 'local'
&& !$this->option('force')
&& !$this->confirmWithInput("CAUTION, currently working with non-local data. Please confirm the user email address", $email)
) {
return 1;
}
if (User::where('email', $email)->exists()) {
$this->error('A user with that email already exists.');
return 1;
}
$data = [
'email' => $email,
'password' => $this->option('password') ?: $this->secret('Password'),
'first_name' => $this->option('fname') ?: $this->ask('First name', ''),
'last_name' => $this->option('lname') ?: $this->ask('Last name', ''),
'role_id' => (
UserRole::where(
'code',
$this->option('role') ?: $this->choice(
'Role',
UserRole::lists('name', 'code')
)
)->firstOrFail()
)->id,
];
$data['password_confirmation'] = $data['password'];
$user = User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'login' => $data['email'],
'email' => $data['email'],
'role_id' => $data['role_id'],
'password' => $data['password'],
'password_confirmation' => $data['password'],
]);
$this->info("User {$user->email} created successfully with the {$role->name} role.");
return 0;
}
}