| @@ 212-224 (lines=13) @@ | ||
| 209 | ||
| 210 | $states = []; |
|
| 211 | foreach ($timeaxis as $state) { |
|
| 212 | foreach ($changeaxis as $changes) { |
|
| 213 | foreach ($changes as $change) { |
|
| 214 | if ($change->begin > $state->begin) { |
|
| 215 | // future override |
|
| 216 | continue; |
|
| 217 | } |
|
| 218 | if ($change->end && ($change->end < $state->end || !$state->end)) { |
|
| 219 | // complete override |
|
| 220 | continue; |
|
| 221 | } |
|
| 222 | $state->data[] = $change->data; |
|
| 223 | } |
|
| 224 | } |
|
| 225 | if (count($state->data)) { |
|
| 226 | $states[] = (object) array_merge(get_object_vars($state), $params); |
|
| 227 | } |
|
| @@ 326-336 (lines=11) @@ | ||
| 323 | // calculate states |
|
| 324 | $states = []; |
|
| 325 | foreach ($slices as $slice) { |
|
| 326 | foreach ($changes as $change) { |
|
| 327 | if ($change->begin > $slice->begin) { |
|
| 328 | // future change |
|
| 329 | continue; |
|
| 330 | } |
|
| 331 | if ($change->end && ($change->end < $slice->end || !$slice->end)) { |
|
| 332 | // complete change |
|
| 333 | continue; |
|
| 334 | } |
|
| 335 | $callback($slice, $change); |
|
| 336 | } |
|
| 337 | if (count((array) $slice->data)) { |
|
| 338 | $states[] = $slice; |
|
| 339 | } |
|