Contact | Programmeertips

Paul the Dutchman


Dynamische website met informatie, berichten en andere gegevens. Een groot deel van de content van de website is familie- en hobby-gerelateerd, maar er is ook veel informatie die voor anderen interessant kan zijn, zoals onderwerpen als programmeren, Linux, stamboom van Wolbers en goede open-source software.
Na de start van mijn PHP opleiding, medio 2007 ben ik de site helemaal gaan restylen en dynamisch gaan maken. Een database aangemaakt en eerst met vele query's de boel draaiende gekregen. Later dingen samengetrokken en functies gemaakt. Weer wat later (2008) 'classes' en objecten gaan maken, waardoor er weer heel veel code kon verdwijnen. In 2009 de validatie van formulieren verder uitgewerkt en verbeterd. In 2010 heb ik de site maar weer eens gerestyled naar de huidige versie. Als ik even tijd heb ben ik steeds bezig met uitbreiding van de functionaliteit en verbeteren van de code.

KENMERKEN/ FUNCTIONALITEIT:


     

  1. Loginsyteem en anti-hackcontrole

  2.  

  3. Registreren
  4. Bezoekers die ook de privécontent willen zien en content willen toevoegen, kunnen zich aanmelden bij de administrator. Na goedkeuring door de administrator worden ze toegevoegd als geregistreerde gebruikers en ontvangen per email hun gebruikersnaam en wachtwoord.

  5. Geregistreerde gebruikers kunnen:
    • 'Homepage'-content toevoegen en eigen content bewerken en verwijderen.
      Deze content kan bestaan uit: berichten met evt. een foto, items in het 'vraag en aanbod' gedeelte, reacties op berichten en reacties op items in het 'vraag en aanbod' gedeelte.
    • Op aanvraag foto's toevoegen aan speciaal hiervoor geselecteerde fotoalbums.
    • Overzichten bekijken van: berichten, 'vraag en aanbod' items, bezoekers en verjaardagen.
    • Zoeken in alle content van de website.
    • Alle overige privé-content bekijken.

  6. Extra rechten van de administrator
    • Content van iedereen bewerken/verwijderen.
    • Een 'foto van de week' plaatsen.
    • In het linker gedeelte admin content toevoegen.
    • Naast de overzichten die ingelogde gebruikers kunnen zien, zoals 'vraag en aanbod', content (berichten op de homepage) en verjaardagen, ook nog overzichten bekijken van gebruikers en weekfoto\'s en uitgebreidere overzichten van bezoekers.
    • Met één druk op een knop een backup maken van de database.
    • Berichten in het archief plaatsen.
    • Ook op andere pagina's direct vanaf de website content toevoegen. Bijvoorbeeld de favoriete websites en opensource programma's

  7. Meldingen en herinneringen die getoond worden
    • De namen van geregistreerde gebruikers en familieleden die de huidige maand en de volgende maand jarig zijn worden getoond. Jarigen worden op hun verjaardag gefeliciteerd op de homepage.
    • Er is een herinnering ingebouwd die aangeeft als de zomertijd of wintertijd ingaat en je de klok terug of vooruit moet zetten.
    • Er zijn herinneringen op feestdagen en andere speciale dagen.
    • Als er sinds je laatste bezoek nieuwe privé-content of nieuwe items in 'vraag en aanbod' zijn, wordt dit gemeld op de homepage.
    • Er wordt weergegeven hoeveel mensen er online zijn. Als dit geregistreerde gebruikers zijn die zijn ingelogd dan wordt hun naam ook genoemd.

  8. Dynamische onderdelen
    • Het kruimelpad.
    • Wie zijn er online.
    • Melding welke datum je laatste bezoek was.
    • Als je ingelogd bent verschijnen er verschillende pictogrammen (zoals content aanmaken, bewerken, verwijderen en reageren op content), links naar overzichten en de privé-inhoud.
    • De verjaardagen.
    • De kalender met gegevens van tientallen jaren die reeds in de database zijn ingevoerd zodat de kalender niet elke keer opnieuw de feestdagen hoeft te berekenen. In de agenda staan o.a. katholieke feestdagen, nationale feestdagen, vaderdag, moederdag, zomer- en wintertijd, verjaardagen en persoonlijke items, die gebruikers zelf ook in kunnen voeren en die dan alleen zichtbaar zijn als zij zijn ingelogd.
    • Onder de kalender zijn de items van vandaag en morgen te zien in een lijstje.
    • De content zelf.
    • Paginering bij de overzichten
    • Wijzigingen in de content worden direct getoond.
    • RSS feeds
    • De weekfoto.
    • Zoeken op de website.
    • De grafische weergave van de bezoekers per land.

  9. Gebruikte programmeertalen, frameworks en PHP extensions
    • PHP
    • Server-side scripttaal, om dynamische webpagina's te genereren. De laag tussen de database en de webpagina die er voor zorgt dat variabelen en array's gevuld worden met de goede gegevens om ze daarna te tonen op de webpagina.
    • MYSQL
    • Relationeel database-managementsysteem. De taal om gegevens op te vragen uit de database (query's).
    • HTML
    • Creéren en opmaken van webpagina's
    • SMARTY
    • Template engine voor PHP. Zorgt voor extra gemak en functionaliteit voor het verwerken van de en het gebruik van variabelen en array's die vanuit de PHP laag in de template binnenkomen.
    • CSS
    • Style sheets, vormgeving van webpagina's
    • JAVASCRIPT
    • Client-side scripttaal
    • EXTJS
    • Javascript framework
    • SWF-charts
    • Grafieken maken van arrays

  10. Overig
    • Het 'nieuwe content' scherm is gemaakt met ExtJS, waardoor de teksten met speciale opmaak geschreven kunnen worden.(denk aan lettertypes, kleuren, hyperlinks, lijsten e.d.)
    • Op elke privé-pagina wordt gecontroleerd of je ingelogd bent om hacken tegen te gaan.
    • Het bovenste gedeelte van de webpagina inclusief het horizontale menu wordt op elke pagina hergebruikt.
    • Foto\'s worden tijdens het uploaden geresized om de bestanden klein te houden en om de foto's scherp weer te kunnen geven.



    TODO: ExtJS uploadform met mogelijkheid om meerdere foto's ineens te uploaden.
    TODO: Uploadformulier maken zodat gebruikers zelf foto's kunnen uploaden.(Fotoalbums constructie zal dan ook veranderd moeten worden.)
    TODO: formulier maken waarmee de gebruiker zelf gebruikersnaam en wachtwoord kan kiezen.
    TODO: op de linuxpagina een link maken naar het 'nieuw content' scherm.
    TODO: Op favlinks.php en favwebsites.php de content editable maken.
    TODO: PHPexcel en fpdf integreren.