Перейти к содержанию
Официальный форум поддержки Simpla

Пропадают свойства. Есть половина решения


Рекомендуемые сообщения

 

Файл 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;[/code]
добавить:
[code=auto:0]// 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);
		}
	}
}
Предварительно создайте бекап сайта и БД.

 

Формально он работает и задачу решает, но уж больно странный подход...

 

При выполнении действия 'move_to_category' скрытно добавляется множество новых привязок свойств к категориям. Со временем админ про такое забудет и пойдут вопросы типа - у меня самопроизвольно добавляются связки свойство-категория...

 

 

Я понял ваше решение, спасибо.

Но я хотел бы подойти с другой стороны: как новой категории автоматом назначить все свойства?

Я могу это сделать через запрос к mysql, но хотелось бы, чтобы все свойства уже были назначены каждой категории изначально.

 

То есть, всего лишь при запросе к БД игнорировать это:

where category_id = номеркатегории.

 

Если Вы можете это сделать через SQL-запрос, то почему бы Вам это не сделать и не мудрствовать тут?

 

"при запросе к БД игнорировать это" - довольно бессмысленная фраза. Если Вам надо, то Вы и игнорируйте. А БД работает по своим правилам и не подразумевает таких непонятных игнорирований. Если не согласны, изучайте учебники по работе с базой и ищите там методы игнорирования...

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты

Моё решение решает ваш вопрос, теперь вам нужно что-то другое...

Простите но мне перехотелось вам помогать.

"Что-то другое" нужно было в самом начале этой темы, в самом первом сообщении. Вы просто невнимательны.

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

 

 

Если Вы можете это сделать через SQL-запрос, то почему бы Вам это не сделать и не мудрствовать тут?

 

"при запросе к БД игнорировать это" - довольно бессмысленная фраза. Если Вам надо, то Вы и игнорируйте. А БД работает по своим правилам и не подразумевает таких непонятных игнорирований. Если не согласны, изучайте учебники по работе с базой и ищите там методы игнорирования...

 

Могу порекомендовать вам изучить что такое MySQL и базовые понятия - такие, как запрос, виды запросов. После чего уже умничать.

Изменено пользователем question
Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ценную рекомендацию, она выполнена много лет назад.

 

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

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

Формально он работает и задачу решает, но уж больно странный подход...

 

При выполнении действия 'move_to_category' скрытно добавляется множество новых привязок свойств к категориям. Со временем админ про такое забудет и пойдут вопросы типа - у меня самопроизвольно добавляются связки свойство-категория...

Никаких лишних связок и дублей не будет, советую ознакомится с API симплы прежде чем слухи пускать ни о чём.

"Что-то другое" нужно было в самом начале этой темы, в самом первом сообщении. Вы просто невнимательны.

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

Здравствуйте. Пропадают свойства. Постараюсь назвать причину.

1. Товар перемещается из категории "смартфоны" в "мобильные телефоны", в которой отсутствует свойство "версия Android"

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

Никаких лишних связок и дублей не будет, советую ознакомится с API симплы прежде чем слухи пускать ни о чём.

 

Все зависит от того, что считать "лишними" связками.

Допустим, есть:

1. Товар Т1, в категории K1, к которой привязано свойство С1.

2. Другой товар Т2, в другой категории K2, к которой привязано свойство С2.

3. Других товаров, категорий, свойств нет.

Имеем только 2 привязки К1-С1 и К2-С2.

 

Админ переносит товар Т1 в категорю Т2.

В результате появится третья привязка K2-С1.

 

А потом админ передумал и сразу перенес этот же товар назад в Т1.

В результате появится четвертая привязка K1-С2.

 

Админ думает, что ничего не поменялось - он вернул все назад. Но реально добавились лишние привязки. И они могут проявиться там, где админ их не ожидает, например, в фильтрах...

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

 

Все зависит от того, что считать "лишними" связками.

Допустим, есть:

1. Товар Т1, в категории K1, к которой привязано свойство С1.

2. Другой товар Т2, в другой категории K2, к которой привязано свойство С2.

