Class dmitrybtn\yimp\Yimp

Inheritancedmitrybtn\yimp\Yimp » yii\base\BaseObject

Main package class, used to render layout snippets.

To use YIMP you must create an object of this class and call dmitrybtn\yimp\Yimp::register() in layout. Also you should extend dmitrybtn\yimp\Navigator class in your application and add it to your controllers as nav property. Then, in controller actions you should set necessary properties of Navigator and they will be automatically shown in layout.

When this class inits, it looks for nav property of current controller. If this property absents or is not instance of dmitrybtn\yimp\Navigator, it will be created via DI-container using 'yimp-nav' alias. So, if you want to use YIMP with third-party modules, you should use 'yimp-nav' alias to set your default navigator in DI-container:

Yii::$container->set('yimp-nav', [
    'class' => '\your\navigator\Class',
    // Your config
])

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$menu dmitrybtn\yimp\MenuAdapter Component, used to render menu widgets dmitrybtn\yimp\Yimp
$nav dmitrybtn\yimp\Navigator Component, used to get layout config from controller dmitrybtn\yimp\Yimp
$templates array HTML templates for layout snippets. dmitrybtn\yimp\Yimp
$view \yii\web\View View object, used to render layout widgets. dmitrybtn\yimp\Yimp

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Overrides parent method to use items from dmitrybtn\yimp\Yimp::$templates as functions. dmitrybtn\yimp\Yimp
headerDesktop() Renders <h1> tag for desktops dmitrybtn\yimp\Yimp
headerMobile() Renders page header, displayed in navbar on mobiles dmitrybtn\yimp\Yimp
init() Class initialisation dmitrybtn\yimp\Yimp
register() Registers asset bundles for YIMP dmitrybtn\yimp\Yimp

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
DEFAULT_MENU_ALIAS 'yimp-menu' DI alias, used to instantiate dmitrybtn\yimp\Yimp::$menu property dmitrybtn\yimp\Yimp
DEFAULT_MENU_CONFIG array('class' => 'dmitrybtn\yimp\MenuAdapter') DI config, used to instantiate dmitrybtn\yimp\Yimp::$menu property dmitrybtn\yimp\Yimp
DEFAULT_NAV_ALIAS 'yimp-nav' DI alias, used to instantiate dmitrybtn\yimp\Yimp::$nav property dmitrybtn\yimp\Yimp
DEFAULT_NAV_CONFIG array('class' => 'dmitrybtn\yimp\Navigator') DI config, used to instantiate dmitrybtn\yimp\Yimp::$nav property dmitrybtn\yimp\Yimp
DESKTOP 'desktop' Used by dmitrybtn\yimp\MenuAdapter in dmitrybtn\yimp\MenuAdapter::$mode property and visibleMode menu item config to config visible property separately for desktops and mobiles. dmitrybtn\yimp\Yimp
MOBILE 'mobile' Used by dmitrybtn\yimp\MenuAdapter in dmitrybtn\yimp\MenuAdapter::$mode property and visibleMode menu item config to config visible property separately for desktops and mobiles. dmitrybtn\yimp\Yimp

Property Details

$menu public property

Component, used to render menu widgets

public dmitrybtn\yimp\MenuAdapter $menu self::DEFAULT_MENU_ALIAS
$nav public property

Component, used to get layout config from controller

public dmitrybtn\yimp\Navigator $nav self::DEFAULT_NAV_ALIAS
$templates public property

HTML templates for layout snippets.

Each item can be used by calling method with same name, i.e. $yimp->beginSidebars().

public array $templates = ['beginSidebars' => ['<div class="container-fluid position-fixed">''    <div class="row justify-content-center">'], 'beginLeftSidebar' => ['        <div class="d-none d-xl-block col-xl-2">'], 'beginLeftSidebarMenu' => ['            <div class="sidebar-menu sidebar-menu-left">'], 'endLeftSidebarMenu' => ['            </div>'], 'endLeftSidebar' => ['        </div>'], 'beginRightSidebar' => ['        <div class="d-none d-xl-block col-xl-2 offset-xl-8">'], 'beginRightSidebarMenu' => ['            <div class="sidebar-menu sidebar-menu-right">'], 'endRightSidebarMenu' => ['            </div>'], 'endRightSidebar' => ['        </div>'], 'endSidebars' => ['    </div>''</div>'], 'beginContent' => ['<div class="container-fluid">''    <div class="row justify-content-center">''        <div class="col-12 col-md-11 col-lg-10 col-xl-8">'], 'endContent' => ['        </div>''    </div>''</div>']]
$view public property

View object, used to render layout widgets.

public \yii\web\View $view null

Method Details

__call() public method

Overrides parent method to use items from dmitrybtn\yimp\Yimp::$templates as functions.

public mixed|string __call ( $name, $arguments )
$name string
$arguments array
headerDesktop() public method

Renders <h1> tag for desktops

public string headerDesktop ( )
headerMobile() public method

Renders page header, displayed in navbar on mobiles

public string headerMobile ( $options = [] )
$options array
init() public method

Class initialisation

public void init ( )
throws \yii\base\ErrorException
throws \yii\base\InvalidConfigException

Renders left menu

public string menuLeft ( $config = [] )
$config array
return string

Left menu HTML

throws Exception

Renders right menu

public string menuRight ( $config = [] )
$config array
return string

Right menu HTML

throws Exception

Renders top menu

public string menuTop ( $config = [] )
$config array
return string

Top menu HTML

throws Exception

Renders navbar

public string navbar ( )
return string

Navbar HTML

register() public method

Registers asset bundles for YIMP

public void register ( \yii\web\View $view )
$view \yii\web\View