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:
68
modules/system/tests/fixtures/plugins/database/tester/models/Author.php
vendored
Normal file
68
modules/system/tests/fixtures/plugins/database/tester/models/Author.php
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Author extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_authors';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $belongsTo = [
|
||||
'user' => ['Database\Tester\Models\User', 'delete' => true],
|
||||
'country' => ['Database\Tester\Models\Country'],
|
||||
'user_soft' => ['Database\Tester\Models\SoftDeleteUser', 'key' => 'user_id', 'softDelete' => true],
|
||||
];
|
||||
|
||||
public $hasMany = [
|
||||
'posts' => 'Database\Tester\Models\Post',
|
||||
];
|
||||
|
||||
public $hasOne = [
|
||||
'phone' => 'Database\Tester\Models\Phone',
|
||||
];
|
||||
|
||||
public $belongsToMany = [
|
||||
'roles' => [
|
||||
'Database\Tester\Models\Role',
|
||||
'table' => 'database_tester_authors_roles'
|
||||
],
|
||||
'executive_authors' => [
|
||||
'Database\Tester\Models\Role',
|
||||
'table' => 'database_tester_authors_roles',
|
||||
'conditions' => 'is_executive = 1'
|
||||
],
|
||||
];
|
||||
|
||||
public $morphMany = [
|
||||
'event_log' => ['Database\Tester\Models\EventLog', 'name' => 'related', 'delete' => true, 'softDelete' => true],
|
||||
];
|
||||
|
||||
public $morphOne = [
|
||||
'meta' => ['Database\Tester\Models\Meta', 'name' => 'taggable'],
|
||||
];
|
||||
|
||||
public $morphToMany = [
|
||||
'tags' => [
|
||||
'Database\Tester\Models\Tag',
|
||||
'name' => 'taggable',
|
||||
'table' => 'database_tester_taggables',
|
||||
'pivot' => ['added_by']
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
class SoftDeleteAuthor extends Author
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
}
|
||||
40
modules/system/tests/fixtures/plugins/database/tester/models/Category.php
vendored
Normal file
40
modules/system/tests/fixtures/plugins/database/tester/models/Category.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Category extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_categories';
|
||||
|
||||
public $belongsToMany = [
|
||||
'posts' => [
|
||||
'Database\Tester\Models\Post',
|
||||
'table' => 'database_tester_categories_posts',
|
||||
'pivot' => ['category_name', 'post_name']
|
||||
]
|
||||
];
|
||||
|
||||
public function getCustomNameAttribute()
|
||||
{
|
||||
return $this->name.' (#'.$this->id.')';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CategorySimple extends Category
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SimpleTree;
|
||||
}
|
||||
|
||||
class CategoryNested extends Category
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\NestedTree;
|
||||
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_categories_nested';
|
||||
}
|
||||
35
modules/system/tests/fixtures/plugins/database/tester/models/Country.php
vendored
Normal file
35
modules/system/tests/fixtures/plugins/database/tester/models/Country.php
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Country extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_countries';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
public $hasMany = [
|
||||
'users' => [
|
||||
'Database\Tester\Models\User',
|
||||
],
|
||||
];
|
||||
|
||||
public $hasManyThrough = [
|
||||
'posts' => [
|
||||
'Database\Tester\Models\Post',
|
||||
'through' => 'Database\Tester\Models\Author',
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
class SoftDeleteCountry extends Country
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
}
|
||||
30
modules/system/tests/fixtures/plugins/database/tester/models/EventLog.php
vendored
Normal file
30
modules/system/tests/fixtures/plugins/database/tester/models/EventLog.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class EventLog extends Model
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_event_log';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = ['*'];
|
||||
|
||||
/**
|
||||
* @var array Fillable fields
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $morphTo = [
|
||||
'related' => []
|
||||
];
|
||||
}
|
||||
24
modules/system/tests/fixtures/plugins/database/tester/models/Meta.php
vendored
Normal file
24
modules/system/tests/fixtures/plugins/database/tester/models/Meta.php
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Meta extends Model
|
||||
{
|
||||
public $table = 'database_tester_meta';
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
public $morphTo = [
|
||||
'taggable' => []
|
||||
];
|
||||
|
||||
public $fillable = [
|
||||
'meta_title',
|
||||
'meta_description',
|
||||
'meta_keywords',
|
||||
'canonical_url',
|
||||
'redirect_url',
|
||||
'robot_index',
|
||||
'robot_follow'
|
||||
];
|
||||
}
|
||||
29
modules/system/tests/fixtures/plugins/database/tester/models/Phone.php
vendored
Normal file
29
modules/system/tests/fixtures/plugins/database/tester/models/Phone.php
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Phone extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_phones';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = ['*'];
|
||||
|
||||
/**
|
||||
* @var array Fillable fields
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $belongsTo = [
|
||||
'author' => 'Database\Tester\Models\Author',
|
||||
];
|
||||
}
|
||||
151
modules/system/tests/fixtures/plugins/database/tester/models/Post.php
vendored
Normal file
151
modules/system/tests/fixtures/plugins/database/tester/models/Post.php
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Post extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_posts';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = ['*'];
|
||||
|
||||
/**
|
||||
* @var array Fillable fields
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $belongsTo = [
|
||||
'author' => 'Database\Tester\Models\Author',
|
||||
];
|
||||
|
||||
public $belongsToMany = [
|
||||
'categories' => [
|
||||
'Database\Tester\Models\Category',
|
||||
'table' => 'database_tester_categories_posts',
|
||||
'pivot' => ['category_name', 'post_name']
|
||||
]
|
||||
];
|
||||
|
||||
public $morphMany = [
|
||||
'event_log' => ['Database\Tester\Models\EventLog', 'name' => 'related', 'delete' => true, 'softDelete' => true],
|
||||
];
|
||||
|
||||
public $morphOne = [
|
||||
'meta' => ['Database\Tester\Models\Meta', 'name' => 'taggable'],
|
||||
];
|
||||
|
||||
public $morphToMany = [
|
||||
'tags' => [
|
||||
'Database\Tester\Models\Tag',
|
||||
'name' => 'taggable',
|
||||
'table' => 'database_tester_taggables',
|
||||
'pivot' => ['added_by']
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
class NullablePost extends Post
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\Nullable;
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array List of attributes to nullify
|
||||
*/
|
||||
protected $nullable = [
|
||||
'author_nickname',
|
||||
];
|
||||
}
|
||||
|
||||
class SluggablePost extends Post
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\Sluggable;
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array List of attributes to automatically generate unique URL names (slugs) for.
|
||||
*/
|
||||
protected $slugs = [
|
||||
'slug' => 'title',
|
||||
'long_slug' => ['title', 'description']
|
||||
];
|
||||
}
|
||||
|
||||
class RevisionablePost extends Post
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\Revisionable;
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array Dates
|
||||
*/
|
||||
protected $dates = ['published_at', 'deleted_at'];
|
||||
|
||||
/**
|
||||
* @var array Monitor these attributes for changes.
|
||||
*/
|
||||
protected $revisionable = [
|
||||
'title',
|
||||
'slug',
|
||||
'description',
|
||||
'is_published',
|
||||
'published_at',
|
||||
'deleted_at'
|
||||
];
|
||||
|
||||
/**
|
||||
* @var int Maximum number of revision records to keep.
|
||||
*/
|
||||
public $revisionableLimit = 8;
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $morphMany = [
|
||||
'revision_history' => ['System\Models\Revision', 'name' => 'revisionable']
|
||||
];
|
||||
|
||||
/**
|
||||
* The user who made the revision.
|
||||
*/
|
||||
public function getRevisionableUser()
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
}
|
||||
|
||||
class ValidationPost extends Post
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\Validation;
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
public $rules = [
|
||||
'title' => 'required|min:3|max:255',
|
||||
'slug' => ['required', 'regex:/^[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i', 'unique:database_tester_posts'],
|
||||
];
|
||||
}
|
||||
34
modules/system/tests/fixtures/plugins/database/tester/models/Role.php
vendored
Normal file
34
modules/system/tests/fixtures/plugins/database/tester/models/Role.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
/**
|
||||
* Role Model
|
||||
*/
|
||||
class Role extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_roles';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array Fillable fields
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $belongsToMany = [
|
||||
'authors' => [
|
||||
'Database\Tester\Models\User',
|
||||
'table' => 'database_tester_authors_roles'
|
||||
],
|
||||
];
|
||||
}
|
||||
36
modules/system/tests/fixtures/plugins/database/tester/models/Tag.php
vendored
Normal file
36
modules/system/tests/fixtures/plugins/database/tester/models/Tag.php
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class Tag extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_tags';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array Fillable fields
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
public $morphedByMany = [
|
||||
'authors' => [
|
||||
'Database\Tester\Models\Author',
|
||||
'name' => 'taggable',
|
||||
'table' => 'database_tester_taggables',
|
||||
'pivot' => ['added_by'],
|
||||
],
|
||||
'posts' => [
|
||||
'Database\Tester\Models\Post',
|
||||
'name' => 'taggable',
|
||||
'table' => 'database_tester_taggables',
|
||||
'pivot' => ['added_by'],
|
||||
],
|
||||
];
|
||||
}
|
||||
69
modules/system/tests/fixtures/plugins/database/tester/models/User.php
vendored
Normal file
69
modules/system/tests/fixtures/plugins/database/tester/models/User.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php namespace Database\Tester\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
class User extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
public $table = 'database_tester_users';
|
||||
|
||||
/**
|
||||
* @var array Guarded fields
|
||||
*/
|
||||
protected $guarded = [];
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $hasOne = [
|
||||
'author' => [
|
||||
'Database\Tester\Models\Author',
|
||||
]
|
||||
];
|
||||
|
||||
public $hasOneThrough = [
|
||||
'phone' => [
|
||||
'Database\Tester\Models\Phone',
|
||||
'through' => 'Database\Tester\Models\Author',
|
||||
],
|
||||
];
|
||||
|
||||
public $attachOne = [
|
||||
'avatar' => 'System\Models\File'
|
||||
];
|
||||
|
||||
public $attachMany = [
|
||||
'photos' => 'System\Models\File'
|
||||
];
|
||||
}
|
||||
|
||||
class SoftDeleteUser extends User
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
}
|
||||
|
||||
class UserWithAuthor extends User
|
||||
{
|
||||
public $hasOne = [
|
||||
'author' => ['Database\Tester\Models\Author', 'key' => 'user_id', 'delete' => true],
|
||||
];
|
||||
}
|
||||
|
||||
class UserWithSoftAuthor extends User
|
||||
{
|
||||
public $hasOne = [
|
||||
'author' => ['Database\Tester\Models\SoftDeleteAuthor', 'key' => 'user_id', 'softDelete' => true],
|
||||
];
|
||||
}
|
||||
|
||||
class UserWithAuthorAndSoftDelete extends UserWithAuthor
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
}
|
||||
|
||||
class UserWithSoftAuthorAndSoftDelete extends UserWithSoftAuthor
|
||||
{
|
||||
use \Winter\Storm\Database\Traits\SoftDelete;
|
||||
}
|
||||
Reference in New Issue
Block a user