1: <?php
2:
3: 4: 5: 6: 7:
8:
9: namespace app\views\search;
10:
11:
12:
13:
14: require_once getcwd().'/app/views/search/Fylker.php';
15: require_once getcwd().'/app/views/search/HTMLWrapper.php';
16: require_once getcwd().'/app/views/search/SearchConstants.php';
17:
18: class HBRSearchInterface
19: {
20:
21: private $fylker;
22: private $constants;
23: private $htmlTags;
24: private $initData;
25:
26: public function __construct()
27: {
28: $this->fylker = new Fylker();
29: $this->constants = new SearchConstants();
30: $this->htmlTags = new HTMLWrapper();
31: }
32:
33: public function init($init)
34: {
35: $this->initData = $init;
36: }
37:
38: public function getPageText()
39: {
40: $pagetxt = '';
41: $pagetxt .= $this->getPrivateDataPanel();
42: $pagetxt .= '<div id="HBR_searchInterfacePanels">';
43: $pagetxt .= $this->getGeoPanel();
44: $pagetxt .= $this->getHendelsePanel();
45: $pagetxt.= ('</div> ' );
46: return $pagetxt;
47: }
48:
49: private function getGeoPanel()
50: {
51: $pagetxt = '';
52: $fylke = 'fnavn';
53: $kommune = 'k';
54: $checkbx = 'checkbox';
55:
56: $expand = 'expandfnavn';
57: $expvalue = 'expvalue';
58: $expandvalue = array();
59: $n = $this->fylker->getNumberOfFylker();
60:
61: $pagetxt.= '<div id="geographyPanel" class="panel"> ';
62: $pagetxt.= '<h2> Geografi </h2>';
63: for ($ii = 0; $ii < $n; $ii++)
64: {
65: $pagetxt.= ('<div class="countyGeographyPanel" >');
66: $pagetxt.= ($this->htmlTags->createDivElement('fylkeCheckboxWrap'));
67: $pagetxt.= $this->htmlTags->createBoxElement($fylke.$ii, '', $checkbx, $ii, '').
68: $this->htmlTags->createLabelElement($this->fylker->getFylkeNavn($ii),$fylke.$ii).
69: $this->htmlTags->createButtonElement($expand.$ii, '+', 'expansionToggle').'</div> ';
70: $nn = $this->fylker->getFylke($ii)->getNumberOfKommuner();
71: for ($jj = 0; $jj < $nn; $jj++)
72: {
73: $kom = $this->fylker->getFylke($ii)->getKommune($jj);
74: $komnavn = $kom[1].' '.$kom[2].' - ';
75: if ($kom[3] != '9999 ')
76: {
77: $komnavn.= $kom[3];
78: }
79:
80: $pagetxt.= ($this->htmlTags->createDivElement('communeCheckboxWrap'));
81: $pagetxt.= $this->htmlTags->createBoxElement( $kommune.$kom[0], '' , $checkbx, $ii.'#'.$jj, '').
82:
83: $this->htmlTags->createLabelElement($komnavn, $kommune.'#'.$ii.'#'.$jj).'</div> ';
84: }
85: $pagetxt.= ('</div> ' );
86: }
87: $pagetxt.= ('</div> ' );
88: return $pagetxt;
89: }
90:
91:
92: private function getPrivateDataPanel()
93: {
94: $pagetxt = '';
95: $value = '';
96: if ($this->initData != NULL && array_key_exists ("fornavn", $this->initData))
97: $value = $this->initData["fornavn"];
98: $pagetxt .= '<label for="name">Fornavn:</label>';
99: $pagetxt .= '<input type="text" name="name" id="name" class="searchInput" value="'.$value.'"/>';
100: $pagetxt .= '<br>';
101: $value = '';
102: if ($this->initData != NULL)
103: {
104: if(array_key_exists ("etternavn", $this->initData) && !empty($this->initData["etternavn"]))
105: $value = $this->initData["etternavn"];
106: else if(array_key_exists ("patronymikon", $this->initData) && !empty($this->initData["patronymikon"]))
107: $value = $this->initData["patronymikon"];
108: }
109: $pagetxt .= '<label for="surname">Etternavn:</label>';
110: $pagetxt .= '<input type="text" name="surname" id="surname" class="searchInput" value="'.$value.'"/>';
111: $pagetxt .= '<br>';
112:
113: $pagetxt .= '<label for="gender">Kjønn:</label>';
114: $pagetxt .= '<select id="kjonn" name="kjonn">';
115: $pagetxt .= '<option value=""></option>';
116: $pagetxt .= '<option value="m">Mann</option>';
117: $pagetxt .= '<option value="k">Kvinne</option>';
118: $pagetxt .= '</select>';
119: $pagetxt .= '<br>';
120: $value = '';
121: if ($this->initData != NULL && array_key_exists ("fodselsaar", $this->initData))
122: $value = $this->initData["fodselsaar"];
123: $pagetxt .= '<label for=""birthyear"">Fødselsår:</label>';
124: $pagetxt .= '<input type="text" name="birthyear" id="birthyear"class="searchInput" value="'.$value.'"/>';
125: $pagetxt .= '<br>';
126:
127: $pagetxt .= '<label for="fodselsdato">Fødselsdato (mm-dd):</label>';
128: $pagetxt .= '<input type="text" name="birthdate" id= "birthdate" class="searchInput" />';
129: $pagetxt .= '<br>';
130:
131: $pagetxt .= '<label for="birthplace">Fødested:</label>';
132: $pagetxt .= '<input type="text" name="birthplace" id ="birthplace" class="searchInput" />';
133: $pagetxt .= '<br>';
134:
135: $pagetxt .= '<label for="bosted">Bosted:</label>';
136: $pagetxt .= '<input type="text" name="place"/>';
137: $pagetxt .= '<br>';
138:
139: $pagetxt .= '<label for="jobb">Stilling og stand:</label>';
140: $pagetxt .= '<input type="text" name="job"/>';
141: $pagetxt .= '<br>';
142: $pagetxt .= '<button type="submit" name = "search"> Søk </button>';
143: return $pagetxt;
144: }
145:
146: private function getHendelsePanel()
147: {
148:
149: $checkbx = 'checkbox';
150: $pagetxt = '';
151: $pagetxt.= ( $this->htmlTags->createDivElement('panel'));
152: $pagetxt.= ('<h2>Hendelse</h2>');
153: 154: 155: 156: 157: 158: 159: 160: 161:
162:
163: $allcontainer = '';
164: $listcontainer = '';
165: $pagetxt.= ( $this->htmlTags->createDivElement('hendelsePanel'));
166: foreach ($this->constants->HENDELSER as $key => $value)
167: {
168: if ($key == "all")
169: {
170:
171: $pagetxt.= $this->htmlTags->createDivElement('allHendelse').
172: $this->htmlTags->createBoxElement($key, '', $checkbx, $key, '').
173: $this->htmlTags->createLabelElement($value,'hendelser').'</div>';
174: }
175: else
176: {
177:
178: $pagetxt.= $this->htmlTags->createDivElement('listHendelse').
179: $this->htmlTags->createBoxElement($key, '', $checkbx, $key, '').
180: $this->htmlTags->createLabelElement($value,'hendelser').'</div>';
181: }
182: }
183:
184: $pagetxt.= '</div>';
185: $pagetxt.= '</div>';
186: $pagetxt.= $this->htmlTags->createDivElement('panel');
187: $pagetxt.= '<h2>Rolle</h2>';
188: $pagetxt.= '<select id="rolle" name="rolle[]" multiple="multiple">';
189: foreach ($this->constants->ROLLER as $key => $value)
190: {
191: $pagetxt.= '<option value="'.$key.'">'.$value.'</option>';
192: }
193: $pagetxt.= '</select>';
194: $pagetxt.= '<br>';
195: $pagetxt.= '<i> Brukes bare når det er markert for én hendelse fra kirkebok (kb) i hendelsestabellen til venstre. </i> <br>';
196: $pagetxt.= ('</div>');
197: $pagetxt.= $this->htmlTags->createDivElement('panel');
198: $pagetxt.= '<h2> År/tidsperiode </h2>';
199: $pagetxt.= $this->htmlTags->createLabelElement('Fra:','fra');
200: $pagetxt.= '<span style="padding-left:30px">';
201: $pagetxt.= $this->htmlTags->createLabelElement('Til:','til');
202: $pagetxt.= '<br>';
203: $pagetxt.= $this->htmlTags->createTextElement( 'fra','','fra', '5');
204: $pagetxt.= $this->htmlTags->createTextElement( 'til','','til', '5');
205: 206: 207: 208:
209: $pagetxt.= '</div>';
210: return $pagetxt;
211:
212: }
213: }