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

Редактирование товара: показывать в категориях


bucs

Recommended Posts

Версия магазина: ocStore v1.5.5.1.1
Изменения не вносились.
Хостинг OpenServer, Inferno solutions VPS.

Проблема:
Редактирование товара - Связи - Показывать в категориях.

Если было указано несколько категорий, то при редактировании галочка будет стоять только на последней из них.

 

Причина:

/admin/view/template/catalog/product_form.tpl

 

Шаг 1, при обработке главной категории, происходит замена основного массива:

foreach ($product_categories as $product_categories) ...

 

Шаг 2, формируется список категорий по конечному массиву, который был заменен:

if (in_array($category['category_id'], $product_categories)

 

Интересно, что даже если поправить шаг 1, то корректно работать все равно не будет, так как $product_categories - многомерный массив, и поиск в нем значений $category['category_id'] ничего не даст.

 

Пример решения:

Перед шагом 1 обьявляем вспомогательный массив, скажем $cts = array();

 

Цикл на всякий случай меняем на: foreach ($product_categories as $product_categorie) ..., и соответственно переменные $product_categories внутри цикла на $product_categorie.

 

Далее в конце цикла наполняем массив значениями: $cts[] = $product_categorie['category_id'];

 

В шаге 2 осуществляем поиск по уже новому массиву с корректными значениями:

if (in_array($category['category_id'],  $cts)

 

Вот собственно и все, может кому полезно будет.

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


  • 2 weeks later...

не могли бы выложить готовый скрипт или строки для добавления в код для "не программистов"?

спасибо!

              <td><select name="main_category_id">
                <option value="0" selected="selected"><?php echo $text_none; ?></option>
<?php $cts = array(); ?>
                <?php foreach ($product_categories as $product_categorie) { ?>
                <?php if ($product_categorie['category_id'] == $main_category_id) { ?>
                <option value="<?php echo $product_categorie['category_id']; ?>" selected="selected"><?php echo $product_categorie['name']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $product_categorie['category_id']; ?>"><?php echo $product_categorie['name']; ?></option>
                <?php } ?>
                <?php $cts[] = $product_categorie['category_id']; } ?>
              </select></td>
            </tr>
            <tr>
              <td><?php echo $entry_category; ?></td>
              <td><div class="scrollbox">
                  <?php $class = 'odd'; ?>
                  <?php foreach ($categories as $category) { ?>
                  <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>


                  <div class="<?php echo $class; ?>">
                    <?php if (in_array($category['category_id'], $cts)) { ?>
                    <input type="checkbox" name="product_category[]" value="<?php echo $category['category_id']; ?>" checked="checked" />
                    <?php echo $category['name']; ?>
                    <?php } else { ?>
                    <input type="checkbox" name="product_category[]" value="<?php echo $category['category_id']; ?>" />
                    <?php echo $category['name']; ?>
                    <?php } ?>
                  </div>
                  <?php } ?>
                </div>
                <a onclick="$(this).parent().find(':checkbox').attr('checked', true);"><?php echo $text_select_all; ?></a> / <a onclick="$(this).parent().find(':checkbox').attr('checked', false);"><?php echo $text_unselect_all; ?></a></td>

Исправленный кусок кода, я думаю куда его вставить вы разберетесь?)

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


  • 3 weeks later...

 

Вот собственно и все, может кому полезно будет.

 

Спасибо, помогло!  

 

Долго заморачивался с этим до этого, пропадала привязка товара к категориям каждый раз при редактировании товара.

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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