Не корректная работа при использовании цикла в цикле.
-
@seedgg said in Не корректная работа при использовании цикла в цикле.:
Переменная счетчик цикла изменяется только после прохождения цикла, а не при вхождении в цикл
Ну не знаю, я неоднократно замечал, что сбивается после вложенного цикла, я поэтому свою ставлю, что бы наверняка :)
-
@Denis_krsk Вот тестовый скрипт для проверки [[CYCLE_INDEX]] в нескольких вложенных циклах, всё правильно отработало, стек не сбивается.
Однако заметил, что [[CYCLE_INDEX]] после выхода из вложенного цикла во внешний держит номер последней итерации вложенного +1
Вот тестовый скрипт который показывает странное поведение [[CYCLE_INDEX]]
-
@Fox Это не сбивается называется :) Я на такое не могу полагаться, лучше перебздеть и свой счетчик воткнуть :)
-
@Denis_krsk said in Не корректная работа при использовании цикла в цикле.:
@John Это не баг просто по умолчанию счетчик цикла одна та жа переменная и поэтому во вложенном цикле он сбивается.
Если вы про переменную [[CYCLE_INDEX]], то дело здесь не в ней. Я так понимаю что перезаписывается "переменная" которая подсчитывает количество элементов на странице. И если [[CYCLE_INDEX]] (который то же перезаписывается) в данном случае не критичен для работы внешнего цикла, то перезапись этой "переменной" нарушает работу внешнего цикла, и я не знаю как ее можно подправить (с [[CYCLE_INDEX]] в этом плане все просто), а это, как по мне, и есть баг.
-
@John http://community.bablosoft.com/topic/866/разные-циклы-используют-одну-переменную-cycle_index/10
-
@John Я же скинул пример все работает, правда я обходил вложенный цикл через for! Сам цикл не сбивается сбивается только счетчик CYCLE_INDEX. Никто не мешает поставить перед циклом свою переменную и увеличивать ее на каждой итерацие.
-
)Я тоже скинул пример и там все работает.)) Но это костыль.
@John said in Не корректная работа при использовании цикла в цикле.:
Проблема была решена добавлением пустого цикла, такого же как первый, после второго.
0_1518941557258_cycle_bug.xml@seedgg said in Не корректная работа при использовании цикла в цикле.:
@John http://community.bablosoft.com/topic/866/разные-циклы-используют-одну-переменную-cycle_index/10
"ELEMENT_LENGTH" я и имел в виду. Было бы куда проще, если бы "ELEMENT_LENGTH" можно было править.
-
@John Ну в моем примере не костыль.Так в принципе и делается.
-
Эту проблему можно решить если разработчик сделает чтоб можно было для каждого цикла добавить свою переменную счетчика
С толкнулся с такой же проблемой@Denis_krsk said in Не корректная работа при использовании цикла в цикле.:
@John Начать цикл можно заменить на цикл for. А так там в лоб не получиться. Посмотри структуру html там все не так просто. Нумерация секций вложенного уровня идет последовательно с уровнем родителя. Может время будет накидаю, а так думай :)
Спасибо за идею for в голову не пришло даже про это
-
Так счетчик for тоже работает с CYCLE_INDEX
-
@GamiD Да, но дело не в этом. Сам по себе стек нормально отрабатывает. А счетчик можно свой поставить.
-
@Denis_krsk как можно поставить свой счетчик?
-
@GamiD Перед циклом определи переменную = 0, ну или со скольки у тебя цикл начинается и в цикле увеличивай на 1.
-
@Denis_krsk это да я знаю я думаю по другому можно
-
Я потому и просил имена переменных в цикл ввести как во всех языках, что цикл сбивается и приходится костыли выдумывать. То же самое и с форич происходит форичдата переписывается циклом в цикле
-
@Profuter Есть раздел http://community.bablosoft.com/category/20/запросы-функционала
Создай там тему думаю разработчик прочитает как освободиться
-
я там и написал, мне сказали, что всё норм, думал может у меня глючит. даже видео записал что сбивается :) теперь то понятно что не глюк
-
@Profuter Не понимаю почему раздули такую проблему, основная задача, так это то, что ничего не сбивается. Вся то проблема решается вводом дополнительной переменной для внешнего цикла, сразу после вхождения в него, например, COUNTER и присваивается ей значение CYCLE_INDEX. Тоже самое касается и FOREACH_DATA - вводится дополнительная переменная и присваивается ей значение. И используется дальше она.
Эти счетчики работали так спокон веков и я сомниваюсь, что, кто-то будет что-то переделывать, так как кому-то просто лень ввести дополнительную переменную.
-
@seedgg может потому, что во всех языках программирования это реализовано через задание своих переменных для циклов, а тут наоборот и вызывает ошибки там, где, пиши я на другом языке, всё прошло бы гладко :) Особой проблемы в этом конечно нет - есть и более важные вещи для решения я думаю :)
-
@Profuter Просто эта тема поднималась на форуме, уже больше года назад, и если разработчик не пощитал нужным это исправлять, я думаю оно так и останется, так как это не критично. Правильно говорите, что есть на много более интерестные и важные вещи как эта. А если это все тянет всего 1 человек, то честь ему и хвала за такой продукт. А за такой, просто мега класный продукт, я готов некоторые "костыли" применять и говорить каждый раз за такое спасибо!