11<?php
22require_once ("functions.php " );
33
4+ // get form data
45$ showPerformed = ($ _GET ['performed ' ] ?? false ) == "true " ? "true " : false ;
56$ showPlanned = ($ _GET ['planned ' ] ?? false ) == "true " ? "true " : false ;
67
7- $ dimensions = array ();
8- $ files = scandir ("data " );
9- $ dimensions = readYaml ("data/dimensions.yaml " );
8+ $ dimensions = getDimensions ();
109
11- // reorder in-place $dimensions. This should wrap readYaml(data/dimensions.yaml)
12- ksort ($ dimensions );
13- foreach ($ dimensions as $ dimensionName => $ subDimension ) {
14- ksort ($ subDimension );
15- foreach ($ subDimension as $ subDimensionName => $ elements ) {
16-
17- // Q: should I retain this?
18- if (substr ($ subDimensionName , 0 , 1 ) == "_ " )
10+ // Create filteredDimensions
11+ $ filteredDimensions = array ();
12+ foreach (getActions ($ dimensions ) as list ($ dimension , $ subdimension , $ activities )) {
13+ foreach ($ activities as $ activityName => $ activity ) {
14+ if (elementIsSelected ($ activityName ) && !$ showPerformed ) {
1915 continue ;
20-
21- // Upgrade old configuration to `references:`
22- // this code can be modified to other models.
23- foreach ($ elements as $ activityName => $ content ) {
24-
25- if ($ content ["references " ] ?? null ) // ignore new lines
26- continue ;
27-
28- $ content ["references " ]["samm2 " ] = $ content ["samm2 " ] ?? array ();
29- unset($ content ["samm2 " ]);
30- $ content ["references " ]["iso27001-2017 " ] = $ content ["iso27001-2017 " ] ?? array ();
31- unset($ content ["iso27001-2017 " ]);
32- //echo var_dump($elements[$activityName]);
33- //echo "<hr>";
34- $ elements [$ activityName ] = $ content ;
35-
3616 }
37- $ newElements = $ elements ;
38- ksort ($ newElements );
39- $ dimensions [$ dimensionName ][$ subDimensionName ] = $ newElements ;
40- }
41- }
4217
43-
44- $ filteredDimensions = array ();
45- foreach ($ dimensions as $ dimensionName => $ subDimension ) {
46- ksort ($ subDimension );
47- foreach ($ subDimension as $ subDimensionName => $ elements ) {
48- if (substr ($ subDimensionName , 0 , 1 ) == "_ " )
18+ if (!elementIsSelected ($ activityName ) && !$ showPlanned ) {
4919 continue ;
50- $ newElements = $ elements ;
51- ksort ($ newElements );
52- foreach ($ newElements as $ activityName => $ activity ) {
53- if (elementIsSelected ($ activityName ) && !$ showPerformed ) {
54- continue ;
55- }
56-
57- if (!elementIsSelected ($ activityName ) && !$ showPlanned ) {
58- continue ;
59- }
60- $ filteredDimensions [$ dimensionName ][$ subDimensionName ][$ activityName ] = $ activity ;
6120 }
62-
21+ $ filteredDimensions [ $ dimension ][ $ subdimension ][ $ activityName ] = $ activity ;
6322 }
6423}
6524
@@ -78,7 +37,7 @@ function getDifficultyOfImplementationWithDependencies($dimensions, $elementImpl
7837
7938 if (array_key_exists ('dependsOn ' , $ elementImplementation ) && $ _GET ['aggregated ' ] == "true " ) {
8039 foreach ($ elementImplementation ['dependsOn ' ] as $ dependency ) {
81- $ dependencyElement = getElementByName ($ dimensions , $ dependency );
40+ $ dependencyElement = getActivity ($ dimensions , $ dependency );
8241 getDifficultyOfImplementationWithDependencies ($ dimensions , $ dependencyElement , $ allElements );
8342
8443
@@ -105,7 +64,7 @@ function getDifficultyOfImplementation($dimensions, $elementImplementation)
10564
10665 if (array_key_exists ('dependsOn ' , $ elementImplementation ) && $ _GET ['aggregated ' ] == "true " ) {
10766 foreach ($ elementImplementation ['dependsOn ' ] as $ dependency ) {
108- $ dependencyElement = getElementByName ($ dimensions , $ dependency );
67+ $ dependencyElement = getActivity ($ dimensions , $ dependency );
10968 $ value += getDifficultyOfImplementation ($ dimensions , $ dependencyElement );
11069 }
11170 }
@@ -142,31 +101,34 @@ function getElementContentAndCheckExistence($parent, $name)
142101function getElementContent ($ element )
143102{
144103 $ Extra = new ParsedownExtra ();
145- $ contentString = "" ;
146- if (is_array ($ element )) {
147- if (isAssoc ($ element )) {
148- foreach ($ element as $ title => $ elementContent ) {
149- $ titleWithSpace = preg_replace ('/(?<=[a-z])[A-Z]|[A-Z](?=[a-z])/ ' , ' $0 ' , $ title );
150- $ contentString .= "<b> " . ucfirst ($ titleWithSpace ) . "</b> " ;
151- $ contentString .= "<ul> " ;
152- if (is_array ($ elementContent )) {
153- $ contentString .= getElementContent ($ elementContent );
154- } else
155- $ contentString .= "<li> " . $ Extra ->text ($ elementContent ) . "</li> " ;
156- $ contentString .= "</ul> " ;
157- }
104+ if (!is_array ($ element )){
105+ return str_replace ("\"" , "' " , $ element );
106+ }
158107
159- } else {
108+ if (isAssoc ($ element )) {
109+ $ contentString = "" ;
110+
111+ foreach ($ element as $ title => $ elementContent ) {
112+ $ titleWithSpace = preg_replace ('/(?<=[a-z])[A-Z]|[A-Z](?=[a-z])/ ' , ' $0 ' , $ title );
113+ $ contentString .= "<b> " . ucfirst ($ titleWithSpace ) . "</b> " ;
160114 $ contentString .= "<ul> " ;
161- foreach ($ element as $ content ) {
162- $ contentString .= "<li> " . $ Extra ->text ($ content ) . "</li> " ;
163- }
115+ if (is_array ($ elementContent )) {
116+ $ contentString .= getElementContent ($ elementContent );
117+ } else
118+ $ contentString .= "<li> " . $ Extra ->text ($ elementContent ) . "</li> " ;
164119 $ contentString .= "</ul> " ;
165120 }
166-
167- } else {
168- $ contentString = str_replace ("\"" , "' " , $ element );
121+ return $ contentString ;
122+
123+ }
124+
125+ // default
126+ $ contentString = "<ul> " ;
127+ foreach ($ element as $ content ) {
128+ $ contentString .= "<li> " . $ Extra ->text ($ content ) . "</li> " ;
169129 }
130+ $ contentString .= "</ul> " ;
131+
170132 return $ contentString ;
171133}
172134
@@ -216,13 +178,13 @@ function build_table_tooltip($array, $headerWeight = 2)
216178}
217179
218180
219- function getElementByName ($ dimensions , $ name )
181+ function getActivity ($ dimensions , $ name )
220182{
221183 foreach ($ dimensions as $ dimensionName => $ subDimension ) {
222184 foreach ($ subDimension as $ subDimensionName => $ activities ) {
223- foreach ($ activities as $ activityName => $ content ) {
185+ foreach ($ activities as $ activityName => $ activity ) {
224186 if ($ activityName == $ name ) {
225- return $ content ;
187+ return $ activity ;
226188 }
227189 }
228190 }
0 commit comments