Helloween

Новые поля в админке и пагинация

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

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 091

движок? версия? похоже на 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 091

смотрите в шаблоне (непосредственно отправка, вывод/подстановка - делайте для 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    768

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

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От alexsoftdev


      Просмотр файла Модуль для Opencart - NeoSeo Удаление неиспользуемых картинок
      Выдача лицензии на Модуль для Opencart - NeoSeo Удаление неиспользуемых картинок происходит автоматически. При оформлении заказа, обязательно укажите доменное имя вашего сайта.
       
      У вас накопилось так много изображений что требуется поменять тариф на хостинге? А все ли изображения используются? Возможно большая их часть была нужна когда-то, а теперь в ней уже нет необходимости?
      Модуль «NeoSeo Удаление неиспользуемых изображений» позволяет проверить и удалить все изображения, которые уже не нужны, включая и их закешированные версии.
      Учитываются следующие изображения:
      1. Изображения товаров, включая дополнительные
      2. Изображений категорий
      3. Изображения производителей
      4. Изображения банеров
      5. Изображения из загрузок
      6. Изображения из заказов
      7. Изображения опций ( если есть )
      8. Изображения из настроек
      9. Изображения сертификатов
      Если ссылка на изображение была добавлена вручную, например в html описание товара, то такие изображения не учитываются. Смотрите внимательно что вы удаляете и лучше всего изображения для описаний храните в отдельном каталоге.
      После установки модуля заходите в его настройки, выбираете каталог для проверки, нажимаете проверить и вот перед вами список всех лишних изображений.
      Требования:
      PHP 5.3 и выше Opencart 1.5.*, 2.* VQMOD 2.4.1 и выше ( только для oc 1.5.* ) IonCube Loader ( лицензия на домен ) Лицензия:
      на ОДИН домен. Не на сайт, не на человека, не на студию. У вас несколько доменов подключены к одному сайту - значит вам нужно несколько лицензий. на использование ( допускается установка клиентам при покупке лицензий под них ), но не на перепродажу. Модули от NeoSeo это:
      Безупречное качество Дружественный интерфейс Богатая функциональность Высокое быстродействие Оперативная поддержка Установка на примере опенкарт 2.Х ( для остальных смотрим инструкции внутри архива ):
      Запросите ключ лицензии по email license@neoseo.com.ua, при этом указав:
          - название сайта, на котором вы купили модуль. Например opencartforum.com
          - ваш ник на этом сайте, например, alexsoftdev
          - номер заказа на этом сайте, например 355446
          - основной домен сайта для активации лицензии, например lamoda.ru
          - тестовый домен сайта для разработки, например lamoda.neoseo.com.ua
      Распакуйте и загрузите ключ в корень сайта, рядом с robots.txt
      Если у вас правильно настроен и подключен ftp, то
      3.1. Установите архив целиком через Дополнения \ Установка расширений.
      Если же опенкарт настроен криво, то делаем это вручную:
      3.1. Распакуйте архив с модулем и загрузите содержимое папки upload на сайт
      3.2. В архиве есть файл install.xml, его переименовываете в install.ocmod.xml
           и загружаете через Дополнения \ Установка расширений
      Нажмите кнопку "Обновить" на страничке "Дополнения \ Модификаторы".
      Установите модуль посредством меню Дополнения \ Модули
      Установите права на просмотр модуля нужным пользователям
       
      Обновление:
      Удалите модификатор Повторите установку Также рекомендуем:
      Также рекомендуем вам купить другие наши продукты, которые пригодятся в абсолютно любом магазине
      Водяной знак Резервная копия Ссылка на товар Источник заказа Товарный чек  
      Посмотреть работу модуля вы сможете тут:
      https://shop.neoseo.com.ua/admin/
      логин: admin
      пароль: admin
      Добавил alexsoftdev Добавлено 10.11.2013 Категория Прочее Системные требования Метод активации Автоматическая активация Ioncube Loader Требуется OpenCart ocStore OpenCart.Pro, ocShop  
    • От sv2109


      View File Search Admin - улучшенный поиск товаров в админке
      Больше 10 тысяч загрузок модулей от sv2109!
      Внимание! Модуль является дополнением до модуля Поиск с морфологией и релевантностью и не будет работать без этого модуля!
      Что делает этот модуль?
      Модуль существенно улучшает поиск товаров в панели администрирования на странице товаров.
      Он добавляет возможность поиска с использованием морфологии и релевантности.
      Описание работы модуля
      Стандартный поиск товаров в админке opencart-а очень плохой. Он ищет только по первой букве названия товара.
      Этот модуль исправляет этот недостаток. Он добавляет к поиску морфологию и релевантность, а также дает возможность находить товары, в которых искомая фраза находится не только а начале но и в середине или конце названия, описания товара, тегах и других полях.
      Модуль использует для поиска настройки модуля "Поиск с морфологией и релевантностью", ознакомится со всеми возможностями поиска вы можете на странице этого модуля.
      Совместимость
      ocStore,openCart 2.0.x, 2.1.x
      ocStore,openCart 3.0, 2.2.x, 2.3.x - по запросу
       
      Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2016
      Submitter sv2109 Submitted 05/18/2016 Category Модули Системные требования Сайт разработчика sv2109.com Старая цена Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 3.0
      2.1
      2.0 ocStore 2.1 OpenCart.Pro, ocShop Opencart.pro 2.1  
    • От sv2109
      Больше 10 тысяч загрузок модулей от sv2109!
      Внимание! Модуль является дополнением до модуля Поиск с морфологией и релевантностью и не будет работать без этого модуля!
      Что делает этот модуль?
      Модуль существенно улучшает поиск товаров в панели администрирования на странице товаров.
      Он добавляет возможность поиска с использованием морфологии и релевантности.
      Описание работы модуля
      Стандартный поиск товаров в админке opencart-а очень плохой. Он ищет только по первой букве названия товара.
      Этот модуль исправляет этот недостаток. Он добавляет к поиску морфологию и релевантность, а также дает возможность находить товары, в которых искомая фраза находится не только а начале но и в середине или конце названия, описания товара, тегах и других полях.
      Модуль использует для поиска настройки модуля "Поиск с морфологией и релевантностью", ознакомится со всеми возможностями поиска вы можете на странице этого модуля.
      Совместимость
      ocStore,openCart 2.0.x, 2.1.x
      ocStore,openCart 3.0, 2.2.x, 2.3.x - по запросу
       
      Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2016
    • От markimax


      Просмотр файла SEO мультиязык 2 (opencart 2.x & 1.5.x)
      Демо Демо админ. части
      логин / пароль
      demo / demo
      Документация и инструкция по установке
      Добавил markimax Добавлено 19.04.2016 Категория Модули Системные требования PHP 5.3+ Сайт разработчика http://opencartadmin.com Старая цена Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От markimax
      Демо Демо админ. части
      логин / пароль
      demo / demo
      Документация и инструкция по установке
  • Последние посетители   0 пользователей онлайн

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