2013-12-15 3 views
4

Я хочу добавить кнопку загрузки для каждой строки в moduleadmincontroller helper.Добавить Custom Row action в Prestashop ModuleAdminController

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

$this->addRowAction('download'); 

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

ответ

5

как вы знаете, действия - это массив по умолчанию, у которого есть массив значений по умолчанию ('view', 'edit', 'delete', 'duplicate'); и вы можете использовать это, но если вы хотите добавить новое действие, которое вы должны использовать некоторые function.for Например, вы можете перейти к your_prestashop/контроллеры/администратор/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() функция и do something lik загрузить

public function initProcess() 
{ 
    parent::initProcess(); 
    if (Tools::getValue('export'.$this->table)) 
    { 
     $this->display = 'export'; 
     $this->action = 'export'; 
    } 
} 
+0

Хотя это не решит мою цель, но это помогло мне в другом месте. Я хочу загрузить изображение, а не данные db. Я это исправил. – biztiger

+0

Как вы исправили _that_ @biztiger? – Matt