Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Метод umiMail, Как установить заголовки при помощи getHeaders()?

Автор goodprofyРаздел Custom макросы

Ответов: 7
Просмотров: 3701
Последний ответ 14 Октября 2013, 09:28:13
от goodprofy
Добавление значение в справочник при помощи api?

Автор muldyРаздел Custom макросы

Ответов: 2
Просмотров: 3532
Последний ответ 16 Января 2014, 21:17:52
от muldy
Google map API при помощи transform

Автор 31rusРаздел Шаблоны XSLT

Ответов: 10
Просмотров: 2520
Последний ответ 21 Декабря 2016, 10:01:21
от 31rus
Прошу помощи с usel - необходимо отфильтровать новости по кастомному полю

Автор AksukРаздел Шаблоны XSLT

Ответов: 11
Просмотров: 6536
Последний ответ 05 Марта 2012, 23:01:29
от Aksuk

0 Пользователей и 1 Гость просматривают эту тему.

*

andrey

  • *
  • 31
  • +6/-0
    • Просмотр профиля
Ситуация есть каталог. В нем есть категории, некоторые из них имеют виртуальные копии.
Когда я создаю внутри таких обьект, его виртуальные копии создаются и в остальных категориях.
Тех поддержка говорит, что это не так, на что я покопавшись в системы нахожу

Цитировать
Создаем объект, внутри виртуальной копии категории, вызывается:
/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

Вот и создание копий.

Но на это мне вообще отвечают про то что я пишу какой-то кастом (пути файлов ни о чем им не говорят, дааа...)

Вобщем объясните мне в чем я не прав. Ведь копии создаются и я даже могу сказать в каком месте в коде.

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Вобщем объясните мне в чем я не прав. Ведь копии создаются и я даже могу сказать в каком месте в коде.

Вы абсолютно правы, копии создаются должны создаваться автоматически. Проблема в том, что они создаются - нужно удалить ненужные? Или в чем-то другом?
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

ilyar

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

Ребята, поясните что вы имеете ввиду, проверил это поведение на демо, сделал виртуальную копию категории, а потом создал в одной из этих виртуальных копий объект, новый объект был создан только в одной категории. Может быть я не правильно понял и описывается другое?

И такое поведение логично и согласуется с понятием виртуальные копии, я об этом писал в другой теме: Вопрос по виртуальным копиям.

По скринам ничего пока ничего не скажу, нет по рукой кода, а скрины вырваны из контекста, кроме того что мне понравился сайт который вы разрабатываете.
« Последнее редактирование: 26 Марта 2014, 18:03:58 от ilyar »

*

andrey

  • *
  • 31
  • +6/-0
    • Просмотр профиля

Ребята, поясните что вы имеете ввиду, проверил это поведение на демо, сделал виртуальную копию категории, а потом создал в одной из этих виртуальных копий объект, новый объект был создан только в одной категории. Может быть я не правильно понял и описывается другое?

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

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

Эта мистика меня немного гнетёт, потому что у меня именно - создаются, а я как человек прагматичный понимаю, что этот функционал не реализовывал и вообще он мне не нужен!)

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

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

*

ilyar

На демо версия системы 2.9.5 ревизия 22429, посмотрите у себя если тоже, то код один и проблема в конфиге (confog.ini, реестр), возможно есть какой то параметр,  но я не припомню такого, либо забытый кастом.

Если ктома действительно нет на 100%, то очень интересно и хочется на это посмотреть, посмотреть на живой код, есть такие варианты?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Вобщем объясните мне в чем я не прав. Ведь копии создаются и я даже могу сказать в каком месте в коде.
локалпак, версия 2.9.5, ревизия 22471

Все так, как вы и пишете. При создании товара в разделе #1, который имеет виртуальную копию, получаем  автоматически созданную виртуальную копию товара в виртуальной копии раздела #1

На демо версия системы 2.9.5 ревизия 22429, посмотрите у себя если тоже, то код один и проблема в конфиге (confog.ini, реестр), возможно есть какой то параметр,  но я не припомню такого, либо забытый кастом.

"и проблема в конфиге (confog.ini, реестр)" о чем именно идет речь?

*

