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

Helloween    6

Решил я добавить себе в админку новый столбец для вывода ID товаров перед картинкой.

Добавил соответствующие изменения в файлы:

\admin\view\template\catalog\product_list.tpl

\admin\controller\catalog\product.php

\admin\language\russian\catalog\product.php

На первой странице все хорошо:

4xGIpLyE.jpg

 

А вот после переходов через пагинацию, даже после возврата на первую страницу, столбец ID пропадает и все остальные смещаются влево:

4xGIpLyF.jpg

 

Кто-нибудь знает, как побороть сей недуг пагинации?

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


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

Все, справился.

В скрипте пагинации еще надо было добавить поле ID

Осталось заморочиться с полем подбора по ID, чтобы не листать весь список....

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


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

движок? версия? похоже на ajax.

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


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

движок? версия? похоже на ajax.

 

ocStore Версия 1.5.5.1.2

Да, это Ajax

Поле ввода скопировал от модели, все остальное от filter_model скопировал и вставил, переименовав model в product_id

в файле \admin\controller\catalog\product.php

очень много мест оказалось с подобными вставками.

Осталось только найти, куда и как воткнуть подбор ID по введенным цифрам.

 

Вот так выглядит до ввода цифр:

4xGIpLyK.jpg

 

А вот так - после ввода:

4xGIpLyL.jpg

 

Очевидно, что он не пытается подобрать ID по введенным цифрам. Думал, что в регулярке цифр нет, но на модели проверил - есть и работает выбор по цифрам.

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


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

смотрите в шаблоне (непосредственно отправка, вывод/подстановка - делайте для product_id).

