Add premium logo and professional theme for high-end clients
- Create custom SVG logo with professional branding - Implement premium color scheme with blue and gold accents - Add custom CSS with professional styling for cards, tables, buttons - Update logo template to use new logo.svg file - Create custom favicon for complete branding - Redesign homepage with premium content sections - Update resources page with membership tiers and premium pricing - Enhance contact page with testimonials and detailed information - Target audience: high-paying clients ($100+/hour) - Professional yet approachable design language 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush <crush@charm.land>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace Grav\Plugin\FlexObjects\Events;
|
||||
|
||||
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexDirectoryInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
|
||||
use Grav\Framework\Object\Interfaces\ObjectInterface;
|
||||
use Grav\Plugin\FlexObjects\Controllers\AbstractController;
|
||||
|
||||
/**
|
||||
* @template T as FlexObjectInterface
|
||||
* @template C as FlexCollectionInterface
|
||||
*/
|
||||
class FlexTaskEvent
|
||||
{
|
||||
/** @var string */
|
||||
public $task;
|
||||
/** @var string */
|
||||
public $type;
|
||||
/** @var string */
|
||||
public $key;
|
||||
|
||||
/** @var ObjectInterface */
|
||||
private $object;
|
||||
/** @var AbstractController */
|
||||
private $controller;
|
||||
|
||||
/**
|
||||
* @param AbstractController $controller
|
||||
* @param string $task
|
||||
*/
|
||||
public function __construct(AbstractController $controller, ObjectInterface $object, string $task)
|
||||
{
|
||||
$this->task = $task;
|
||||
$this->type = $controller->getDirectoryType();
|
||||
$this->key = $controller->getObjectKey();
|
||||
$this->object = $object;
|
||||
$this->controller = $controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AbstractController
|
||||
*/
|
||||
public function getController(): AbstractController
|
||||
{
|
||||
return $this->controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexDirectoryInterface
|
||||
*/
|
||||
public function getDirectory(): FlexDirectoryInterface
|
||||
{
|
||||
return $this->getController()->getDirectory();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexObjectInterface
|
||||
* @phpstan-return T
|
||||
*/
|
||||
public function getModifiedObject(): FlexObjectInterface
|
||||
{
|
||||
return $this->object;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexObjectInterface
|
||||
* @phpstan-return T
|
||||
*/
|
||||
public function getOriginalObject(): FlexObjectInterface
|
||||
{
|
||||
return $this->controller->getObject();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexCollectionInterface
|
||||
* @phpstan-return C
|
||||
*/
|
||||
public function getCollection(): FlexCollectionInterface
|
||||
{
|
||||
return $this->getController()->getDirectory()->getCollection();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user