andrey

  • *
  • 31
  • +6/-0
    • Просмотр профиля
локалпак, версия 2.9.5, ревизия 22471

Все так, как вы и пишете. При создании товара в разделе #1, который имеет виртуальную копию, получаем  автоматически созданную виртуальную копию товара в виртуальной копии раздела #1
А в поддержке мне заявляют, что я дурак и это не так. =(

Осталось понять как бы это побороть

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Как вариант - написать обработчик, подвесить его на systemCreateElement - http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/sobytijnaya_model_umicms/standartnye_tochki_vyzova/

В нем проверить, подходит ли созданная страница под условия (например, это страница "Объекта каталога"). Если да, то найти все ее копии umiHierarchy::getInstance()->getObjectsInstances($page->getId()) - http://api.docs.umi-cms.ru/spravochnik_po_klassam_yadra_umicms/model_ierarhii/umihierarchy/getobjectinstances/ и удалить эти копии.

Конечно, это костыль, но в любом случае лучше, чем править системный код UMI.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

ilyar

"и проблема в конфиге (confog.ini, реестр)" о чем именно идет речь?
я имел ввиду что если версия у Андрея системы 2.9.5 ревизия 22429 то скорей всего за описываемое поведение регулируется конфигурацией системы, а это  confog.ini или реестр.


*

ilyar

Действительно в версии систем 2.9.5 ревизия 22429 создавая объект в категории которая является виртуальной копией то его виртуальные копии создаются и в остальных категориях.

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

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

Либо как предложил e.ioffe делать обработчик.

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Действительно в версии систем 2.9.5 ревизия 22429 создавая объект в категории которая является виртуальной копией то его виртуальные копии создаются и в остальных категориях.

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

Либо .....

добавить нечего)

*

ilyar

Re:Прошу помощи в проблемах виртуальных коп&#
« Ответ #11 : 29 Марта 2014, 18:04:35 »
Ситуация есть каталог. В нем есть категории, некоторые из них имеют виртуальные копии.
Когда я создаю внутри таких обьект, его виртуальные копии создаются и в остальных категориях.
Тех поддержка говорит, что это не так, на что я покопавшись в системы нахожу

Провел несколько дополнительных тестов и выяснил что описанное поведение воспроизводится в версиях 2.8.6-20874, 2.9-21905 и 2.9.5-22471, но не воспроизводится на официальном демо версия 2.9.5-22429 и это особенно не понятно, потому что отключающего тригира не обнаружил. Очень вероятно на демо определена директива SMU_PROCESS=true, которая отключает очистку кеша по измененным страницам и создание виртуальных копий новых элементов во всех виртуальных родителях.

Код реализующий это поведение и показанный на скринах, присутствует в версии 2.8.6-20874.
« Последнее редактирование: 29 Марта 2014, 18:08:05 от ilyar »

*

andrey

  • *
  • 31
  • +6/-0
    • Просмотр профиля
Спасибо всем за ваши исследования и ответы!)

Провел несколько дополнительных тестов и выяснил что описанное поведение воспроизводится в версиях 2.8.6-20874, 2.9-21905 и 2.9.5-22471, но не воспроизводится на официальном демо версия 2.9.5-22429 и это особенно не понятно, потому что отключающего тригира не обнаружил. Очень вероятно на демо определена директива SMU_PROCESS=true, которая отключает очистку кеша по измененным страницам и создание виртуальных копий новых элементов во всех виртуальных родителях.

К чему приведет выставление этой директивы (SMU_PROCESS) в true я не очень понял. Т.е. не будет очищаться кэш у страниц которые были изменены в админке и нужно будет делать это руками?

*

ilyar

К чему приведет выставление этой директивы (SMU_PROCESS) в true я не очень понял. Т.е. не будет очищаться кэш у страниц которые были изменены в админке и нужно будет делать это руками?

Не проверял, могу предположить это важно при активированном механизме кеширования и если SMU_PROCESS=true то при изменении контента, посетители не увидят изменений до тек пор пока не кеш просрочится.

*

andrey

  • *
  • 31
  • +6/-0
    • Просмотр профиля
После некоторого давления тех поддержка тоже согласилась с доводами. Осталось написать кастом, который будет удалять эти копии