/**
  * bouwScherm bouwt het scherm op
  * @return boolean False als er iets mis is gegaan, anders true
  */
 public function bouwScherm()
 {
     $this->m_aData['categories'] = '';
     $this->m_aData['postlink'] = SchermGenerator::genereerLink(SchermGenerator::WELKOM);
     $this->addScript('js/functies.js');
     $this->m_sTemplate = 'bezoekerpagina.tpl';
     $sSelectiequery = "SELECT pagina_id, titel, inhoud ";
     $sSelectiequery .= "FROM `webpaginas` ";
     $sSelectiequery .= "WHERE pagina_id = " . $this->m_nPagina;
     // Databaseverbinding met MySQL openen
     $rDatabaseverbinding = mysqli_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysqli_errno());
     // Verbinding controleren
     if (mysqli_connect_errno()) {
         echo "Fout bij het maken van een verbinding met MySQL: " . mysqli_connect_error();
     }
     // De database van BC Rianto selecteren
     mysqli_select_db($rDatabaseverbinding, MYSQL_DATABASENAAM) or die(sprintf('Hieronder de foutmelding\\n', mysqli_connect_errno(), mysqli_connect_error()));
     // Gegevens van jarigen uit de database halen
     $rRecordset = mysqli_query($rDatabaseverbinding, $sSelectiequery) or die(mysqli_error($rDatabaseverbinding));
     // Stap 5. Resultaten verwerken als een associatieve array
     while ($aRecord = mysqli_fetch_array($rRecordset, MYSQL_ASSOC)) {
         $this->p_sKop .= $aRecord['titel'];
         $this->p_sInhoud .= $aRecord['inhoud'];
     }
     $this->m_sHTML = "<h2>" . $this->p_sKop . "</h2>" . $this->p_sInhoud . "<br>";
     // Resultaat in MySQL vrijgeven
     mysqli_free_result($rRecordset);
     // Databaseverbinding met MySQL sluiten
     mysqli_close($rDatabaseverbinding);
     // Eventueel nog systeembronnen (resources) opruimen
     unset($rRecordset);
     unset($rDatabaseverbinding);
     return true;
 }
 /**
  * bouwScherm bouwt het scherm op
  * @return boolean False als er iets mis is gegaan, anders true
  */
 public function bouwScherm()
 {
     $this->m_aData['categories'] = '';
     $this->m_aData['postlink'] = SchermGenerator::genereerLink(SchermGenerator::NIEUWS_VERWIJDEREN);
     $this->m_sTemplate = 'nieuwsverwijderenpagina.tpl';
     $this->m_sHTMLpagina = 'html/' . get_class($this) . '.html';
     return true;
 }
 /**
  * bouwScherm bouwt het scherm op
  * @return boolean False als er iets mis is gegaan, anders true
  */
 public function bouwScherm()
 {
     $this->m_aData['categories'] = '';
     $this->m_aData['postlink'] = SchermGenerator::genereerLink(SchermGenerator::BEHEER);
     $this->addScript('');
     $this->m_sTemplate = 'beheerpagina.tpl';
     $this->m_sHTML = "<h3>Kies in het menu!</h3>";
     return true;
 }
 /**
  * genereerMenu
  * @todo verwijderen van leden
  * @todo toevoegen van leden
  * @todo verwijderen van nieuws
  * @todo toevoegen van nieuws
  */
 public function genereerMenu($p_aRechten)
 {
     $this->addHoofdMenupunt('nieuwsbekijken', 'Nieuws bekijken', SchermGenerator::genereerLink(SchermGenerator::NIEUWS_BEKIJKEN));
     if (!(array_search(1, $p_aRechten) === false) || !(array_search(7, $p_aRechten) === false)) {
         $this->addHoofdMenupunt('nieuwsaanpassen', 'Nieuws aanpassen', SchermGenerator::genereerLink(SchermGenerator::NIEUWS_AANPASSEN));
     }
     if (!(array_search(2, $p_aRechten) === false) || !(array_search(7, $p_aRechten) === false)) {
         $this->addHoofdMenupunt('ledenbekijken', 'Ledenlijst bekijken', SchermGenerator::genereerLink(SchermGenerator::LEDEN_BEKIJKEN));
     }
     if (!(array_search(4, $p_aRechten) === false) || !(array_search(7, $p_aRechten) === false)) {
         $this->addHoofdMenupunt('ledenaanpassen', 'Leden aanpassen', SchermGenerator::genereerLink(SchermGenerator::LEDEN_AANPASSEN));
     }
     $this->addHoofdMenupunt('uitloggen', 'Uitloggen', SchermGenerator::genereerLink(SchermGenerator::UITLOGGEN));
 }
 /**
  * bouwScherm bouwt het scherm op
  * @return boolean False als er iets mis is gegaan, anders true
  */
 public function bouwScherm()
 {
     $this->m_aData['categories'] = '';
     $this->m_aData['postlink'] = SchermGenerator::genereerLink(SchermGenerator::LEDEN_BEKIJKEN);
     $this->m_sTemplate = 'ledenbekijken.tpl';
     $this->m_sHTML = '<h2>Ledenlijst</h2>';
     try {
         // Zoek de leden op in de database
         $oDB = new DB();
         $sSelectiequery = "SELECT lid_nummer, inschrijf_datum, voornaam, tussenvoegsel, achternaam, straatnaam, huisnr, toevoegsel, postcode, woonplaats, post_straatnaam, post_huisnr, post_toevoegsel, post_postcode, post_woonplaats, geslacht, email, telefoon_vast, telefoon_mobiel, bondsnummer, geboorte_datum, lid_status FROM ledenlijst ORDER BY achternaam;";
         $oResultaat = $oDB->query($sSelectiequery);
         $this->m_sHTML .= "<table style='border:2px solid;border-width'>";
         //width:100%;
         $this->m_sHTML .= "<tr style='border-bottom:2px solid;padding:5px'><th style='padding:2px'>Lidnr.</th><th style='padding:2px'>Inschrijfdatum</th><th style='padding:2px'>Voornaam</th><th style='padding:2px'>Tussenvoegsel</th><th style='padding:2px'>Achternaam</th>";
         $this->m_sHTML .= "<th style='padding:2px'>Straatnaam</th><th style='padding:2px'>Huisnr.</th><th style='padding:2px'>Postcode</th><th style='padding:2px'>Woonplaats</th><th style='padding:2px'>Straatnaam(post)</th><th style='padding:2px'>Huisnr(post)</th><th style='padding:2px'>Postcode(post)</th><th style='padding:2px'>Woonplaats(post)</th><th style='padding:2px'>Geslacht</th><th style='padding:2px'>E-mail</th><th style='padding:2px'>Telefoon(vast)</th><th style='padding:2px'>Telefoon(mobiel)</th><th style='padding:2px'>Bondsnummer</th><th style='padding:2px'>Geboorte-datum</th></tr>";
         while (($aRecord = $oResultaat->fetch(PDO::FETCH_ASSOC)) !== false) {
             $this->m_sHTML .= "<tr style='border-bottom:1px solid #CCF;padding:5px'>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['lid_nummer'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['inschrijf_datum'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['voornaam'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:center'>" . $aRecord['tussenvoegsel'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['achternaam'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['straatnaam'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['huisnr'] . $aRecord['toevoegsel'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['postcode'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['woonplaats'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['post_straatnaam'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['post_huisnr'] . $aRecord['post_toevoegsel'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px'>" . $aRecord['post_postcode'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['post_woonplaats'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['geslacht'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['email'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['telefoon_vast'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['telefoon_mobiel'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['bondsnummer'] . "</td>";
             $this->m_sHTML .= "<td style='padding:2px;text-align:right'>" . $aRecord['geboorte_datum'] . "</td>";
             $this->m_sHTML .= "</tr>";
         }
         $this->m_sHTML .= "/<table>";
     } catch (PDOException $e) {
         // een fout geeft een foutmelding weer.
         $this->m_sHTML = '<h2>Ledenlijst</h2><br>';
         $this->m_sHTML .= 'Er is iets fout gegaan bij het ophalen van de gegevens uit de ledenlijst!<br>';
         $this->m_sHTML .= 'Controleer de internetverbinding of neem contact op met de beheerder.<br>';
     }
     return true;
 }
 public function genereerMenu($p_aRechten)
 {
     $this->addHoofdMenupunt('over ons', 'Over Ons', '#');
     $this->addHoofdMenupunt('competitie', 'Competitie', '#');
     $this->addHoofdMenupunt('recreanten', 'Recreanten', SchermGenerator::genereerLink(SchermGenerator::RECREANTEN));
     $this->addHoofdMenupunt('jeugd', 'Jeugd', SchermGenerator::genereerLink(SchermGenerator::JEUGD));
     $this->addHoofdMenupunt('informatie', 'Info', '#');
     $this->addHoofdMenupunt('agenda', 'Agenda', SchermGenerator::genereerLink(SchermGenerator::AGENDA));
     $this->addHoofdMenupunt('contact', 'Contact', SchermGenerator::genereerLink(SchermGenerator::CONTACT));
     $this->addHoofdMenupunt('inloggen', 'Inloggen', SchermGenerator::genereerLink(SchermGenerator::INLOGGEN));
     $this->addSubMenupunt('over ons', 'geschiedenis', 'Geschiedenis', SchermGenerator::genereerLink(SchermGenerator::GESCHIEDENIS));
     $this->addSubMenupunt('over ons', 'bestuur', 'Bestuur', SchermGenerator::genereerLink(SchermGenerator::BESTUUR));
     $this->addSubMenupunt('over ons', 'commissies', 'Commissies', SchermGenerator::genereerLink(SchermGenerator::COMMISSIES));
     $this->addSubMenupunt('competitie', 'training', 'Training', SchermGenerator::genereerLink(SchermGenerator::TRAINING));
     $this->addSubMenupunt('competitie', 'najaarscompetitie', 'Najaar', SchermGenerator::genereerLink(SchermGenerator::NAJAARSCOMPETITIE));
     $this->addSubMenupunt('competitie', 'voorjaarscompetitie', 'Voorjaar', SchermGenerator::genereerLink(SchermGenerator::VOORJAARSCOMPETITIE));
     $this->addSubMenupunt('competitie', 'teams', 'Teams', SchermGenerator::genereerLink(SchermGenerator::TEAMS));
     $this->addSubMenupunt('informatie', 'accomodaties', 'Accomodaties', SchermGenerator::genereerLink(SchermGenerator::ACCOMODATIES));
     $this->addSubMenupunt('informatie', 'nieuwsbrieven', 'Nieuwsbrieven', SchermGenerator::genereerLink(SchermGenerator::NIEUWSBRIEVEN));
     $this->addSubMenupunt('informatie', 'watbiedenwij', 'Wat bieden wij?', SchermGenerator::genereerLink(SchermGenerator::WATBIEDENWIJ));
 }
 /**
  * handlePagina Handelt de gegeven pagina af
  * 
  * Deze methode controleert of de juiste invoer is gegeven en handelt de pagina verder af
  * Er wordt een gebruikerobject gemaakt dat de gegevens van de huidige gebruiker bevat.
  * @return void
  */
 public function handlePagina()
 {
     try {
         // vang alle fouten af
         // creeer een Gebruiker object
         $this->m_oGebruiker = new Gebruiker();
         // plaats de gebruiker in de Registry zodat andere objecten deze kunnen gebruiken
         Registry::add($this->m_oGebruiker, 'Bezoeker');
         // creeer de inputvalidator
         $oValidator = InputValidator::instantiate();
         $nResult = $oValidator->validate('page', InputValidator::SCOPE_GET | InputValidator::SCOPE_POST, InputValidator::TYPE_INT, true);
         if ($nResult == InputValidator::RESULT_OK || $nResult == InputValidator::RESULT_CONVERTABLE) {
             // pagina bestaat in GET of POST
             $nPagina = intVal($oValidator->getValue('page', InputValidator::SCOPE_GET | InputValidator::SCOPE_POST));
             // maak het juiste Scherm object aan
             $oScherm = SchermGenerator::genereerSchermObject($nPagina);
         } else {
             // geen pagina opgegeven, ga naar homepage
             $oScherm = SchermGenerator::genereerSchermObject(SchermGenerator::WELKOM);
         }
     } catch (Exception $e) {
         // iets is fout gegaan, log uit en toon homepage
         if (is_object($this->m_oGebruiker)) {
             $this->m_oGebruiker->logout();
         }
         // zet exception in de registry zodat de errorpage de info kan tonen
         Registry::add($e, 'Exception');
         $oScherm = SchermGenerator::genereerSchermObject(SchermGenerator::ERRORPAGE);
     }
     if (is_object($oScherm)) {
         // handel eventuele input af
         $oScherm = $oScherm->handlePagina();
         // bouw het scherm met de juiste informatie en toon het
         $oScherm->bouwScherm();
         $oScherm->toon();
     } else {
         // geen scherm object, heel erg fout.
         echo 'Er is geen scherm-object aangemaakt/of ontbreekt.';
     }
 }
 /**
  * bouwScherm bouwt het zoekresultaatscherm op
  * @param array $p_aGegevens geassocieerde array met artikelgegevens
  * @return boolean False als er iets mis is gegaan, anders true
  */
 public function bouwScherm()
 {
     $this->m_sTemplate = 'login.tpl';
     $this->m_aData['postlink'] = SchermGenerator::genereerLink(SchermGenerator::INLOGGEN);
     return true;
 }