Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах

  • 1 month later...

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


Нашел)

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

 

Путь к файлу: 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() 

Надіслати
Поділитися на інших сайтах


  • 8 months later...

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

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

Надіслати
Поділитися на інших сайтах


  • 5 months later...
  • 4 months later...

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

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.