8 (800) 302-62-68
+7 (499) 348-29-58
sale@rbs-crm.ru

Документация разработчика

Кнопки

Для добавления кнопки на «Форму редактирования» необходимо прописать методы на закладке «Сценария (PHP-код)».

Основными методы, вызываемые в методе onPlay():

  • addActionPanelButtons() — добавление кнопки
  • addMoreButtons() — добавление кнопки в кнопку «Еще…»
  • removeActionButton() — удаление кнопки

Все кнопки создаются в массиве $this->moreButtons, у которых первый ключ — это название группы. Для метода addMoreButtons() уже зарезервирован ключ «MORE».

Параметры для кнопок в группе:

  • name — наименование
  • link — если установлен этот флаг, то кнопка кликабельна (ссылка)
  • system_name — используется как уникальное значение для удаления по этому ключу.
  • class — устанавливает это поле в атрибут class
  • params — устанавливает атрибуты
  • icon — добавление иконки у кнопки. Перед названием: [‘before’ => ‘fa fa-save’], после названия: [‘after’ => ‘fa fa-save’]
  • access — к кнопке подключить уровень глобальный доступа по флагам («Настройки» — «Пользователи и права» — «Доступ к объектам»). Например: ACCESS_EXPORT. Если у пользователя в к этому объекту доступа на экспорт нет, то вся группа кнопок показываться не будет пользователю
  • items — массив для submenu у кнопки (вложенные кнопки)

Пример: Добавить кнопку «Списать» (товар)

$this->addActionPanelButtons([
    "WRITEOFF" => [
        'link' => "javascript:createDocument('writeoff', true)",
        'name' => Language::getVariable($this->form, "Writeoff"),
        'icon' => ['before' => 'fa fa-minus'],
        'class' => 'red-mint'
    ]
]);

Пример: Добавим группу кнопок в ключ «SAVEAS» (в кнопку «Сохранить как»):

/**
* ADD SAVE BUTTONS
*/
$this->addActionPanelButtons([
    "SAVEAS" => [
        "name"   => "Сохранить как...",
        "class"  => "purple-plum",
        "icon"   => ['before' => 'fa fa-save'],
        "access" => ACCESS_EXPORT,
        "items"  => [
            [
                "link"   => "javascript:prn(1)",
                "name"   => "PDF",
                "params" => "target='_blank' stamp='1' print-this='/companies/" . $this->structure->owner->id . "/orders/" . $this->structure->id . "/main/?stamp=1' mode='pdf' ",
                "icon"   => ['before' => 'fa fa-file-pdf-o'],
            ],
            [
                "link"   => "pko",
                "name"   => "DOC",
                "params" => "target='_blank' stamp='0'  print-this='/companies/" . $this->structure->owner->id . "/orders/" . $this->structure->id . "/main/?stamp=0' mode='doc' ",
                "icon"   => ['before' => 'fa fa-file-text-o'],
            ],
        ]
    ],
]);

Результат:

Пример: Добавить кнопку «Создать Счет» в кнопку “Еще действия”

$this->addMoreButtons([
    [
        "onclick" => "return createDocument('order')",
        "name"    => "Создать Счет",
        "params"  => "target='_blank'",
        "icon"    => ['before' => 'fa fa-plus'],
    ],
]);

Пример: Удалить кнопку restore из группы кнопок «Еще» (more) панели (для определенного пользователя)

$this->removeActionButton("MORE", "system_name", "restore");

Блокировка кнопок «Сохранить» и «Сохранить и закрыть»

Для блокировки кнопок “Сохранить” и “Сохранить и закрыть” в документах и справочниках необходимо в «JS-форму» добавить код:

$(document).ready(function () {
   $('[type="submit"]').addClass('disabled');
});