question Опубликовано 12 мая, 2018 Жалоба Поделиться Опубликовано 12 мая, 2018 Здравствуйте. Пропадают свойства. Постараюсь назвать причину. 1. Товар перемещается из категории "смартфоны" в "мобильные телефоны", в которой отсутствует свойство "версия Android" 2. Редактируется заголовок товара 3. Товар перемещается обратно в "смартфоны" В этом случае значение "версия Android" станет пустой, свойство удалится. Такое происходит редко, но всё же бывает и найти удалённое свойство среди всего многообразия товаров оказывается не таким простым занятием. Устранить эту проблему можно так: Найти запрос SELECT feature_id FROM categories_features where category_id = номеркатегории и изменить его на SELECT feature_id FROM categories_features where 1 Понятно, что запрос не один в один такой, но что-то на это похожее. Результат: чуть больше нагрузка на БД (а она и так незначительная) и у каждого товара будут ВСЕ СВОЙСТВА, что будет гарантией сохранения имеющихся свойств товара при неумелом редактировании. Вопрос - в каком файле менять одну строку на другую. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 12 мая, 2018 Жалоба Поделиться Опубликовано 12 мая, 2018 Пробуйте в simpla/ProductAdmin.php фрагмент // Свойства текущей категории $category_features = array(); foreach($this->features->get_features(array('category_id'=>$product_categories[0])) as $f) $category_features[] = $f->id; заменить на // Свойства текущей категории $category_features = array(); foreach($this->features->get_features() as $f) $category_features[] = $f->id; А вообще способ не самый лучший. Известно множество ошибок работы Simpla со свойствами. Некоторые из них замечены много лет назад. Одна из ошибок описана здесь еще в 2012 году:http://forum.simplacms.ru/topic/2916-%D0%B8%D1%81%D1%87%D0%B5%D0%B7%D0%B0%D1%8E%D1%82-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2/ Последние известия по теме таковы. Тутhttp://forum.simplacms.ru/topic/13358-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8-simpla-cms/три месяца назад один спец написал 1. Решена проблема с пропажей свойств Правда, сам способ решения не предоставил. Попробуйте попросить его дать решение. Он товарищ своеобразный и своенравный, но если найдете подход (как в басне Ворона и Лисица или как в мультике про почтальона Печкина), то Вам может улыбнуться удача... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 14 мая, 2018 Автор Жалоба Поделиться Опубликовано 14 мая, 2018 Пробуйте в simpla/ProductAdmin.php фрагмент // Свойства текущей категории $category_features = array(); foreach($this->features->get_features(array('category_id'=>$product_categories[0])) as $f) $category_features[] = $f->id; заменить на // Свойства текущей категории $category_features = array(); foreach($this->features->get_features() as $f) $category_features[] = $f->id; А вообще способ не самый лучший.Попробовал.Исходные: категория 1 имеет свойства высота, ширина, глубина, категория 2 - не имеет.При переносе товара из категории 1 в категорию 2 и последующем редактировании, в админке у товара свойства пропадают.При переносе обратно, свойство восстанавливается. Не совсем то, что нужно, но всё же.P.S. Нужно, чтобы в категории 2 свойство тоже отображалось. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 14 мая, 2018 Жалоба Поделиться Опубликовано 14 мая, 2018 Пробуйте в simpla/ProductAdmin.php заменить $features = $this->features->get_features(array('category_id'=>$category->id));на $features = $this->features->get_features(); Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 15 мая, 2018 Автор Жалоба Поделиться Опубликовано 15 мая, 2018 Пробуйте в simpla/ProductAdmin.php заменить $features = $this->features->get_features(array('category_id'=>$category->id));на $features = $this->features->get_features();Нет у меня такой строчки.Есть$options = $this->features->get_options(array('product_id'=>$product->id));Может, вы об этом? Если нет, то на какой строчке искать? В районе почти 400 строки у меня это: $features = $this->features->get_features(); $this->design->assign('features', $features); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 15 мая, 2018 Жалоба Поделиться Опубликовано 15 мая, 2018 В стандартной Simpla 2.3.8 такая строка есть, близко к концу. // Все свойства товара $category = reset($product_categories); if(!is_object($category)) $category = reset($categories); if(is_object($category)) { $features = $this->features->get_features(array('category_id'=>$category->id)); $this->design->assign('features', $features); } return $this->design->fetch('product.tpl'); } } А у Вас, видимо, менялось... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 15 мая, 2018 Автор Жалоба Поделиться Опубликовано 15 мая, 2018 В стандартной Simpla 2.3.8 такая строка есть, близко к концу. // Все свойства товара $category = reset($product_categories); if(!is_object($category)) $category = reset($categories); if(is_object($category)) { $features = $this->features->get_features(array('category_id'=>$category->id)); $this->design->assign('features', $features); } return $this->design->fetch('product.tpl'); } } А у Вас, видимо, менялось...А у меня вот так // Все свойства $features = $this->features->get_features(); $this->design->assign('features', $features); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 А у меня вот так // Все свойства $features = $this->features->get_features(); $this->design->assign('features', $features); Если у Вас нестандартно, то требуется индивидуальный анализ и индивидуальные изменения. Если готовы оплачивать, обращайтесь в личку... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 16 мая, 2018 Автор Жалоба Поделиться Опубликовано 16 мая, 2018 Видимо, версия движка другая.Нет, доплачивать за исправление ошибок платного сырого движка, поддержка которого уже прекращена и обновления не предвидятся, не собираюсь. Дешевле пользоваться другой cms. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 Видимо, версия движка другая. Нет, доплачивать за исправление ошибок платного сырого движка, поддержка которого уже прекращена и обновления не предвидятся, не собираюсь. Дешевле пользоваться другой cms.В другой CMS возможны свои ошибки, а также редкие обновления. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 В другой CMS возможны свои ошибки, а также редкие обновления. Глубоко копнул. Широта мысли налицо... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 Глубоко копнул. Широта мысли налицо...Дебилу Корсу слова не давали, молча сиди ной в тряпочку Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 За что ж сердишься, дяденька?Это ж похвала твоим незаурядным мыслительным способностям... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 За что ж сердишься, дяденька? Это ж похвала твоим незаурядным мыслительным способностям...Ко всем прочим диагнозам ты ещё и клоун как оказывается. Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 16 мая, 2018 Автор Жалоба Поделиться Опубликовано 16 мая, 2018 Может, решение кто подскажет.Оно простое, я даже пример запроса к mysql привёл,вот только не знаю, где искать. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 Может, решение кто подскажет. Оно простое, я даже пример запроса к mysql привёл,вот только не знаю, где искать.Я решил этот вопрос, проект на работе. Завтра дам решение если успею. Напомните о себе в скайп simplacms. Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 18 мая, 2018 Автор Жалоба Поделиться Опубликовано 18 мая, 2018 Я решил этот вопрос, проект на работе.Завтра дам решение если успею.Напомните о себе в скайп simplacms.Скайпа нету. Попытаюсь напомнить здесь в надежде, что вы форум читаете Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 мая, 2018 Жалоба Поделиться Опубликовано 18 мая, 2018 Скайпа нету. Попытаюсь напомнить здесь в надежде, что вы форум читаетеЯ тут постоянно. Какая у вас версия симплы? У меня есть решение для 2.3.8 Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 18 мая, 2018 Автор Жалоба Поделиться Опубликовано 18 мая, 2018 У меня 2.1.4. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 мая, 2018 Жалоба Поделиться Опубликовано 18 мая, 2018 У меня 2.1.4.Сбросьте ваш файл simpla/ProductsAdmin.php. Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 18 мая, 2018 Автор Жалоба Поделиться Опубликовано 18 мая, 2018 https://pastebin.com/eTME1dzt Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 18 мая, 2018 Автор Жалоба Поделиться Опубликовано 18 мая, 2018 Если речь о ProductAdmin.php, то вотhttps://pastebin.com/LcTrZrCa Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 мая, 2018 Жалоба Поделиться Опубликовано 18 мая, 2018 (изменено) https://pastebin.com/eTME1dztФайл simpla/ProductsAdmin.php, попробуйте после: case 'move_to_category': { $category_id = $this->request->post('target_category', 'integer'); $filter['page'] = 1; $category = $this->categories->get_category($category_id); $filter['category_id'] = $category->children;добавить: // fix features if(isset($ids)) { $pc = array(); foreach($this->categories->get_product_categories($ids) as $c) { $pc[$c->category_id] = $c; } if(!empty($pc)) { foreach($this->features->get_features(array('category_id'=>array_keys($pc))) as $f) { $this->features->add_feature_category($f->id, $category_id); } } } Предварительно создайте бекап сайта и БД. Изменено 18 мая, 2018 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 18 мая, 2018 Автор Жалоба Поделиться Опубликовано 18 мая, 2018 Я понял ваше решение, спасибо.Но я хотел бы подойти с другой стороны: как новой категории автоматом назначить все свойства?Я могу это сделать через запрос к mysql, но хотелось бы, чтобы все свойства уже были назначены каждой категории изначально.То есть, всего лишь при запросе к БД игнорировать это:where category_id = номеркатегории. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 мая, 2018 Жалоба Поделиться Опубликовано 18 мая, 2018 Я понял ваше решение, спасибо.Но я хотел бы подойти с другой стороны: как новой категории автоматом назначить все свойства?Я могу это сделать через запрос к mysql, но хотелось бы, чтобы все свойства уже были назначены каждой категории изначально. То есть, всего лишь при запросе к БД игнорировать это:where category_id = номеркатегории.Моё решение решает ваш вопрос, теперь вам нужно что-то другое...Простите но мне перехотелось вам помогать. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.