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

Вывод id магазина в списке товаров админки


Recommended Posts

В админке в списке товаров пытаюсь напротив каждого продукта вывести id магазина к которому он присвоен. В site.ru/admin/view/template/catalog/product_list.tpl пытался вывести <?php echo $product['store_id']; ?> Но это не работает...

В site.ru/admin/model/catalog/product.php есть упоминание о $store_id, как я понимаю запрос уже делается о необходимой информации в бд в поле product_to_store

Однако в контроллере site.ru/admin/controller/catalog/product.php встречается только в одном месте

$this->load->model('setting/store');

    $data['stores'] = $this->model_setting_store->getStores();

    if (isset($this->request->post['product_store'])) {
      $data['product_store'] = $this->request->post['product_store'];
    } elseif (isset($this->request->get['product_id'])) {
      $data['product_store'] = $this->model_catalog_product->getProductStores($this->request->get['product_id']);
    } else {
      $data['product_store'] = array(0);
    }

Подскажите плз, как правильно вывести id магазина в site.ru/admin/view/template/catalog/product_list.tpl? Аналогичная проблема со списком категорий...

Змінено користувачем 20strannik08
Надіслати
Поділитися на інших сайтах


15 часов назад, Tom сказал:

 

Поковырявшись с данным модификатором, получилось сделать все указанное по аналогии, спасибо за этот пример! На память сюда пошаговое решение выложу.

 

Для продуктов, в /site.ru/admin/catalog/controller/product.php Нужно найти этот код:

$data['products'][] = array(

и перед ним вставить:

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['product_store'] = $this->model_catalog_product->getProductStores($result['product_id']);
			$product_store_list = '';

			if (!empty($data['product_store'])) {
			    if (in_array(0, $data['product_store'])) { $product_store_list = $this->language->get('text_default'); };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['product_store'])) { ($product_store_list != '') ? $product_store_list .= ','.$store['name']: $product_store_list = $store['name']; };
			        };
			    };

А после него вставить

'stores' => $product_store_list,

Далее в /site.ru/admin/view/template/catalog/product_list.tpl в нужное место вывести

<?php echo $product['stores']; ?>

В категориях /site.ru/admin/catalog/controller/category.php найти

$output[$result['category_id']] = array(

И перед этим кодом вставить

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['category_store'] = $this->model_catalog_category->getCategoryStores($result['category_id']);
			$category_store_list = '';
			if (!empty($data['category_store'])) {
			    if (in_array(0, $data['category_store'])) { $category_store_list = $this->language->get('text_default'); };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['category_store'])) { ($category_store_list != '') ? $category_store_list .= ','.$store['name']: $category_store_list = $store['name']; };
			        };
			    };

А после него вставить

'stores' => $category_store_list,

Далее в /site.ru/admin/view/template/catalog/category_list.tpl в нужное место воткнуть

'stores' => $category_store_list

Эти примеры выводят имена магазина.

 

Для вывода вместо названия магазинов ихние id для контроллера товаров вставить заместо прежнего кода этот вариант:

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['product_store'] = $this->model_catalog_product->getProductStores($result['product_id']);
			$product_store_list = '';

			if (!empty($data['product_store'])) {
			    if (in_array(0, $data['product_store'])) { $product_store_list = '0'; };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['product_store'])) { ($product_store_list != '') ? $product_store_list .= ','.$store['store_id']: $product_store_list = $store['store_id']; };
			        };
			    };

И для списка категорий соответственно

            $this->load->model('setting/store');
		    $data['stores'] = $this->model_setting_store->getStores();
			$data['category_store'] = $this->model_catalog_category->getCategoryStores($result['category_id']);
			$category_store_list = '';
			if (!empty($data['category_store'])) {
			    if (in_array(0, $data['category_store'])) { $category_store_list = '0'; };
			    foreach ($data['stores'] as $store) {
			        if (in_array($store['store_id'], $data['category_store'])) { ($category_store_list != '') ? $category_store_list .= ','.$store['store_id']: $category_store_list = $store['store_id']; };
			        };
			    };

Это то что у меня заработало на ocstore 2.3

Змінено користувачем 20strannik08
Надіслати
Поділитися на інших сайтах


32 минуты назад, Tom сказал:

А то что я прикрепил в виде готового модификатора?

Как неловко вышло, я подумал что это один и тот же файл... Я убил почти два вечера на это, а готовый модификатор уже был оказывается)))

Все равно спасибо)

 

P.S. В итоге я под себя поправил что бы значения stores передавались не имена магазина а id, а по ним уже фильтрацию товаров и категорий в зависимости от магазина.

Змінено користувачем 20strannik08
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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