3. Других товаров, категорий, свойств нет.

Имеем только 2 привязки К1-С1 и К2-С2.

 

Админ переносит товар Т1 в категорю Т2.

В результате появится третья привязка K2-С1.

 

А потом админ передумал и сразу перенес этот же товар назад в Т1.

В результате появится четвертая привязка K1-С2.

 

Админ думает, что ничего не поменялось - он вернул все назад. Но реально добавились лишние привязки. И они могут проявиться там, где админ их не ожидает, например, в фильтрах...

Буду у ПК проверю.
Ссылка на сообщение
Поделиться на другие сайты

Полагаю, копать надо в сторону Features.php, там есть функция get_features, хотя...

 

Полагаю, Вы полагаете принципиально неверно.

api/Features.php - это служебный инструмент для выполнения разных типовых действий.

А надо копать там, где этот инструмент применяется...

 

Если Вам выкопали траншею не по краю участка, как Вы заказывали, а испортили красивую лужайку в центре, то претензии надо предъявлять не тому, кто создал трактор, а тому, кто им управлял...

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

Буду у ПК проверю.

Закричал он: -Что за шутки!

Еду я вторые сутки,

А приехал я назад,

А приехал в Ленинград!

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

Ай да клоун :D

 

Согласен, клоун хороший.

1. Сначала в http://forum.simplacms.ru/topic/13358-ошибки-simpla-cms/ написал "1. Решена проблема с пропажей свойств"

2. Потом в этой теме "Я решил этот вопрос, проект на работе. Завтра дам решение если успею. Напомните о себе в скайп simplacms."

3. Потом в этой теме "Никаких лишних связок и дублей не будет."

4. Потом видимо, подумал, и уже не стал настаивать на отсутствии лишних связок, а высказался эдак осторожненько "Буду у ПК проверю."

 

Минимум 4 флудовых поста ни о чем, в стиле "Это я, это я, посмотрите на меня."

Клоунские приемы применены очень квалифицированно на высочайшем уровне.

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

Согласен, клоун хороший.

1. Сначала в http://forum.simplacms.ru/topic/13358-ошибки-simpla-cms/ написал "1. Решена проблема с пропажей свойств"

2. Потом в этой теме "Я решил этот вопрос, проект на работе. Завтра дам решение если успею. Напомните о себе в скайп simplacms."

3. Потом в этой теме "Никаких лишних связок и дублей не будет."

4. Потом видимо, подумал, и уже не стал настаивать на отсутствии лишних связок, а высказался эдак осторожненько "Буду у ПК проверю."

 

Минимум 4 флудовых поста ни о чем, в стиле "Это я, это я, посмотрите на меня."

Клоунские приемы применены очень квалифицированно на высочайшем уровне.

Нет корс ты не понял, клоун у нас как раз ты, ведешь себя как идиот, в таком возрасте занимаешься такой ерундой.

Тебе бы внуков нянчить, да видать нету, иначе ты бы не был такой занозой в заднице.. Простите форуме.

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

Ну что там с решением?

 

"что там" - это все относительно.

 

1. С точки зрения Noxter-а, вопрос решен, решение дано.

2. С моей точки зрения, оно имеет существенный недостатки, подробности описаны выше. На мои замечания Noxter ответ по существу не дал, хотя обещал эти замечания проверить.

3. Как с Вашей точки зрения, знаете только Вы. Пробуйте предложенное решение и сообщайте о результатах. Может, описанные недостатки Вам не помешают и Вы будете довольны. А может, наоборот, обнаружите другие недостатки. Надо работать хоть в минимальной мере, а не ждать готового решения с сертификатами качества...

 

То, что Вам предложили, исходит от одного из самых лучших специалистов (со стажем работы с Simpla порядка 10 лет). Поэтому лучший вариант вряд ли получите, во всяком случае бесплатно. И если предложенное совсем не нравится, создавайте свое...

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

Скажу так: бесплатного лучшего решения (в том числе и неадекват Корс) вряд ли предложит.

