Я работаю с обезжиренным фреймворком и в настоящее время работаю над созданием брекетов для соревнований.
То, что я делаю, - это прохождение нескольких участников (из разных «слоев») в представление для отображения их в видедерево.Базовая стилизация взята из этой кодовой ручки .
Теперь проблема в том, что я не знаю каждое поле с самого начала, так как в результате первых двух соревнований решается, как следующий уровеньвыглядит (четвертьфинал в этом случае).Проблема, однако, в том, что если я не помещу туда поля, то полный макет будет уничтожен, поэтому я добавлю пустые <li>
элементы для слоя, где конкуренты пока не ясны, просто так:
<li class="team-item"> </li>
<li class="team-item"> </li>
<li class="team-item"> </li>
<li class="team-item"> </li>
То же самое для полуфинала и финала, тогда только с 2 и 1 <li>
с.
Теперь в некоторых ячейках четверти / полуфинала у меня уже есть кое-что в моей базе данных,Например, если в "layer1" есть 8 соревнований, то в "layer2" у меня будет 4 пустых поля, соответственно, в четвертьфинале.Эти 4 поля должны быть предопределены, чтобы сохранить макет.Теперь, может быть, у меня уже заполнено только одно или два из этих полей, потому что другие соревнования еще не закончены
Таким образом, я должен всегда предопределять поля, как в коде выше.Теперь возникает вопрос: как мне заменить один пустой <li>
на заполненный или альтернативно, как мне заполнить пустой <li>
информацией, если она предоставлена?
<ul class="bracket bracket-2">
<repeat group="{{ @bracket }}" value="{{ @item }}">
<check if="{{@item.layer == 2}}">
<!-- li should be filled with this content, if the condition is true, so if in here -->
<li class="team-item">{{ @item.Vorname1 }} {{ @item.Name1 }} <a href="/getFighterInformation/{{@item.fighter1ID}}"<i class="fa fa-pencil-alt"></i></a> <i class="fa fa-trophy"></i></li>
<li class="team-item">{{ @item.Vorname2 }} {{ @item.Name2 }} <a href="/getFighterInformation/{{@item.fighter2ID}}"<i class="fa fa-pencil-alt"></i></a> <i class="fa fa-trophy"></i></li>
</check>
</repeat>
<!-- This should be predefined -->
<li class="team-item"> </li>
<li class="team-item"> </li>
<li class="team-item"> </li>
<li class="team-item"> </li>
<!-------------------------------->
</ul>
Это пример дляслой 2 с 8 соревнованиями в слое 1.
Я надеюсь, вы понимаете, о чем я, но это довольно сложно объяснить ...
Итак, подведем итог: вопрос: возможно ли заранее определитьперечислить элементы, а затем заполнить или заменить их, если условие if соответствует?
РЕДАКТИРОВАТЬ:
Это то, что я получаю из базы данных, заполненной переменной скобки:
array(4){
[
0
] => array(15) {
[
"ID"
] => string(1) "1" [
"eventID"
] => string(1) "1" [
"kategorie"
] => string(4) "FA62" [
"ebene"
] => string(1) "3" [
"fighter1ID"
] => string(2) "21" [
"Vorname1"
] => string(5) "one" [
"Name1"
] => string(4) "one" [
"Geburtsdatum1"
] => string(10) "1999-04-04" [
"fighter1Pos"
] => string(1) "0" [
"fighter2ID"
] => string(2) "19" [
"Vorname2"
] => string(8) "two" [
"Name2"
] => string(4) "two" [
"Geburtsdatum2"
] => string(10) "1988-12-11" [
"fighter2Pos"
] => string(1) "1" [
"result"
] => string(1) "0"
} [
1
] => array(15) {
[
"ID"
] => string(1) "2" [
"eventID"
] => string(1) "1" [
"kategorie"
] => string(4) "FA62" [
"ebene"
] => string(1) "3" [
"fighter1ID"
] => string(2) "25" [
"Vorname1"
] => string(5) "three" [
"Name1"
] => string(4) "three" [
"Geburtsdatum1"
] => string(10) "1988-08-18" [
"fighter1Pos"
] => string(1) "2" [
"fighter2ID"
] => string(2) "24" [
"Vorname2"
] => string(5) "four" [
"Name2"
] => string(4) "four" [
"Geburtsdatum2"
] => string(10) "1985-08-17" [
"fighter2Pos"
] => string(1) "3" [
"result"
] => string(1) "0"
} [
2
] => array(15) {
[
"ID"
] => string(1) "3" [
"eventID"
] => string(1) "1" [
"kategorie"
] => string(4) "FA62" [
"ebene"
] => string(1) "3" [
"fighter1ID"
] => string(2) "23" [
"Vorname1"
] => string(5) "five" [
"Name1"
] => string(4) "five" [
"Geburtsdatum1"
] => string(10) "1966-06-16" [
"fighter1Pos"
] => string(1) "4" [
"fighter2ID"
] => string(2) "20" [
"Vorname2"
] => string(8) "six" [
"Name2"
] => string(4) "six" [
"Geburtsdatum2"
] => string(10) "1966-03-03" [
"fighter2Pos"
] => string(1) "5" [
"result"
] => string(1) "0"
} [
3
] => array(15) {
[
"ID"
] => string(1) "4" [
"eventID"
] => string(1) "1" [
"kategorie"
] => string(4) "FA62" [
"ebene"
] => string(1) "3" [
"fighter1ID"
] => string(2) "18" [
"Vorname1"
] => string(6) "seven" [
"Name1"
] => string(4) "seven" [
"Geburtsdatum1"
] => string(10) "1985-08-17" [
"fighter1Pos"
] => string(1) "6" [
"fighter2ID"
] => string(2) "22" [
"Vorname2"
] => string(9) "eight" [
"Name2"
] => string(4) "eight" [
"Geburtsdatum2"
] => string(10) "1995-09-15" [
"fighter2Pos"
] => string(1) "7" [
"result"
] => string(1) "0"
}
}
В одной коробке должен быть только один, а не два бойца.Таким образом, каждый элемент массива представляет один бой, содержащий два бойца (на которые ссылается fighter1ID / fighter2ID, соответственно Name1, Name2 и т. Д.).Затем fighter1Pos и fighter2Pos вместе со значением «ebene», которым является слой (3, 2, 1 или 0), определяют положение в скобке, поэтому слой 3 с fighter1Pos 7 будет последней «коробкой» в слое3 (считая от 0 до 7).