Версия магазина: 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)
Вот собственно и все, может кому полезно будет.