Search by

liventin / base.module.options.provider.js.buttons.row

Liventin

There is no license information available for the latest version (v1.0.0) of this package.

Buttons row option provider with align and JS click handlers

Package info

github.com/Liventin/base.module.options.provider.js.buttons.row

Type:bitrix-d7-module

pkg:composer/liventin/base.module.options.provider.js.buttons.row

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-09-23 06:43 UTC

This package is auto-updated.

Last update: 2026-09-23 06:44:39 UTC


README

Bitrix Base Module

install | update

"require": {
    "liventin/base.module.options.provider.buttons": "^1.0.0"
}

redirect (optional)

"extra": {
  "service-redirect": {
    "liventin/base.module.options.provider.buttons": "module.name",
  }
}

Что это

Провайдер опции-ряда кнопок (type: 'buttons'). Опция не сохраняет значений; кнопки рисуются под таблицей (или в любом месте вкладки) с выравниванием и JS-обработчиком по клику:

$provider = $srvOptions->getProvider('buttons');

return $provider
    ->setAlign('left')             // left | center | right
    ->setButtons([
        [
            'title' => 'Экспорт полей',
            'js'    => 'alert("hello");', // выполняется по клику (в контексте кнопки)
        ],
        [
            'title' => 'Обновить',
            'align' => 'right',     // (опционально) переопределить выравнивание для кнопки
            'js'    => 'BX.reload();',
        ],
    ])
    ->getParamsToArray();

Параметры

  • title — текст кнопки.
  • js — JS-код, выполняемый по клику через new Function(js).call(this) (в контексте кнопки).
  • align — (в setAlign или на кнопке) left/center/right, по умолчанию left.

Пример опции

class ExportButtons implements Option
{
    public static function getType(): string { return 'buttons'; }

    public static function getParams(): array
    {
        /* @var \Base\Module\Src\Options\Providers\ButtonsProvider $provider */
        $provider = \Base\Module\Service\Container::get(\Base\Module\Service\Options\OptionsService::SERVICE_CODE)
            ->getProvider('buttons');

        return $provider
            ->setAlign('right')
            ->setButtons([
                ['title' => 'Экспорт', 'js' => 'BX.PopupWindowManager.create(...)'],
            ])
            ->getParamsToArray();
    }
}

Php Storm Live Template

<?php

namespace ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Options;

use ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Service\Options\Option;

class ButtonsSample implements Option
{
    public static function getId(): string
    {
        return 'sample_buttons';
    }

    public static function getName(): string
    {
        return 'Пример кнопок';
    }

    public static function getType(): string
    {
        return 'buttons';
    }

    public static function getTabId(): string
    {
        return TabMain::getId();
    }

    public static function getSort(): int
    {
        return 50;
    }

    public static function getParams(): array
    {
        return [
            'buttons' => [
                ['title' => 'Действие', 'js' => 'alert("click");'],
            ],
            'align' => 'left',
        ];
    }
}