Добавить действие Custom Row в Prestashop ModuleAdminController

Я хочу добавить кнопку загрузки для каждой строки в помощнике moduleadmincontroller.

Я попытался добавить его, используя следующий код в функции RenderList. Но это не работает.

$this->addRowAction('download');

Пожалуйста, дайте мне знать, могу ли я добавить настраиваемое действие для каждой строки и как его обработать.


person biztiger    schedule 15.12.2013    source источник


Ответы (1)


как вы знаете, действия - это массив по умолчанию, который имеет массив значений по умолчанию ('просмотр', 'редактировать', 'удалить', 'дублировать'); и вы можете использовать это, но если вы хотите добавить новое действие, вы должны использовать некоторую функцию. Например, вы можете перейти к your_prestashop/controllers/admin/AdminRequestSqlController.php, этот класс добавляет новое действие с именем «экспорт»

          $this->addRowAction('export');

затем для создания ссылки для этого действия используется функция displayExportLink(), как вы можете видеть в приведенном ниже коде.

         public function displayExportLink($token, $id)
{
    $tpl = $this->createTemplate('list_action_export.tpl');

    $tpl->assign(array(
        'href' => self::$currentIndex.'&token='.$this->token.'&
                     '.$this->identifier.'='.$id.'&export'.$this->table.'=1',
            'action' => $this->l('Export')
    ));

    return $tpl->fetch();
}

а затем вы можете получить свое новое действие с помощью функции initProcess() или функции initcontent() и сделать что-то вроде загрузки

public function initProcess()
{
    parent::initProcess();
    if (Tools::getValue('export'.$this->table))
    {
        $this->display = 'export';
        $this->action = 'export';
    }
}
person moein kh    schedule 16.12.2013
comment
Хотя это не решит мою цель, но это помогло мне в другом месте. Я хочу загрузить изображение, а не данные БД. Я исправил это. - person biztiger; 19.12.2013
comment
Как вы исправили это @biztiger? - person Matt; 25.08.2017