Не корректная работа при использовании цикла в цикле.



  • @Denis_krsk Вот тестовый скрипт для проверки [[CYCLE_INDEX]] в нескольких вложенных циклах, всё правильно отработало, стек не сбивается.

    Однако заметил, что [[CYCLE_INDEX]] после выхода из вложенного цикла во внешний держит номер последней итерации вложенного +1
    0_1518962981794_на форум19.png
    Вот тестовый скрипт который показывает странное поведение [[CYCLE_INDEX]]



  • @Fox Это не сбивается называется :) Я на такое не могу полагаться, лучше перебздеть и свой счетчик воткнуть :)



  • @Denis_krsk said in Не корректная работа при использовании цикла в цикле.:

    @John Это не баг просто по умолчанию счетчик цикла одна та жа переменная и поэтому во вложенном цикле он сбивается.

    Если вы про переменную [[CYCLE_INDEX]], то дело здесь не в ней. Я так понимаю что перезаписывается "переменная" которая подсчитывает количество элементов на странице. И если [[CYCLE_INDEX]] (который то же перезаписывается) в данном случае не критичен для работы внешнего цикла, то перезапись этой "переменной" нарушает работу внешнего цикла, и я не знаю как ее можно подправить (с [[CYCLE_INDEX]] в этом плане все просто), а это, как по мне, и есть баг.





  • @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 человек, то честь ему и хвала за такой продукт. А за такой, просто мега класный продукт, я готов некоторые "костыли" применять и говорить каждый раз за такое спасибо!



  • @seedgg Я думаю скоро обнова выйдет еще классная. Сам пару багов нашел в БАСе) уже исправили


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.