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:
@@ -0,0 +1,21 @@
|
||||
<div data-control="toolbar">
|
||||
<a
|
||||
href="<?= Backend::url('{{ controller_url }}/create') ?>"
|
||||
class="btn btn-primary wn-icon-plus">
|
||||
<?= e(trans('backend::lang.form.create_title', ['name' => trans('{{ model_lang_key }}.label')])); ?>
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="btn btn-danger wn-icon-trash-o"
|
||||
disabled="disabled"
|
||||
onclick="$(this).data('request-data', { checked: $('.control-list').listWidget('getChecked') })"
|
||||
data-request="onDelete"
|
||||
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')); ?>"
|
||||
data-trigger-action="enable"
|
||||
data-trigger=".control-list input[type=checkbox]"
|
||||
data-trigger-condition="checked"
|
||||
data-request-success="$(this).prop('disabled', 'disabled')"
|
||||
data-stripe-load-indicator>
|
||||
<?= e(trans('backend::lang.list.delete_selected')); ?>
|
||||
</button>
|
||||
</div>
|
||||
31
modules/backend/console/scaffold/controller/config_form.stub
Normal file
31
modules/backend/console/scaffold/controller/config_form.stub
Normal file
@@ -0,0 +1,31 @@
|
||||
# ===================================
|
||||
# Form Behavior Config
|
||||
# ===================================
|
||||
|
||||
# Record name
|
||||
name: '{{ model_lang_key }}.label'
|
||||
|
||||
# Model Form Field configuration
|
||||
form: $/{{ plugin_folder }}/models/{{ lower_model }}/fields.yaml
|
||||
|
||||
# Model Class name
|
||||
modelClass: {{ plugin_namespace }}\Models\{{ studly_model }}
|
||||
|
||||
# Default redirect location
|
||||
defaultRedirect: {{ controller_url }}
|
||||
|
||||
# Create page
|
||||
create:
|
||||
title: backend::lang.form.create_title
|
||||
redirect: {{ controller_url }}/update/:id
|
||||
redirectClose: {{ controller_url }}
|
||||
|
||||
# Update page
|
||||
update:
|
||||
title: backend::lang.form.update_title
|
||||
redirect: {{ controller_url }}
|
||||
redirectClose: {{ controller_url }}
|
||||
|
||||
# Preview page
|
||||
preview:
|
||||
title: backend::lang.form.preview_title
|
||||
50
modules/backend/console/scaffold/controller/config_list.stub
Normal file
50
modules/backend/console/scaffold/controller/config_list.stub
Normal file
@@ -0,0 +1,50 @@
|
||||
# ===================================
|
||||
# List Behavior Config
|
||||
# ===================================
|
||||
|
||||
# Model List Column configuration
|
||||
list: $/{{ plugin_folder }}/models/{{ lower_model }}/columns.yaml
|
||||
|
||||
# Model Class name
|
||||
modelClass: {{ plugin_namespace }}\Models\{{ studly_model }}
|
||||
|
||||
# List Title
|
||||
title: '{{ model_lang_key }}.label_plural'
|
||||
|
||||
# Link URL for each record
|
||||
recordUrl: {{ controller_url }}/update/:id
|
||||
|
||||
# Message to display if the list is empty
|
||||
noRecordsMessage: backend::lang.list.no_records
|
||||
|
||||
# Records to display per page
|
||||
recordsPerPage: 20
|
||||
|
||||
# Options to provide the user when selecting how many records to display per page
|
||||
perPageOptions: [20, 40, 80, 100, 120]
|
||||
|
||||
# Display page numbers with pagination, disable to improve performance
|
||||
showPageNumbers: true
|
||||
|
||||
# Displays the list column set up button
|
||||
showSetup: true
|
||||
|
||||
# Displays the sorting link on each column
|
||||
showSorting: true
|
||||
|
||||
# Default sorting column
|
||||
# defaultSort:
|
||||
# column: created_at
|
||||
# direction: desc
|
||||
|
||||
# Display checkboxes next to each record
|
||||
showCheckboxes: true
|
||||
|
||||
# Toolbar widget configuration
|
||||
toolbar:
|
||||
# Partial for toolbar buttons
|
||||
buttons: list_toolbar
|
||||
|
||||
# Search widget configuration
|
||||
search:
|
||||
prompt: backend::lang.list.search_prompt
|
||||
54
modules/backend/console/scaffold/controller/controller.stub
Normal file
54
modules/backend/console/scaffold/controller/controller.stub
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace {{ plugin_namespace }}\Controllers;
|
||||
|
||||
use Backend\Classes\Controller;
|
||||
use Backend\Facades\BackendMenu;
|
||||
|
||||
/**
|
||||
* {{ title_name }} Backend Controller
|
||||
*/
|
||||
class {{ studly_name }} extends Controller
|
||||
{
|
||||
/**
|
||||
* @var array Behaviors that are implemented by this controller.
|
||||
*/
|
||||
public $implement = [
|
||||
\Backend\Behaviors\FormController::class,
|
||||
\Backend\Behaviors\ListController::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Permissions required to view this page.
|
||||
*/
|
||||
protected $requiredPermissions = [
|
||||
'{{ lower_author }}.{{ lower_plugin }}.{{ lower_name }}.manage_all',
|
||||
];
|
||||
{% if sidebar %}
|
||||
|
||||
/**
|
||||
* @var string The form layout to use. One of standard, sidebar, fancy
|
||||
*/
|
||||
protected $formLayout = 'sidebar';
|
||||
{% if stubs %}
|
||||
|
||||
/**
|
||||
* @var string Classes to be added to the body element
|
||||
*/
|
||||
public $bodyClass = 'compact-container';
|
||||
{% endif -%}
|
||||
{% elseif fancy %}
|
||||
|
||||
/**
|
||||
* @var string The form layout to use. One of standard, sidebar, fancy
|
||||
*/
|
||||
protected $formLayout = 'fancy';
|
||||
{% if stubs %}
|
||||
|
||||
/**
|
||||
* @var string Classes to be added to the body element
|
||||
*/
|
||||
public $bodyClass = 'fancy-layout compact-container breadcrumb-flush breadcrumb-fancy';
|
||||
{% endif -%}
|
||||
{% endif -%}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
<div class="form-buttons loading-indicator-container">
|
||||
<?php if ($formContext === 'create'): ?>
|
||||
<!-- Create and new -->
|
||||
<button
|
||||
type="submit"
|
||||
data-request="onSave"
|
||||
data-request-data="new:1"
|
||||
data-browser-validate
|
||||
data-hotkey="ctrl+shift+s, cmd+shift+s"
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.creating')); ?>"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
class="btn btn-primary wn-icon-plus">
|
||||
<?= e(trans('backend::lang.form.create_and_new')); ?>
|
||||
</button>
|
||||
|
||||
<!-- Create -->
|
||||
<button
|
||||
type="button"
|
||||
data-request="onSave"
|
||||
data-browser-validate
|
||||
data-hotkey="ctrl+s, cmd+s"
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.creating')); ?>"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
class="btn btn-primary wn-icon-save">
|
||||
<?= e(trans('backend::lang.form.create')); ?>
|
||||
</button>
|
||||
|
||||
<!-- Create and close -->
|
||||
<button
|
||||
type="button"
|
||||
data-request="onSave"
|
||||
data-browser-validate
|
||||
data-request-data="close:1"
|
||||
data-hotkey="ctrl+enter, cmd+enter"
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.creating')); ?>"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
class="btn btn-default wn-icon-check">
|
||||
<?= e(trans('backend::lang.form.create_and_close')); ?>
|
||||
</button>
|
||||
|
||||
<a class="btn btn-default wn-icon-ban" href="<?= $this->actionUrl('') ?>"><?= e(trans('backend::lang.form.cancel')); ?></a>
|
||||
<?php elseif ($formContext === 'update'): ?>
|
||||
<!-- Save -->
|
||||
<a
|
||||
href="javascript:;"
|
||||
class="btn btn-primary wn-icon-save save"
|
||||
data-request="onSave"
|
||||
data-browser-validate
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
data-request-data="redirect:0"
|
||||
data-hotkey="ctrl+s, cmd+s"
|
||||
>
|
||||
<?= e(trans('backend::lang.form.save')) ?>
|
||||
</a>
|
||||
|
||||
<!-- Save and Close -->
|
||||
<a
|
||||
href="javascript:;"
|
||||
class="btn btn-primary wn-icon-check save"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
data-request="onSave"
|
||||
data-browser-validate
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
|
||||
>
|
||||
<?= e(trans('backend::lang.form.save_and_close')) ?>
|
||||
</a>
|
||||
|
||||
<?php if ($formModel->url): ?>
|
||||
<!-- Preview -->
|
||||
<a
|
||||
href="<?= e($formModel->url) ?>"
|
||||
target="_blank"
|
||||
class="btn btn-primary wn-icon-crosshairs"
|
||||
data-control="preview-button"
|
||||
>
|
||||
<?= e(trans('backend::lang.form.save_and_close')) ?>
|
||||
</a>
|
||||
<?php endif ?>
|
||||
|
||||
<a class="btn btn-default wn-icon-ban" href="<?= $this->actionUrl('') ?>"><?= e(trans('backend::lang.form.cancel')); ?></a>
|
||||
|
||||
<!-- Delete -->
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default empty wn-icon-trash-o"
|
||||
data-request="onDelete"
|
||||
title="<?= e(trans('backend::lang.form.delete')); ?>"
|
||||
data-load-indicator="<?= e(trans('backend::lang.form.deleting')); ?>"
|
||||
data-request-before-update="$el.trigger('unchange.oc.changeMonitor')"
|
||||
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')); ?>"
|
||||
data-control="delete-button"
|
||||
></button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<div class="layout fancy-layout">
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class' => 'layout',
|
||||
'data-change-monitor' => 'true',
|
||||
'data-window-close-confirm' => 'true',
|
||||
]) ?>
|
||||
<div class="layout-row">
|
||||
<?= $this->formRender() ?>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url($formConfig->defaultRedirect) ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class' => 'layout',
|
||||
]) ?>
|
||||
<div class="layout-row form-preview">
|
||||
<?= $this->formRenderPreview() ?>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url($formConfig->defaultRedirect) ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<div class="layout fancy-layout">
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class' => 'layout',
|
||||
'data-change-monitor' => 'true',
|
||||
'data-window-close-confirm' => 'true',
|
||||
]) ?>
|
||||
<div class="layout-row">
|
||||
<?= $this->formRender() ?>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url($formConfig->defaultRedirect) ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
<?php endif ?>
|
||||
1
modules/backend/console/scaffold/controller/index.stub
Normal file
1
modules/backend/console/scaffold/controller/index.stub
Normal file
@@ -0,0 +1 @@
|
||||
<?= $this->listRender() ?>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<?php Block::put('form-contents') ?>
|
||||
<div class="layout">
|
||||
<div class="layout-row">
|
||||
<?= $this->formRenderOutsideFields() ?>
|
||||
<?= $this->formRenderPrimaryTabs() ?>
|
||||
</div>
|
||||
|
||||
<div class="form-buttons">
|
||||
<?= $this->formMakePartial('toolbar') ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('form-sidebar') ?>
|
||||
<div class="hide-tabs"><?= $this->formRenderSecondaryTabs() ?></div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('body') ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class'=>'layout stretch',
|
||||
]) ?>
|
||||
<?= $this->makeLayout('form-with-sidebar') ?>
|
||||
<?= Form::close() ?>
|
||||
<?php Block::endPut() ?>
|
||||
<?php else: ?>
|
||||
<div class="control-breadcrumb">
|
||||
<?= Block::placeholder('breadcrumb') ?>
|
||||
</div>
|
||||
<div class="padded-container">
|
||||
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
|
||||
<?php Block::put('form-contents') ?>
|
||||
<div class="layout">
|
||||
|
||||
<div class="layout-row">
|
||||
<?= $this->formRenderOutsideFields() ?>
|
||||
<?= $this->formRenderPrimaryTabs() ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('form-sidebar') ?>
|
||||
<div class="hide-tabs"><?= $this->formRenderSecondaryTabs() ?></div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('body') ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class'=>'layout stretch',
|
||||
]) ?>
|
||||
<?= $this->makeLayout('form-with-sidebar') ?>
|
||||
<?= Form::close() ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php else: ?>
|
||||
<div class="control-breadcrumb">
|
||||
<?= Block::placeholder('breadcrumb') ?>
|
||||
</div>
|
||||
<div class="padded-container">
|
||||
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<?php Block::put('form-contents') ?>
|
||||
<div class="layout">
|
||||
<div class="layout-row">
|
||||
<?= $this->formRenderOutsideFields() ?>
|
||||
<?= $this->formRenderPrimaryTabs() ?>
|
||||
</div>
|
||||
<div class="form-buttons">
|
||||
<?= $this->formMakePartial('toolbar') ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('form-sidebar') ?>
|
||||
<div class="hide-tabs"><?= $this->formRenderSecondaryTabs() ?></div>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php Block::put('body') ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class'=>'layout stretch',
|
||||
]) ?>
|
||||
<?= $this->makeLayout('form-with-sidebar') ?>
|
||||
<?= Form::close() ?>
|
||||
<?php Block::endPut() ?>
|
||||
<?php else: ?>
|
||||
<div class="control-breadcrumb">
|
||||
<?= Block::placeholder('breadcrumb') ?>
|
||||
</div>
|
||||
<div class="padded-container">
|
||||
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class' => 'layout'],
|
||||
) ?>
|
||||
<div class="layout-row">
|
||||
<?= $this->formRender() ?>
|
||||
</div>
|
||||
|
||||
<div class="form-buttons">
|
||||
<?= $this->formMakePartial('toolbar') ?>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
|
||||
<div class="form-preview">
|
||||
<?= $this->formRenderPreview() ?>
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php Block::put('breadcrumb') ?>
|
||||
<?= $this->makeLayoutPartial('breadcrumb') ?>
|
||||
<?php Block::endPut() ?>
|
||||
|
||||
<?php if (!$this->fatalError): ?>
|
||||
<?= Form::open([
|
||||
'id' => $this->formGetId(),
|
||||
'class' => 'layout',
|
||||
]) ?>
|
||||
<div class="layout-row">
|
||||
<?= $this->formRender() ?>
|
||||
</div>
|
||||
<div class="form-buttons">
|
||||
<?= $this->formMakePartial('toolbar') ?>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
|
||||
<p><a href="<?= Backend::url('{{ controller_url }}') ?>" class="btn btn-default"><?= e(trans('backend::lang.form.return_to_list')); ?></a></p>
|
||||
<?php endif ?>
|
||||
59
modules/backend/console/scaffold/formwidget/formwidget.stub
Normal file
59
modules/backend/console/scaffold/formwidget/formwidget.stub
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace {{studly_author}}\{{studly_plugin}}\FormWidgets;
|
||||
|
||||
use Backend\Classes\FormWidgetBase;
|
||||
|
||||
/**
|
||||
* {{name}} Form Widget
|
||||
*/
|
||||
class {{studly_name}} extends FormWidgetBase
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected $defaultAlias = '{{lower_author}}_{{lower_plugin}}_{{snake_name}}';
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->prepareVars();
|
||||
return $this->makePartial('{{lower_name}}');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the form widget view data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
$this->vars['name'] = $this->formField->getName();
|
||||
$this->vars['value'] = $this->getLoadValue();
|
||||
$this->vars['model'] = $this->model;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function loadAssets()
|
||||
{
|
||||
$this->addCss('css/{{lower_name}}.css', '{{author}}.{{plugin}}');
|
||||
$this->addJs('js/{{lower_name}}.js', '{{author}}.{{plugin}}');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getSaveValue($value)
|
||||
{
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
/*
|
||||
* This is a sample JavaScript file used by {{name}}
|
||||
*
|
||||
* You can delete this file if you want
|
||||
*/
|
||||
17
modules/backend/console/scaffold/formwidget/partial.stub
Normal file
17
modules/backend/console/scaffold/formwidget/partial.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php if ($this->previewMode): ?>
|
||||
|
||||
<div class="form-control">
|
||||
<?= $value ?>
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="<?= $this->getId('input') ?>"
|
||||
name="<?= $name ?>"
|
||||
value="<?= $value ?>"
|
||||
class="form-control"
|
||||
autocomplete="off" />
|
||||
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,5 @@
|
||||
/*
|
||||
* This is a sample StyleSheet file used by {{name}}
|
||||
*
|
||||
* You can delete this file if you want
|
||||
*/
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace {{studly_author}}\{{studly_plugin}}\ReportWidgets;
|
||||
|
||||
use Backend\Classes\ReportWidgetBase;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* {{name}} Report Widget
|
||||
*/
|
||||
class {{studly_name}} extends ReportWidgetBase
|
||||
{
|
||||
/**
|
||||
* @var string The default alias to use for this widget
|
||||
*/
|
||||
protected $defaultAlias = '{{studly_name}}ReportWidget';
|
||||
|
||||
/**
|
||||
* Defines the widget's properties
|
||||
* @return array
|
||||
*/
|
||||
public function defineProperties()
|
||||
{
|
||||
return [
|
||||
'title' => [
|
||||
'title' => 'backend::lang.dashboard.widget_title_label',
|
||||
'default' => '{{title_name}} Report Widget',
|
||||
'type' => 'string',
|
||||
'validationPattern' => '^.+$',
|
||||
'validationMessage' => 'backend::lang.dashboard.widget_title_error',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds widget specific asset files. Use $this->addJs() and $this->addCss()
|
||||
* to register new assets to include on the page.
|
||||
* @return void
|
||||
*/
|
||||
protected function loadAssets()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the widget's primary contents.
|
||||
* @return string HTML markup supplied by this widget.
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
try {
|
||||
$this->prepareVars();
|
||||
} catch (Exception $ex) {
|
||||
$this->vars['error'] = $ex->getMessage();
|
||||
}
|
||||
|
||||
return $this->makePartial('{{lower_name}}');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the report widget view data
|
||||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<div class="report-widget">
|
||||
<h3><?= e($this->property('title')) ?></h3>
|
||||
|
||||
<?php if (!isset($error)): ?>
|
||||
<p>This is the default partial content.</p>
|
||||
<?php else: ?>
|
||||
<p class="flash-message static warning"><?= e($error) ?></p>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
Reference in New Issue
Block a user