Обратный вызов Prestashop HelperList .. как сделать простую кнопку со значением на URL? - PullRequest
0 голосов
/ 04 июля 2018

Я делаю модуль, и мне нужно сделать пользовательскую кнопку в моем списке помощников, чтобы получить значение и открыть файл, но мой обратный вызов на HelperList не работает ...

Мой код:

 protected function initList()
{
    $this->_select = 'a.id_rec_ps_beta AS id_lol';

    $this->fields_list = array(
        'name' => array(
            'title' => $this->getTranslator()->trans('Category name', array(), 'Modules.Recpsbeta.Admin'),
            'class' => 'fixed-width-xxl',
            'type' => 'text',
            'search' => false,
            'orderby' => false
        ),

        .....

        'id_lol' => array(
            'title' => 'LOL',
            'align' => 'text-center',
            'callback' => 'giveMyCallBack',
            'orderby' => false,
            'search' => false,
            'remove_onclick' => true
        )
    );


    $helper = new HelperList();
    $helper->shopLinkType = '';
    $helper->simple_header = false;
    $helper->identifier = 'id_rec_ps_beta';
    //$helper->definition = $helper->identifier;
    $helper->actions = array('edit', 'delete');
    $helper->show_toolbar = true;
    $helper->toolbar_btn['new'] =  array(
        'href' => AdminController::$currentIndex.'&configure='.$this->name.'&add'.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
        'desc' => $this->getTranslator()->trans('Add new', array(), 'Modules.Recpsbeta.Admin')
    );
    $helper->toolbar_btn['edit'] =  array(
        'href' => AdminController::$currentIndex.'&configure='.$this->name.'&setting'.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
        'desc' => $this->getTranslator()->trans('Setting', array(), 'Modules.Recpsbeta.Admin'),
    );
    $helper->title = $this->displayName;
    $helper->table = $this->name;
    $helper->orderBy = 'position';
    $helper->orderWay = 'ASC';
    $helper->position_identifier = 'id_rec_ps_beta';
    $helper->token = Tools::getAdminTokenLite('AdminModules');
    $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;
    return $helper;
}

После того, как я вызову свою функцию:

public function giveMyCallBack ($id_rec_ps_beta)
  {
   return 'lol';
  }

Но мой список вроде:

enter image description here

А перед моей страницей сообщают об ошибке: "Файл строки предупреждения 335 C: \ wamp64 \ www \ ps2 \ classes \ helper \ HelperList.php [2] call_user_func_array () ожидает, что параметр 1 является допустимым обратным вызовом, класс AdminModulesController не имеет метода giveMyCallBack *

enter image description here

Кто-нибудь, помогите мне, пожалуйста? Я не нашел решения в течение нескольких дней.

Thx.

PrestaShop: 1.7.3.3 Apache: 2.4.27 (Win64) PHP: 5.6.31 MySQL: 5.7.19

1 Ответ

0 голосов
/ 12 июля 2018

На данный момент я нашел только это решение:

    $this->fields_list = array(
            'id_rec_ps_beta' => array(
                'title' => $this->trans('Title', array(), 'Admin.Global'),
                'search' => false,
                'align' => 'text-center',
                'class' => 'fixed-width-xs',
                'prefix' => '<span class="btn-group-action"><span class="btn-group"><a class="btn btn-default" style="padding: 0px 0px;border-color: #efefef;" href="'.AdminController::$currentIndex.'&configure='.$this->name.'&gen'.$this->name.'&btngenrecpsbeta&id_rec_ps_beta=',
                'suffix' => '&print=1&token='.Tools::getAdminTokenLite('AdminModules').'"><img src="'.__PS_BASE_URI__.'modules/recpsbeta/views/img/sync.png" style="width: 35px;"></a></span></span>'
            ),
);

Я надеюсь, что это может быть полезно для некоторых.

...