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:
61
modules/backend/models/AccessLog.php
Normal file
61
modules/backend/models/AccessLog.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php namespace Backend\Models;
|
||||
|
||||
use Model;
|
||||
use Request;
|
||||
|
||||
/**
|
||||
* Model for logging access to the back-end
|
||||
*
|
||||
* @package winter\wn-backend-module
|
||||
* @author Alexey Bobkov, Samuel Georges
|
||||
*/
|
||||
class AccessLog extends Model
|
||||
{
|
||||
/**
|
||||
* @var string The database table used by the model.
|
||||
*/
|
||||
protected $table = 'backend_access_log';
|
||||
|
||||
/**
|
||||
* @var array Relations
|
||||
*/
|
||||
public $belongsTo = [
|
||||
'user' => User::class
|
||||
];
|
||||
|
||||
/**
|
||||
* Creates a log record
|
||||
* @param Backend\Models\User $user Admin user
|
||||
* @return self
|
||||
*/
|
||||
public static function add($user)
|
||||
{
|
||||
$record = new static;
|
||||
$record->user = $user;
|
||||
$record->ip_address = Request::getClientIp();
|
||||
$record->save();
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a recent entry, latest entry is not considered recent
|
||||
* if the creation day is the same as today.
|
||||
* @return self
|
||||
*/
|
||||
public static function getRecent($user)
|
||||
{
|
||||
$records = static::where('user_id', $user->id)
|
||||
->orderBy('created_at', 'desc')
|
||||
->limit(2)
|
||||
->get();
|
||||
|
||||
if (!count($records)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$first = $records->first();
|
||||
|
||||
return !$first->created_at->isToday() ? $first : $records->pop();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user