DARTHARTH

Быстрое редактирование со страницы товара

Наткнулся на этот прием на сайте netsh.pp.ua, выкладываю тут, что бы не забыть. Прием опробовался на 2.3.

Сначала добавляем функцию в файле system/library/url.php

public function linkEditProduct($route, $args = '', $secure = false) {
	if ($this->ssl && $secure) {
		$url = $this->ssl . 'admin/index.php?route=' . $route;
	} else {
		$url = $this->url . 'admin/index.php?route=' . $route;
	}
	if ($args) {
		if (is_array($args)) {
			$url .= '&' . http_build_query($args);
		} else {
			$url .= str_replace('&', '&', '&' . ltrim($args, '&'));
		}
        return $url;
	}
}	

Далее добавим текст для кнопки редактирования товара в catalog/language/ru-ru/product/product.php

/// Кнопка редактирования товара
 $_['text_button_edit'] = 'Редактировать товар';

Далее добавим код в контроллер catalog/controller/product/product.php. Находим строку $product_info = $this->model_catalog_product->getProduct($product_id); (у меня нашло две таких строки, я добавлял после первой) и после неё добавляем

$data['button_edit_product'] = $this->language->get('text_button_edit');

На пару строк ниже будет if ($product_info) { добавляем

if(!empty($this->session->data['user_id']) && !empty($this->session->data['token'])){
$data['edit_product'] = '<a class="btn btn-warning btn-lg btn-block" href="'.$this->url->linkEditProduct('catalog/product/edit', 'token=' . $this->session->data['token'].'&product_id='.$product_id, 'true').'" target="_blank" rel="noopener">'.$data['button_edit_product'].'</a>';
}

Теперь добавляем в файле шаблона catalog/view/theme/default/template/product/product.tpl ссылку на вывод кнопки

<?php if(!empty($edit_product)){echo $edit_product; } ?>

Теперь у нас на странице товара отображается кнопка на редактирование товара, которая бы отображалась только для залогиненного пользователя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up