Wikipedia:Wikiproject/Erfgoed/Nederlandse Erfgoed Inventarisatie/Gemeentelijke monumenten/WLM-table-gen/old

Uit Wikipedia, de vrije encyclopedie


WLM-table-gen is een in PHP geschreven script dat assisteert in het genereren van lijsten van gemeentelijke monumenten. Naast het omzetten van een Excel-sheet in een WikiTabel, haalt het geocoördinaten op uit Google Maps of vertaalt het Rijksdriehoekscoördinaten.

Software te installeren[bewerken | brontekst bewerken]

Stap 0 - Basis opzetten[bewerken | brontekst bewerken]

Deze stap zou je als het goed is alleen de eerste keer uit hoeven voeren.

  • Installeer bovenstaande software, download het zip-bestand met het script.
  • Start EasyPHP, klik met de rechtermuisknop op het icoon rechtsonder in beeld en ga naar "Explore"
  • Pak het zip-bestand uit in de map die verschijnt.
  • Dubbelklik op het logo om te zien of zowel Appache als MySQL een groen stoplicht hebben
  • Start SQLyog
  • Maak een nieuwe verbinding aan door op "New..." te klikken, als het goed is zijn de standaard instellingen al goed, namelijk:
MySQL Host Address localhost
Username root
Password
Port 3306

Ja, er hoeft dus géén wachtwoord ingesteld te worden.

  • Druk op "Connect"
  • Ga naar Database > Create Database
  • Voer een naam in voor de database die enkel uit kleine letters bestaat. Ik heb mijn database test genoemd.
  • Open het bestand basic_data.sql (in de map WLM-table-gen-master; via File | Open )
  • Als je jouw database iets anders dan test hebt genoemd, moet je de eerste regel wijzigen.
  • Klik op de blauwe "fast-forward"-knop of Shift+F9
  • Open het bestand 1-set_up_variables.php in Notepad++ en verander de naam van de database op de laatste regel indien nodig.
    • (het kan zijn dat het bestand op read-only staat, dan kun je het bestand niet bewerken. In dat geval, klik op "File | clear read-only flag")

Stap 1 - Excel sheet voorbereiden[bewerken | brontekst bewerken]

  • Soms is het mogelijk redelijk snel een PDF in een Excel sheet te veranderen via PDFtoExcelOnline.com
  • De eerste regel van het eerste tabblad wordt uitgelezen als kolom-hoofd, verwijder dus eventuele regels boven de tabel.
  • Alleen het eerste tabblad wordt uitgelezen
  • Elk monument heeft 1 rij met al zijn gegevens
  • Omdat speciale karakters niet worden uitgelezen, moeten deze tijdelijk vervangen worden. Vervanging wordt gedaan door op Ctrl+F te drukken en naar het tabblad Vervangen te gaan.
- #44#
/ #99#
é #22#
ë #11#
ö #23#
â #37#
; #92#
  • Sla het bestand op als XLS bestand, NIET XLSX
  • Als je meer dan 250 rijen hebt, splits de lijst dan op en sla deze op in 2 bestanden. Volg de volgende stap 2x uit met dezelfde tabelnaam.

Stap 2 - Excel sheet naar MySQL database overzetten[bewerken | brontekst bewerken]

Hoe naar Local Web te gaan in EasyPHP
  • Ga naar xls2MySQL.com en upload het bij stap 1 gemaakte bestand.
  • Als het goed is zie je nou de koppen uit de eerste regel van je bestand terug.
  • Kies een tabelnaam in de plaats voor mytable
    • Gebruik enkel kleine letters
    • Doorgaans is het handig de naam van de gemeente te gebruiken
    • Houd het onder de ~9 karakters, ik heb gemerkt dat hij het soms niet goed doet als je een redelijk lange naam kiest
  • Klik op "Create the PHP code!"
  • Open het bestand 0-xls2mysql.php in Notepad++ en plak hier de door de site gegeneerde code.
  • Klik met de rechtermuisknop op het EasyPHP logo rechtsonder en ga naar Local Web
  • Open hier weer 0-xls2mysql.php en vul in
Database host localhost
Database name test*
Database username root
Database password

*Of jouw database naam.

  • Negeer de eventuale "Notice: Undefined index: submit" en klik op Create
  • Als het goed is krijg je nu het aantal regels dat is aangemaakt te zien.

Stap 3 - Variabelen instellen[bewerken | brontekst bewerken]

  • Open 1-set_up_variables.php in Notepad++
  • Stel de variabelen in:
    • $table is de tabelnaam die je op xls2MySQL.com hebt ingevoerd in de plaats van mytable.
    • $gemeente is de titel van het Wikipedia artikel over de gemeente
    • $GLOBALS['provincie'] is de provincie waarin de gemeente zich bevindt
    • $printOrder is de volgorde waarin de tabel wordt afgedrukt, vul bijvoorbeeld in:
      • "ORDER BY plaats"; om de tabel op de kolom die de naam plaats heeft te sorteren.
      • "ORDER BY plaats, adres"; om de tabel op de kolom die de naam plaats heeft, vervolgens op de kolom die de naam adres heeft te sorteren.
      • ""; om de volgorde van het excel sheet aan te houden.
    • $column['plaats'] is de kolomnaam waar de plaatsnaam in staat, of ""; als deze altijd hetzelfde is als de naam van de gemeente.
  • De volgende serie variabelen matchen de kolomnamen van de WikiTabel met de kolomnamen uit de Excel-sheet.
    • Als deze één op één kan worden overgenomen, voer dan de kolomnaam uit de Excel-sheet in:
      • $column['object'] = "objectomschrijving";
    • Als deze niet voorkomt in de Excel sheet, voer dan ""; in:
      • $column['architect'] = "";
    • Als meerdere coloms gecombineerd moeten worden, kan dit door de kolomnamen in een array te zetten op de volgende manier:
      • $column['datum'] =Array("jaar", Array("-","maand"), Array("-", "dag"));
        Resultaat: 2009-04-27
      • $column['adres'] = Array("straatnaam", Array(" ","huisnr"), "toevoeging");
        Resultaat: Dorpsstraat 42b
      • $column['object'] = Array("huidige_functie", Array(" ''", "objectnaam", "''"));
        Resultaat: Boerderij Weltevreden
  • Rijksdriehoekgegevens worden maar zelden bijgehouden door gemeenten. Is dit wel het geval dan moet $rijksdriehoek op true worden gezet en de kolomnamen voor de X en de Y variabele worden ingevuld. Worden ze niet geleverd, zet dan $rijksdriehoek op false.

Stap 4 - Database opschonen[bewerken | brontekst bewerken]

  • Ga naar Local Web in EasyPHP
  • Open 2-clean_database.php
  • Als het goed is krijg je het aantal gemuteerde rijen te zien.

Stap 5 - Lijst genereren[bewerken | brontekst bewerken]

  • Ga naar Local Web in EasyPHP
  • Open 3-build_table.php
  • Als het goed is zie je nu de lijst verschijnen.
  • Bij het eerste keer laden kan het zijn dat de pagina nog een keer geladen moet worden, omdat Google Maps overbevraagd is. Dit is omdat dan er op de achtergrond een aantal queries worden uitgevoerd die coördinaten opvraagt die uitgesloten moeten worden.
  • Selecteer alles (Ctrl + A) en plak het in een nieuw artikel.
  • Klik op ">next 10>" knop totdat je zo de hele lijst doorlopen hebt.
  • Voeg de bronvermelding toe aan het Sjabloon:Citeer web en controleer het resultaat.