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 097

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

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

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

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


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

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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От Rojzman
      Дорогие обитатели форума!
      Возникла такая проблема, что в админке, в фотогалерее не переключаются страницы дальше первой. 
      Кто может помочь с решением вопроса, пожалуйста пишите в личку
      Версия ocStore/Opencart 2.3.0.2

    • От Otvet

      300.00 руб · Срок продления: 100.00 руб за 12 месяцев
      Скачать/Купить дополнение


      [SEO] Full IndeX : Улучшение индексации

      Модуль помогает улучшить индексацию, более продуктивно "прокачать"1 товары и решить проблему дублирования2 страниц постраничной навигации, что позволяет поднять в выдаче НЧ-запросы страниц товаров расположенных на удаленных страницах. Управлять множеством факторов и решает ряд недочетов в Opencart.
      1 - Обособленные страницы (доступные только через sitemap) не получают статический вес [PR] и имеют пустой анкор-лист.
      2 - Чем плохи дубли:
      ухудшают и замедляют индексацию потеря веса (pagerank) "основной" страницей категории/производителя часть товаров не могут получить внутренний вес ____________________________________________________________________________
       
       
      Что делает модуль:
      для google: правильно объединяет страницы в одну цепочку с атрибутами prev | next https://support.google.com/webmasters/answer/1663744?hl=ru уникализирует страницы, они перестают выпадать из основного индекса правильно выводит директивы canonical, с учетом таких факторов как тип url и путь в url, когда нужно и где нужно позволяет управлять выводом canonical самостоятельно способствует полноценной индексации товаров при отсутствии sitemap (либо когда не принимается яндексом из-за размера) управление get-параметрами (редиректы, canonical, seo_pro) позволяет полноценно использовать seo-фильтры позволяет убирать "хвосты" в индексе позволяет блокировать индексации отзывов как отдельного документа и сделать в то же время более полную индексацию отзывов способствует распределению веса и более полной перелинковке способствует заполнению анкор листа товаров на страницах 2 и далее посадочные страницы категория/бренд, для исключения дублей и использования в продвижении и многое другое + много нового в версии 4.0 (читайте выше)  
      ЕЩЕ больше функционала:
       
       
      [bonus] Sitemap Lite (OCMOD для opencart 2.x):
      заменяет оригинальный catalog/controller/feed/google_sitemap.php
      ускоренная генерация благодаря собственной функции выборки товаров (~ в 10 раз) добавление lastmod (значительно ускоряет индексацию) устранение дублей товаров валидация яндексом фикс &amp при использовании seo_pro  
      Для автоматического заполнения SEO URL (ЧПУ) можно установить это дополнение: https://opencartforum.com/files/file/2833-автоматическое-заполнение-чпу-ocmod/
       
      Преимущества перед закрытием страниц в robots.txt
      Преимущества перед директивой noindex (no)follow
      Преимущества перед простым открытием страниц для индексации
      Преимущества перед директивой canonical
      Для проверки работы после установки напишите адрес сайта в ЛС автору
      "Цитаты великих" или "А нужен ли модуль?"
      Для более продуктивной борьбы с дублями так же желательно наличие SEO_Pro и правильного robots.txt
      Добавил Otvet Добавлено 15.08.2015 Категория SEO, карта сайта, оптимизация Системные требования - для opencart 2.x установка производится через стандартный инструмент Extension Installer- для opencart 1.5.x vqmod 2.4 или выше Сайт разработчика Старая цена 390 Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      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 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.х  
    • От alex0410
      Добрый день. Подскажите, как можно вывести кастомное поле в админке или киньте ссылку на какую нибудь документацию, где хоть как нибудь описано (в контроллер нужно такое то, в модель такое то). Сами поля в базу создаются по кнопке, но не могу их вывести теперь для заполнения. Буду благодарен за любую помощь. Версия ocStore 2.3
       
    • От Rojzman
      Дорогие обитатели форума!
      Возникла такая проблема, что в админке, в фотогалерее не переключаются страницы дальше первой. 
       
      Версия ocStore/Opencart 2.3.0.2

    • От Otvet

      Модуль помогает улучшить индексацию, более продуктивно "прокачать"1 товары и решить проблему дублирования2 страниц постраничной навигации, что позволяет поднять в выдаче НЧ-запросы страниц товаров расположенных на удаленных страницах. Управлять множеством факторов и решает ряд недочетов в Opencart.
      1 - Обособленные страницы (доступные только через sitemap) не получают статический вес [PR] и имеют пустой анкор-лист.
      2 - Чем плохи дубли:
      ухудшают и замедляют индексацию потеря веса (pagerank) "основной" страницей категории/производителя часть товаров не могут получить внутренний вес ____________________________________________________________________________
       
       
      Что делает модуль:
      для google: правильно объединяет страницы в одну цепочку с атрибутами prev | next https://support.google.com/webmasters/answer/1663744?hl=ru уникализирует страницы, они перестают выпадать из основного индекса правильно выводит директивы canonical, с учетом таких факторов как тип url и путь в url, когда нужно и где нужно позволяет управлять выводом canonical самостоятельно способствует полноценной индексации товаров при отсутствии sitemap (либо когда не принимается яндексом из-за размера) управление get-параметрами (редиректы, canonical, seo_pro) позволяет полноценно использовать seo-фильтры позволяет убирать "хвосты" в индексе позволяет блокировать индексации отзывов как отдельного документа и сделать в то же время более полную индексацию отзывов способствует распределению веса и более полной перелинковке способствует заполнению анкор листа товаров на страницах 2 и далее посадочные страницы категория/бренд, для исключения дублей и использования в продвижении и многое другое + много нового в версии 4.0 (читайте выше)  
      ЕЩЕ больше функционала:
       
       
      [bonus] Sitemap Lite (OCMOD для opencart 2.x):
      заменяет оригинальный catalog/controller/feed/google_sitemap.php
      ускоренная генерация благодаря собственной функции выборки товаров (~ в 10 раз) добавление lastmod (значительно ускоряет индексацию) устранение дублей товаров валидация яндексом фикс &amp при использовании seo_pro  
      Для автоматического заполнения SEO URL (ЧПУ) можно установить это дополнение: https://opencartforum.com/files/file/2833-автоматическое-заполнение-чпу-ocmod/
       
      Преимущества перед закрытием страниц в robots.txt
      Преимущества перед директивой noindex (no)follow
      Преимущества перед простым открытием страниц для индексации
      Преимущества перед директивой canonical
      Для проверки работы после установки напишите адрес сайта в ЛС автору
      "Цитаты великих" или "А нужен ли модуль?"
      Для более продуктивной борьбы с дублями так же желательно наличие SEO_Pro и правильного robots.txt
  • Последние посетители   0 пользователей онлайн

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