$('input[name=\'filter_model\']').autocomplete({
+ в контроллере товара

public function autocomplete() {
туда все идет - видно по адресу в ajax выше.

+

getProducts() в модели товаров (сама выборка).

Изменено пользователем afwollis
привел сообщение в порядок ))

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


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

смотрите в шаблоне (непосредственно отправка, вывод/подстановка - делайте для product_id).

$('input[name=\'filter_model\']').autocomplete({
+ в контроллере товара

public function autocomplete() {
туда все идет - видно по адресу в ajax выше.

+

getProducts() в модели товаров (сама выборка).

 

В самом шаблоне я уже сделал:

var filter_model = $('input[name=\'filter_model\']').attr('value');
if (filter_model) {
url += '&filter_model=' + encodeURIComponent(filter_model);
}

var filter_product_id = $('input[name=\'filter_product_id\']').attr('value');
if (filter_product_id) {
url += '&filter_product_id=' + encodeURIComponent(filter_product_id);
}

Вот в автокомлите:

	public function autocomplete() {
		$json = array();
		
		if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_model']) || isset($this->request->get['filter_product_id']) || isset($this->request->get['filter_category_id'])) {
			$this->load->model('catalog/product');
			$this->load->model('catalog/option');
			
			if (isset($this->request->get['filter_name'])) {
				$filter_name = $this->request->get['filter_name'];
			} else {
				$filter_name = '';
			}
			
			if (isset($this->request->get['filter_model'])) {
				$filter_model = $this->request->get['filter_model'];
			} else {
				$filter_model = '';
			}
			
			if (isset($this->request->get['filter_product_id'])) {
				$filter_product_id = $this->request->get['filter_product_id'];
			} else {
				$filter_product_id = '';
			}
			
			if (isset($this->request->get['limit'])) {
				$limit = $this->request->get['limit'];	
			} else {
				$limit = 20;	
			}			
						
			$data = array(
				'filter_name'  => $filter_name,
				'filter_model' => $filter_model,
				'filter_product_id' => $filter_product_id,
				'start'        => 0,
				'limit'        => $limit
			);
			
			if (isset($this->request->get['filter_category_id'])) {
				$data['filter_category_id'] = $this->request->get['filter_category_id'];
			}
			
			$results = $this->model_catalog_product->getProducts($data);
			
			foreach ($results as $result) {
				$option_data = array();
				
				$product_options = $this->model_catalog_product->getProductOptions($result['product_id']);	
				
				foreach ($product_options as $product_option) {
					$option_info = $this->model_catalog_option->getOption($product_option['option_id']);
					
					if ($option_info) {				
						if ($option_info['type'] == 'select' || $option_info['type'] == 'radio' || $option_info['type'] == 'checkbox' || $option_info['type'] == 'image') {
							$option_value_data = array();
							
							foreach ($product_option['product_option_value'] as $product_option_value) {
								$option_value_info = $this->model_catalog_option->getOptionValue($product_option_value['option_value_id']);
						
								if ($option_value_info) {
									$option_value_data[] = array(
										'product_option_value_id' => $product_option_value['product_option_value_id'],
										'option_value_id'         => $product_option_value['option_value_id'],
										'name'                    => $option_value_info['name'],
										'price'                   => (float)$product_option_value['price'] ? $this->currency->format($product_option_value['price'], $this->config->get('config_currency')) : false,
										'price_prefix'            => $product_option_value['price_prefix']
									);
								}
							}
						
							$option_data[] = array(
								'product_option_id' => $product_option['product_option_id'],
								'option_id'         => $product_option['option_id'],
								'name'              => $option_info['name'],
								'type'              => $option_info['type'],
								'option_value'      => $option_value_data,
								'required'          => $product_option['required']
							);	
						} else {
							$option_data[] = array(
								'product_option_id' => $product_option['product_option_id'],
								'option_id'         => $product_option['option_id'],
								'name'              => $option_info['name'],
								'type'              => $option_info['type'],
								'option_value'      => $product_option['option_value'],
								'required'          => $product_option['required']
							);				
						}
					}
				}
					
				$json[] = array(
					'product_id' => $result['product_id'],
					'name'       => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),	
					'model'      => $result['model'],
					'product_id'  => $result['product_id'],
					'option'     => $option_data,
					'price'      => $result['price']
				);	
			}
		}

		$this->response->setOutput(json_encode($json));
	}

Но с этим не работает.

Можно немного подробнее по поводу последнего?

 

 

getProducts() в модели товаров (сама выборка). 

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


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

Вопрос все еще не решен.

Помощь актуальна!

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


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

Если еще актуально - вот решение

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


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

Если еще актуально - вот решение

Спасибо, попробую.

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От fazli
      Как добавить пагинацию в админке со списком опций?
      Есть опция "Цвет товара", только открыть эту опцию в админке очень сложно — слишком большой список фото образцов цвета товара. В итоге, страница зависает на долго, и открывается только через минут 20. Может есть способ решить этот вопрос?
      Предполагаю, что если добавить пагинацию и выводить на странице к примеру по 20 опций все решится.
    • От butya4ok
      Здравствуйте. Подскажите, куда копать.
      Opencart 2.1.0.2 Русская сборка.
      Установлен Mega Filter Pro 2.0.2.1
       
      Перестала корректно работать пагинация в категориях. При выбранных фильтрах для товаров ссылки пагинации ведут на страницы без выбранных фильтров.
      Например, находимся на странице http://.../kabelni-vvedennya?mfp=11-r-z-blennya[1''NPT,1%2F2''NPT] , а ссылки внизу ведут просто на http://.../kabelni-vvedennya?page=3  http://.../kabelni-vvedennya?page=2
       
      На тестовом хостинге есть старая версия, где всё работает.
      Подскажите, где искать причину (или как искать). Сравнивал файлы пагинации, mfp, категории - не увидел отличий.
    • От tamarad
      Доброго времени суток!
      В osStore 2.1.0 в панели управления админки в разделе Последние заказы при нажатии на значок просмотра появляется сообщение об ошибке  "error undefined"(  как на скриншоте).
      Как исправить эту ошибку?
      Спасибо.

    • От legioner26
      Реализован вывод в список товаров артикулов и кодов, кому интересно пишите, реализую.

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

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