Как при написании плагина получить значение чекбокса?

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

narem
narem
Репутация: 0
Сообщения: 9
Зарегистрирован: 07.05.2023
С нами: 11 месяцев 19 дней

Сообщение #1 narem » 15.06.2023, 07:21

Файл init

Код: Выделить всё

class Init extends AbstractInit
{

  public function install()
  {
    $this->setBackendMainController('ModuleAdminCheckBox');
    $this->migrateEntityField(ProductsEntity::class, (new EntityField('1c'))->setTypeTinyInt(1, true));
  }

  public function Init()
  {
    $this->registerBackendController('ModuleAdminCheckBox');
    $this->addBackendControllerPermission('ModuleAdminCheckBox', 'products');
    $this->addBackendBlock('product_general', 'product_one_c_checkbox.tpl');
    $this->registerQueueExtension([BackendProductsHelper::class, 'add'], [BackendExtender::class, 'checkboxAdd']);
    $this->registerQueueExtension([BackendProductsHelper::class, 'update'], [BackendExtender::class, 'checkboxUpdate']);
  }
}


В файле BackendExtender

Код: Выделить всё

 public function __construct(Request $request, Image $image, Config $config, EntityFactory $entityFactory)
    {
      $this->request = $request;
     
      $this->imageCore = $image;
      $this->config = $config;
      $this->featureEntity = $entityFactory->get(FeaturesEntity::class);
    }

    public function checkboxAdd($productId)
    {
      $this->updateCheckbox($productId);
    }

    public function checkboxUpdate($productId)
    {
      $this->updateCheckbox($productId->id);
    }

    protected function updateCheckbox($productId)
    {
      if($productId && $check = $this->request->get('1c_checkbox')) {
        var_dump(1);die;
      } else {
        var_dump(2);die;
      }
    }


Всегда при падает в else, вне зависимости добавлен чек бокс или нет
Сам чекбокс

Код: Выделить всё

<div style="display: flex; margin-top: 10px;">1C:<input type='checkbox' name="1c_checkbox" {if $product->one_c_checkbox == 1}checked=""{/if}></div>

Как правильно в BackendExtender получить статус чекбокса?

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #2 korshunov » 15.06.2023, 07:57

Тут что-то странное: $this->updateCheckbox($productId->id); Скорее всего, неверно.

Очень возможно, вместо $this->request->get('1c_checkbox') надо писать $this->request->post('1c_checkbox')...

А вообще надо бы целиком свой модуль выкладывать...


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 123 гостя