Перейти к содержанию
voron121

Редирект на ту же страницу после редактирования товара в админке

Рекомендуемые сообщения

Доброго времени суток. Господа , есть вопрос который никак не могу решить. Возможно кто то знает как реализовать. Собственно суть : в списке товаров в админке опенкарта жмем кнопку изменить - открывается страница с редактированием товара. После того как мы нажимаем кнопку сохранить нас автоматически кидает в список товаров. При этом не запоминается страница с которой мы пришли и кидает сразу на первую. То есть мы в списке товаров на 10 странице - выбрали товар  -изменили его - сохранили и нас автоматом кидает на первую страницу. Как сделать так , что бы после сохранения товара нас кидало на страницу с которой мы пришли ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не совсем то. Мне не нужна кнопка применить - мне нужно что бы после сохранения меня не перекидывало на первыуй страницу в списке товаров а оставляло на той же странице СПИСКА ТОВАРОВ 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не совсем то. Мне не нужна кнопка применить - мне нужно что бы после сохранения меня не перекидывало на первыуй страницу в списке товаров а оставляло на той же странице СПИСКА ТОВАРОВ 

Нашли ли решение задачи? Мне тоже интересно ее решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашли ли решение задачи? Мне тоже интересно ее решение.

нет. Решил сделать по другому - ссылка для редактирования товара преобрела target="blanck" так что теперь просто  в новой вкладке открывается страница редактирования 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет. Решил сделать по другому - ссылка для редактирования товара преобрела target="blanck" так что теперь просто  в новой вкладке открывается страница редактирования 

Тоже не плохо, спасибо за идею!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет. Решил сделать по другому - ссылка для редактирования товара преобрела target="blanck" так что теперь просто  в новой вкладке открывается страница редактирования 

Единственный вопрос, в каком файле находится шаблон?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственный вопрос, в каком файле находится шаблон?

если не ошибаюсь admin/catalog/product_list.tpl 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел)

Для тех кому тоже интересно оставлю это здесь!)

 

Путь к файлу: admin/view/template/catalog

Файл product_list.tpl

найти:

              <td class="right"><?php foreach ($product['action'] as $action) { ?>
                [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
                <?php } ?></td>

Привести к виду:

              <td class="right"><?php foreach ($product['action'] as $action) { ?>
                [ <a target="blanck" href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
                <?php } ?></td>

дописав target="blanck"

 

Для категорий, тоже самое в файле 

category_list.tpl

Примерно 42 строка))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле, возвращение к странице списка, на которой находится товар, при сохранении или отмене редактирования, предусмотрено по-умолчанию, просто там, видать, баг (по крайней мере в версии 1.5.5.1.2). Его можно самостоятельно исправить в файле admin/controller/catalog/product.php. Нужно найти фрагмент текста

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        $data = array(
            'filter_name'      => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'      => $filter_model,
            'filter_price'      => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

и после

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }

добавить

        if (isset($this->request->get['page'])) {
            $url .= '&page=' . $this->request->get['page'];
        }

чтобы получилось так

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        if (isset($this->request->get['page'])) {
            $url .= '&page=' . $this->request->get['page'];
        }
        
        $data = array(
            'filter_name'     => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'    => $filter_model,
            'filter_price'    => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

Данное решение подходит для версии ocStore 1.5.5.1.2, для других не проверялось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле, возвращение к странице списка, на которой находится товар, при сохранении или отмене редактирования, предусмотрено по-умолчанию, просто там, видать, баг (по крайней мере в версии 1.5.5.1.2). Его можно самостоятельно исправить в файле admin/controller/catalog/product.php. Нужно найти фрагмент текста

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        $data = array(
            'filter_name'      => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'      => $filter_model,
            'filter_price'      => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

и после

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }

добавить

        if (isset($this->request->get['page'])) {
            $url .= '&page=' . $this->request->get['page'];
        }

чтобы получилось так

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        if (isset($this->request->get['page'])) {
            $url .= '&page=' . $this->request->get['page'];
        }
        
        $data = array(
            'filter_name'     => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'    => $filter_model,
            'filter_price'    => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

Данное решение подходит для версии ocStore 1.5.5.1.2, для других не проверялось.

У меня OC 1.5.6 открыл файл product.php и у меня все так и есть))

Единственное, есть еще несколько строк. Вот так выглядит кусок данного кода: 

