Создаем объект, внутри виртуальной копии категории, вызывается:
/classes/modules/catalog/__admin.php add() ->
/classes/modules/baseModuleAdmin.php saveAddedElementData() в ней ест ьстрока $hierarchy->addElement... ->
/classes/system/subsystems/models/hierarchy/umiHierarchy.php addElement()
Вот в этом файле видем строки на скриншоте,
https://monosnap.com/image/QrJw6sS5ISrj0Z9WjXOIk54xPZhcV2
которые смотрят родителя и получают его вирт.копии после чего заносят в глобальную переменную symlink
после чего в деструкторе
https://monosnap.com/image/k3XHzuSfJv7RyMqvflcXesGhlOYiiS
Вот и создание копий.
Вобщем объясните мне в чем я не прав. Ведь копии создаются и я даже могу сказать в каком месте в коде.
Ситуация есть каталог. В нем есть категории, некоторые из них имеют виртуальные копии.
Когда я создаю внутри таких обьект, его виртуальные копии создаются и в остальных категориях.
Вы абсолютно правы, копии создаются должны создаваться автоматически.
Ребята, поясните что вы имеете ввиду, проверил это поведение на демо (http://demo.umi-cms.ru/), сделал виртуальную копию категории, а потом создал в одной из этих виртуальных копий объект, новый объект был создан только в одной категории. Может быть я не правильно понял и описывается другое?
Вы абсолютно правы, копии создаются должны создаваться автоматически. Проблема в том, что они создаются - нужно удалить ненужные? Или в чем-то другом?
Вобщем объясните мне в чем я не прав. Ведь копии создаются и я даже могу сказать в каком месте в коде.локалпак, версия 2.9.5, ревизия 22471
На демо версия системы 2.9.5 ревизия 22429, посмотрите у себя если тоже, то код один и проблема в конфиге (confog.ini, реестр), возможно есть какой то параметр, но я не припомню такого, либо забытый кастом.
локалпак, версия 2.9.5, ревизия 22471А в поддержке мне заявляют, что я дурак и это не так. =(
Все так, как вы и пишете. При создании товара в разделе #1, который имеет виртуальную копию, получаем автоматически созданную виртуальную копию товара в виртуальной копии раздела #1
"и проблема в конфиге (confog.ini, реестр)" о чем именно идет речь?я имел ввиду что если версия у Андрея системы 2.9.5 ревизия 22429 то скорей всего за описываемое поведение регулируется конфигурацией системы, а это confog.ini или реестр.
Действительно в версии систем 2.9.5 ревизия 22429 создавая объект в категории которая является виртуальной копией то его виртуальные копии создаются и в остальных категориях.
Поддержка этого не признает вероятно потому что тоже смотрят на демо где это не воспроизводится, в это ситуации есть несколько вариантов развития событий.
Либо .....
Ситуация есть каталог. В нем есть категории, некоторые из них имеют виртуальные копии.
Когда я создаю внутри таких обьект, его виртуальные копии создаются и в остальных категориях.
Тех поддержка говорит, что это не так, на что я покопавшись в системы нахожу
Провел несколько дополнительных тестов и выяснил что описанное поведение воспроизводится в версиях 2.8.6-20874, 2.9-21905 и 2.9.5-22471, но не воспроизводится на официальном демо версия 2.9.5-22429 и это особенно не понятно, потому что отключающего тригира не обнаружил. Очень вероятно на демо определена директива SMU_PROCESS=true, которая отключает очистку кеша по измененным страницам и создание виртуальных копий новых элементов во всех виртуальных родителях.
К чему приведет выставление этой директивы (SMU_PROCESS) в true я не очень понял. Т.е. не будет очищаться кэш у страниц которые были изменены в админке и нужно будет делать это руками?
После некоторого давления тех поддержка тоже согласилась с доводами. Осталось написать кастом, который будет удалять эти копии
Добавить отключение этого поведения через конфиг они не рассматривают?Я уже не стал вести диалог дальше
Я уже не стал вести диалог дальше
Для отключения этого поведения планируется выпустить патч, сейчас он в Черновике проекта UMI.CMS patchs (http://team.emom.ru/umicms/patchs/tree/master/draft), если тебе это актуально скажи об этом в Issues.
umiHierarchy::getInstance()->getObjectInstances( $objectId );