Overview

Namespaces

  • Charcoal
    • Ui
      • Dashboard
      • Form
      • FormGroup
      • FormInput
      • Layout
      • Menu
      • MenuItem
      • ServiceProvider

Classes

  • Charcoal\Ui\AbstractUiItem
  • Charcoal\Ui\Dashboard\AbstractDashboard
  • Charcoal\Ui\Dashboard\DashboardBuilder
  • Charcoal\Ui\Dashboard\DashboardConfig
  • Charcoal\Ui\Dashboard\FormInputConfig
  • Charcoal\Ui\Dashboard\GenericDashboard
  • Charcoal\Ui\Form\AbstractForm
  • Charcoal\Ui\Form\FormBuilder
  • Charcoal\Ui\Form\FormConfig
  • Charcoal\Ui\Form\GenericForm
  • Charcoal\Ui\FormGroup\AbstractFormGroup
  • Charcoal\Ui\FormGroup\FormGroupConfig
  • Charcoal\Ui\FormGroup\GenericFormGroup
  • Charcoal\Ui\FormInput\AbstractFormInput
  • Charcoal\Ui\FormInput\FormInputBuilder
  • Charcoal\Ui\FormInput\GenericFormInput
  • Charcoal\Ui\Layout\AbstractLayout
  • Charcoal\Ui\Layout\GenericLayout
  • Charcoal\Ui\Layout\LayoutBuilder
  • Charcoal\Ui\Layout\LayoutConfig
  • Charcoal\Ui\Layout\LayoutFactory
  • Charcoal\Ui\Menu\AbstractMenu
  • Charcoal\Ui\Menu\GenericMenu
  • Charcoal\Ui\Menu\MenuBuilder
  • Charcoal\Ui\Menu\MenuConfig
  • Charcoal\Ui\Menu\MenuFactory
  • Charcoal\Ui\MenuItem\AbstractMenuItem
  • Charcoal\Ui\MenuItem\GenericMenuItem
  • Charcoal\Ui\MenuItem\MenuItemBuilder
  • Charcoal\Ui\MenuItem\MenuItemConfig
  • Charcoal\Ui\MenuItem\MenuItemFactory
  • Charcoal\Ui\ServiceProvider\DashboardServiceProvider
  • Charcoal\Ui\ServiceProvider\FormServiceProvider
  • Charcoal\Ui\ServiceProvider\LayoutServiceProvider
  • Charcoal\Ui\ServiceProvider\MenuServiceProvider
  • Charcoal\Ui\ServiceProvider\UiServiceProvider
  • Charcoal\Ui\UiItemConfig

Interfaces

  • Charcoal\Ui\Dashboard\DashboardInterface
  • Charcoal\Ui\Form\FormInterface
  • Charcoal\Ui\FormGroup\FormGroupInterface
  • Charcoal\Ui\FormInput\FormInputInterface
  • Charcoal\Ui\Layout\LayoutAwareInterface
  • Charcoal\Ui\Layout\LayoutInterface
  • Charcoal\Ui\Menu\MenuInterface
  • Charcoal\Ui\MenuItem\MenuItemInterface
  • Charcoal\Ui\UiGroupingInterface
  • Charcoal\Ui\UiItemInterface

Traits

  • Charcoal\Ui\Dashboard\DashboardTrait
  • Charcoal\Ui\Form\FormTrait
  • Charcoal\Ui\FormGroup\FormGroupTrait
  • Charcoal\Ui\Layout\LayoutAwareTrait
  • Charcoal\Ui\Layout\LayoutTrait
  • Charcoal\Ui\UiGroupingTrait
  • Charcoal\Ui\UiItemTrait
  • Overview
  • Namespace
  • Class
  1: <?php
  2: 
  3: namespace Charcoal\Ui;
  4: 
  5: use InvalidArgumentException;
  6: 
  7: // From PSR-3 (Logger)
  8: use Psr\Log\LoggerAwareInterface;
  9: use Psr\Log\LoggerAwareTrait;
 10: use Psr\Log\NullLogger;
 11: 
 12: use Pimple\Container;
 13: 
 14: // From 'charcoal-config'
 15: use Charcoal\Config\AbstractEntity;
 16: 
 17: // From 'charcoal-translator'
 18: use Charcoal\Translator\TranslatorAwareTrait;
 19: 
 20: // From 'charcoal-user'
 21: use Charcoal\User\AuthAwareInterface;
 22: use Charcoal\User\AuthAwareTrait;
 23: 
 24: // From 'charcoal-view'
 25: use Charcoal\View\ViewableInterface;
 26: use Charcoal\View\ViewableTrait;
 27: 
 28: // Intra-module ('charcoal-ui') dependencies
 29: use Charcoal\Ui\UiItemInterface;
 30: use Charcoal\Ui\UiItemTrait;
 31: 
 32: /**
 33:  * An abstract UI Item.
 34:  *
 35:  * Abstract implementation of {@see \Charcoal\Ui\UiItemInterface}.
 36:  */
 37: abstract class AbstractUiItem extends AbstractEntity implements
 38:     AuthAwareInterface,
 39:     LoggerAwareInterface,
 40:     UiItemInterface
 41: {
 42:     use AuthAwareTrait;
 43:     use LoggerAwareTrait;
 44:     use TranslatorAwareTrait;
 45:     use UiItemTrait;
 46:     use ViewableTrait;
 47: 
 48:     /**
 49:      * A UI item is active by default.
 50:      *
 51:      * @var boolean
 52:      */
 53:     private $active = true;
 54: 
 55:     /**
 56:      * Return a new UI item.
 57:      *
 58:      * @param array|\ArrayAccess $data The class depdendencies.
 59:      */
 60:     public function __construct(array $data = null)
 61:     {
 62:         if (!isset($data['logger'])) {
 63:             $data['logger'] = new NullLogger();
 64:         }
 65:         $this->setLogger($data['logger']);
 66: 
 67:         if (isset($data['container'])) {
 68:             $this->setDependencies($data['container']);
 69:         }
 70:     }
 71: 
 72:     /**
 73:      * Inject dependencies from a DI Container.
 74:      *
 75:      * @param  Container $container A dependencies container instance.
 76:      * @return void
 77:      */
 78:     public function setDependencies(Container $container)
 79:     {
 80:         $this->setTranslator($container['translator']);
 81:         $this->setAuthenticator($container['authenticator']);
 82:         $this->setAuthorizer($container['authorizer']);
 83:     }
 84: 
 85:     /**
 86:      * Activates/deactivates the UI item.
 87:      *
 88:      * @param boolean $active Activate (TRUE) or deactivate (FALSE) the UI item.
 89:      * @return AbstractUiItem Chainable
 90:      */
 91:     public function setActive($active)
 92:     {
 93:         $this->active = !!$active;
 94: 
 95:         return $this;
 96:     }
 97: 
 98:     /**
 99:      * Determine if the UI item is active.
100:      *
101:      * @return boolean
102:      */
103:     public function active()
104:     {
105:         return $this->active;
106:     }
107: }
108: 
API documentation generated by ApiGen