if (isset($this->request->get['order'])) {
			$url .= '&order=' . $this->request->get['order'];
		}
		
		if (isset($this->request->get['page'])) {
			$url .= '&page=' . $this->request->get['page'];
		}

  		$this->data['breadcrumbs'] = array();

   		$this->data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('text_home'),
			'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
      		'separator' => false
   		);

   		$this->data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('heading_title'),
			'href'      => $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'),       		
      		'separator' => ' :: '
   		);
		
		$this->data['insert'] = $this->url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL');
		$this->data['copy'] = $this->url->link('catalog/product/copy', 'token=' . $this->session->data['token'] . $url, 'SSL');	
		$this->data['delete'] = $this->url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');
    	
		$this->data['products'] = array();

		$data = array(
			'filter_name'	  => $filter_name, 
			'filter_model'	  => $filter_model,
			'filter_price'	  => $filter_price,
			'filter_quantity' => $filter_quantity,
			'filter_status'   => $filter_status,
			'sort'            => $sort,
			'order'           => $order,
			'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
			'limit'           => $this->config->get('config_admin_limit')
		);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы смотрите код в методе getList, а нужно в методе filter. Ищите точное вхождение

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        $data = array(
            'filter_name'      => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'      => $filter_model,
            'filter_price'      => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Вы смотрите код в методе getList, а нужно в методе filter. Ищите точное вхождение

        if (isset($this->request->get['order'])) {
            $url .= '&order=' . $this->request->get['order'];
        }
        
        $data = array(
            'filter_name'      => $filter_name, 
            'filter_category_id'      => $filter_category_id, 
            'filter_manufacturer_id'      => $filter_manufacturer_id, 
            'filter_model'      => $filter_model,
            'filter_price'      => $filter_price,
            'filter_quantity' => $filter_quantity,
            'filter_status'   => $filter_status,
            'sort'            => $sort,
            'order'           => $order,
            'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
            'limit'           => $this->config->get('config_admin_limit')
        );

У меня в данном файле присутствую всего две строчки $data = array(

Первая строчка описана мной выше, вторая:

if (isset($this->request->get['limit'])) {
				$limit = $this->request->get['limit'];	
			} else {
				$limit = 20;	
			}			
						
			$data = array(
				'filter_name'  => $filter_name,
				'filter_model' => $filter_model,
				'start'        => 0,
				'limit'        => $limit
			);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это связанно с тем, что у вас другая версия. Только что скачал OpenCart версии 1.5.6, там нету метода filter в контроллере ControllerCatalogProduct. Значит, предложенное мною решение вам не подходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это связанно с тем, что у вас другая версия. Только что скачал OpenCart версии 1.5.6, там нету метода filter в контроллере ControllerCatalogProduct. Значит, предложенное мною решение вам не подходит.

Очень жаль((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

самый простой вариант, не требующий затрат и вмешательство в код - открывать окно редактирования товара в новой вкладке по ПКМ ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в методе filter()

		if (isset($this->request->get['page'])) {
			$url_with_page =  '&page=' . $this->request->get['page'];
		} else {
			$url_with_page =  $url;
		}

		foreach ($results as $result) {
			$action = array();
			
			$action[] = array(
				'text' => $this->language->get('text_edit'),
				'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url_with_page, 'SSL')
			);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

в методе filter()

		if (isset($this->request->get['page'])) {
			$url_with_page =  '&page=' . $this->request->get['page'];
		} else {
			$url_with_page =  $url;
		}

		foreach ($results as $result) {
			$action = array();
			
			$action[] = array(
				'text' => $this->language->get('text_edit'),
				'href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url_with_page, 'SSL')
			);

Не смог найти метод filter() 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Супер! Спасибо всем огромное!


Для моего ocStore 1.5.5.1 подошло решение подправить метод filter(). Теперь все работает четко!


Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рано обрадовался, сначала вроде работало. Сейчас проверяю, такой глюк, перехожу на страницу например 5, и все, на другие переходить вообще не получается, после обновления страницы опять же получается перейти только на одну любую страницу и все. Если захожу в товар и сохраняюсь, возвращаюсь на туже, но перейти могу только один раз.... 

В чем может быть дело....?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно кто-то нашел решение задачи? поделитесь))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рано обрадовался, сначала вроде работало. Сейчас проверяю, такой глюк, перехожу на страницу например 5, и все, на другие переходить вообще не получается, после обновления страницы опять же получается перейти только на одну любую страницу и все. Если захожу в товар и сохраняюсь, возвращаюсь на туже, но перейти могу только один раз.... 

В чем может быть дело....?

РЕШЕНИЕ ЕСТЬ ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.