Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

Commit 8da6414

Browse files
Fixes issues with incorrect pattern states
Pulls in code from the following pull request in patternlab-php-core: pattern-lab/patternlab-php-core#103
1 parent 4f45786 commit 8da6414

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

vendor/pattern-lab/core/src/PatternLab/PatternData/Helpers/PatternStateHelper.php

+15-25
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,27 @@ public function run() {
4444

4545
$patternStateDigit = array_search($patternState,$patternStates);
4646

47-
// if this is a true pattern state update various patterns
48-
if ($patternStateDigit !== false) {
47+
// if this is a true pattern state, update patterns listed in reversed lineages
48+
if ($patternStateDigit !== false && !empty($patternStoreData["lineagesR"])) {
4949

50-
$storeTake2 = PatternData::get();
51-
foreach ($storeTake2 as $patternStoreKey2 => $patternStoreData2) {
50+
foreach ($patternStoreData["lineagesR"] as $patternCheckInfo) {
5251

53-
if (($patternStoreData2["category"] == "pattern") && isset($patternStoreData2["lineagesR"])) {
52+
$lineagePatternPartial = $patternCheckInfo["lineagePattern"];
53+
54+
// if the found pattern's lineage is empty and the pattern state isn't the last (e.g. complete) add the pattern state
55+
// otherwise, if the pattern state is less than the one being checked update the pattern
56+
if ((PatternData::getPatternOption($lineagePatternPartial,"state") == "") && ($patternStateDigit != $patternStateLast)) {
57+
58+
PatternData::setPatternOption($lineagePatternPartial,"state",$patternState);
5459

55-
foreach ($patternStoreData2["lineagesR"] as $patternCheckInfo) {
56-
57-
$lineagePatternPartial = $patternCheckInfo["lineagePattern"];
58-
59-
// if the found pattern's lineage is empty and the pattern state isn't the last (e.g. complete) add the pattern state
60-
// otherwise, if the pattern state is less than the one being checked update the pattern
61-
if ((PatternData::getPatternOption($lineagePatternPartial,"state") == "") && ($patternStateDigit != $patternStateLast)) {
62-
63-
PatternData::setPatternOption($lineagePatternPartial,"state",$patternState);
64-
65-
} else {
66-
67-
$patternStateCheck = array_search(PatternData::getPatternOption($lineagePatternPartial,"state"), $patternStates);
68-
if ($patternStateDigit < $patternStateCheck) {
69-
PatternData::setPatternOption($lineagePatternPartial,"state",$patternState);
70-
}
71-
72-
}
73-
60+
} else {
61+
62+
$patternStateCheck = array_search(PatternData::getPatternOption($lineagePatternPartial,"state"), $patternStates);
63+
if ($patternStateDigit < $patternStateCheck) {
64+
PatternData::setPatternOption($lineagePatternPartial,"state",$patternState);
7465
}
7566

7667
}
77-
7868
}
7969

8070
}

0 commit comments

Comments
 (0)