Passed
Push — main ( 9152fd...203f91 )
by N.
03:37
created

Moduler::visa_moduler()   A

Complexity

Conditions 5
Paths 9

Size

Total Lines 31
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 5

Importance

Changes 0
Metric Value
cc 5
eloc 13
nc 9
nop 0
dl 0
loc 31
ccs 14
cts 14
cp 1
crap 5
rs 9.5222
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Klass Moduler.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Klasser;
11
12
use Tips\Klasser\Moduler\Kombinationsgraf;
13
14
/**
15
 * Klass Moduler.
16
 * Hantera insticksmoduler.
17
 * Moduler kan göra vad som helst, men interagerar normalt med systemet.
18
 * Parametrar för moduler är utdelning, odds, streck och matcher.
19
 */
20
final class Moduler extends Kombinationsgraf {
21
	/**
22
	 * Mall för moduler.
23
	 */
24 1
	public function visa_moduler(): void {
25 1
		$modultext = '';
26
		/**
27
		 * Generera lista över befintliga moduler.
28
		 * Knapp anger om modul är aktiv eller inte.
29
		 * Även en ordning kan definieras genom dra och släpp med jQueryUI.
30
		 */
31 1
		foreach ($this->moduler as $index => $modul) {
32 1
			$aktiv = ($modul[2]) ? ' checked="checked"' : '';
33 1
			$modultext .= <<< EOT
34 1
								<tr class="modulsortering" id="moduler_{$modul[1]}">
35 1
									<td class="ramfri luft">{$modul[0]}</td>
36 1
									<td class="ramfri luft"><input type="checkbox" id="sortera_moduler$index" name="modul[{$modul[1]}][aktiv]" value="1"$aktiv>
37 1
									<label for="sortera_moduler$index">{$modul[1]}</label></td>
38
								</tr>
39
40 1
EOT;
41
		}
42
43
		/**
44
		 * Eka ut modulflik.
45
		 */
46 1
		$this->modulflik($modultext);
47
48
		/**
49
		 * Iterera över aktiva moduler.
50
		 * Visa modulsida om metod är definierad.
51
		 */
52 1
		foreach ($this->m_moduler as $modul) {
53 1
			if (method_exists($modul, 'visa_modul')) {
54 1
				$modul->visa_modul();
55
			}
56
		}
57
	}
58
59
	/**
60
	 * Rendera modulflik.
61
	 */
62 1
	private function modulflik(string $modultext): void {
63 1
		echo <<< EOT
64 1
			<div id="flikar-modul">
65
				<div class="generell-övre-grid">
66
					<div class="generell-övre">
67
						<h1>Moduler</h1>
68
						<form method="post" action="/#flikar-modul">
69
							<table class="ram fluff" id="sortera_moduler">
70
								<tr class="match">
71
									<th class="höger">Prio</th>
72
									<th>Modul</th>
73
								</tr>
74 1
$modultext							</table>
75
							<p><input name="uppdatera_moduler" type="submit" value="Uppdatera"></p>
76
						</form>
77
						<p>Ändra ordning genom att dra knappar till önskad position.<br>
78
						Aktivera och inaktivera genom att klicka på önskad knapp.</p>
79
					</div> <!-- generell-övre -->
80
				</div> <!-- generell-övre-grid -->
81
			</div> <!-- flikar-modul -->
82
83 1
EOT;
84
	}
85
}
86