Не устраивает моё бесплатное решение не пользуйтесь, хотите чтобы было всё правильно работало - платите, я сделаю.

Другими словами никто не готов сделать что-то сложное решив вопрос при этом не попросив сумму за работу (как Корс запрашивает цену over 100$).

Изменено пользователем Noxter
Ссылка на сообщение
Поделиться на другие сайты

Пересмотрел своё решение, действительно остается лишняя связь в БД (в крайне редких случаях), но только при условии что у товара может быть несколько уникальных свойств которых нет у других товаров текущей категории.

По хорошему нужно сделать доп. запрос на просчёт существования связи товара и свойства, если нет то убрать связь свойства с категорией.

Согласен так будет правильнее.

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

Пересмотрел своё решение, действительно остается лишняя связь в БД (в крайне редких случаях), но только при условии что у товара может быть несколько уникальных свойств которых нет у других товаров текущей категории.

 

Появляется лишняя связь в редких или не в редких случаях - это вопрос индивидуальной копии CMS, и сильно зависит от того, как именно работают в админке с категориями, товарами, свойствами. Простенький пример появления лишних связей, который дан в #32, показывает, что появляться они могут не только в сложных экзотических случаях, а очень даже часто при простых действиях админа. И никаких уникальных свойств для этого вовсе не требуется. Тот же пример легко тривиально модифицировать так, что что свойства станут не уникальными, а лишние связи появятся.

 

Пересмотрел своё решение, действительно остается лишняя связь в БД (в крайне редких случаях), но только при условии что у товара может быть несколько уникальных свойств которых нет у других товаров текущей категории.

По хорошему нужно сделать доп. запрос на просчёт существования связи товара и свойства, если нет то убрать связь свойства с категорией.

Согласен так будет правильнее.

 

Очень сомнительно, что это будет "по хорошему", так как может приводить к тому, что связи категория-свойство, которые админ установил вручную, могут сами по себе пропадать. Вряд ли активно работающий  админ сочтет, что "так будет правильнее".  Фактически Вы предлагаете не лучшим образом переделать стандартный функционал Simpla в интересах своей задачи. И даже в интересах своего метода, который сам по себе не слишком хорош...

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты

Корс ты дурак?

Сначала пишешь что есть баг с лишними связями, я предлагаю решение (в теории), после ты пишешь что этого нельзя делать потому что так админ указал в настройках свойства.

Маразм...

Сядь да напиши решение, уверен многие скажут тебе спасибо.

P.S. Про удаление связи категория - свойство имелось в виду если нет ни одного товара в этой категории с таким свойством, жаль что ты не проявил логическое мышление, тем самым создал лишний "базар", впрочем ничего в тебе не меняется ГОДАМИ.

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

Доработки надо делать так, чтобы не портить текущий функционал. А у Вас он портится как в первом предложенном решении, так и и в последующей Вашей идее.

 

1. Ваша первая разработка основывалась на том, что Вы тайком добавляли связи. Естественно,  они будут при таком подходе появляться лишние, там, где админ их не ждет. Пример описан в #32.

2. Теперь, чтобы исправить это свое странное решение, Вы придумали решение в теории "сделать доп. запрос на просчёт существования связи товара и свойства, если нет то убрать связь свойства с категорией". Опять же, делаться это будет, видимо, в тайне от админа. И по тем же причинам будут исчезать свойства.

 

В Simpla стандартно сделано так, что связки категория-свойство задаются явным образом в админке на странице свойств. А Вы их собираетесь устанавливать и удалять тайком, по своим туманным критериям.

 

Ваша терия "если нет то убрать связь свойства с категорией" выглядит осмысленной только на первый взгляд. Но в реальности  все не так прямолинейно. На практике НЕТ только здесь и сейчас. А админ-то связку установил, чтоб ее использовать позже. А Вы ее раньше времени удалите - вот и выйдет совсем не  хорошо...

 

Как Ваше первое решение на практике, так и второе в теории - оба очевидно авантюрные, высосанные из пальца, чреватые ошибками.

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

но он от части прав

Прав, не прав, он ничего кроме как пи***** не может.

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...