Update taalbestand wordpress

Nu heb ik laatst met succes een update doorgevoerd voor WordPress, helaas worden er geen taalbestanden meegeleverd met dit pakket. Die moeten handmatig toegevoegd worden waardoor je de kans loopt om ze te vergeten. Ik heb dat vandaag maar even rechtgezet.

Aangezien het slechts om 1 bestand gaat heb ik geen diff gedraaid, deze kan ik simpelweg vervangen.

Arkon:~/tecumseh.homeip.net/wp-includes/languages$ mv nl_NL.mo nl_NL.mo.bak
Arkon:~/tecumseh.homeip.net/wp-includes/languages$ wget http://svn.automattic.com/wordpress-i18n/nl/branches/2.5/nl_NL.mo

Nu heb ik ook eindelijk het dashboard van wordpress in het nederlands en niet het halve engels/nederlands wat ik vlak na de upgrade voorgeschoteld kreeg.

Nog even het verwijderen van de oude versie, de nieuwe werkt per slot van rekening:

Arkon:~/tecumseh.homeip.net/wp-includes/languages$ rm nl_NL.mo.bak

Sitemap

Een blog is leuk, maar als er maar weinig mensen langskomen om het te lezen dan is het niet meer dan een dagboek wat je eigenlijk ook offline bij kunt houden. Het is dus handig als je gevonden kunt worden met de zoekmachines. Hiervoor heb ik eigenlijk al een tijd geleden iets mee willen doen en vandaag is het er dan van gekomen. Ik kwam namelijk een plugin tegen die dit automatisch al regelt. Het gaat om de Google Sitemap Generator, hiermee wordt de sitemap.xml aangemaakt en de zoekmachines worden van een update op de hoogte gesteld.

Het installeren is vrij simpel, pak het gedownloade zip bestand uit in de plugins directory en maak een 2-tal lege bestanden aan in de root van je site:

Arkon:~/tecumseh.homeip.net$ touch sitemap.xml
Arkon:~/tecumseh.homeip.net$ touch sitemap.xml.gz
Arkon:~/tecumseh.homeip.net$ chmod 666 sitemap.xml sitemap.xml.gz
Arkon:~/tecumseh.homeip.net$ cd ../archives
Arkon:~/archives$ wget http://downloads.wordpress.org/plugin/google-sitemap-generator.3.0.3.3.zip
Arkon:~/archives$ unzip google-sitemap-generator.3.0.3.3.zip
Arkon:~/archives$ mv google-sitemap-generator ../tecumseh.homeip.net/wp-content/plugins/

Hierna kun je in het WordPress control panel de plugin activeren. De 1e keer zal de sitemap handmatig bijgewerkt moeten worden. Daarna zal bij elke post een update gestart worden die in de achtergrond draait.

Voordat ik dit post is dit de laatste update volgens het controlpanel:

Your sitemap was last built on 21 May 2008 5:52 pm

Een minuut na het posten kom ik deze tijd tegen:

Your sitemap was last built on 21 May 2008 7:51 pm.

Het automagische gedeelte klopt dus inderdaad.

WordPress updaten (2)

Nu we de testomgeving klaar hebben staan kan er begonnen worden met het update proces. Uiteraard doen we dat niet op de manier die WordPress zelf voor ogen heeft. Simpelweg alles overschrijven inclusief de aanpassingen die je eventueel gedaan hebt is niet helemaal de juiste manier.

Als eerste halen we de laatste versie op en hernoemen die. Vervolgens pakken we de originele versie en de laatste versie uit in de archives directory:

Arkon:~/archives$ wget http://wordpress.org/latest.tar.gz
Arkon:~/archives$ mv latest.tar.gz wordpress_2.5.1.tar.gz
Arkon:~/archives$ tar -xzf wordpress_2.3.3.tar.gz
Arkon:~/archives$ mv wordpress wordpress_233
Arkon:~/archives$ tar -xzf wordpress_2.5.1.tar.gz
Arkon:~/archives$ mv wordpress wordpress_251

Vervolgens gaan we met diff een patchbestand aanmaken:

Arkon:~/archives$ diff -crN wordpress_233/ wordpress_251/ > wp233-251.patch

Met dit patchbestand kan ik vervolgens de testinstallatie van wordpress gaan updaten:

Arkon:~/test.homeip.net$ patch -cl -d ./ -p1 < /home/tecumseh/archives/wp233-251.patch

Ik kom meteen al een foutmelding tegen:

can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -crN wordpress_233/license.txt wordpress_251/license.txt
|*** wordpress_233/license.txt Tue Apr 1 16:12:34 2003
|--- wordpress_251/license.txt Sun Mar 2 22:34:25 2008
--------------------------
File to patch:

Nu staat me inderdaad bij dat ik de license.txt verwijdert heb, en bestanden die niet bestaan zijn wat lastig te updaten. Na een enter verschijnt de vraag of ik deze patch wil overslaan. Zo volgen er nog een paar want de readme en de installatiedirectory zijn niet meer aanwezig.

Na het patchen bekijken we de boel eens in de browser. Na het inloggen krijg ik de melding dat de database een opfrissing nodig heeft, ik geef hierop akkoord waarna de database aangepast wordt. Hiermee is de update ook helemaal klaar.

Na wat rondkijken in de testomgeving kan ik in elk geval concluderen dat ik al mijn posts nog heb en dat in elk geval het meest voor de hand liggende werkt. Ik kan dit dus ook doorvoeren op de live omgeving. De backup houd ik nog even achter de hand voor het geval dit helemaal misloopt.

WordPress updaten

Ik loop al even achter met het updaten van WordPress. Dit is mede omdat het gaat om een major versie (2.3.3 naar 2.5.0, nu zelfs 2.5.1). Dit wil ik dus eerst wel even testen voordat ik dit live ga toepassen.

Dus eerst maar eens een extra domeinnaam aangevraagd bij DynDNS en de juiste directory en symlinks aanmaken zodat lighttpd weet waar die de website vandaan halen moet.

Nu het kopieren van alle bestanden die ik onder de root heb staan.

Arkon:/var/www/homeip.net/tecumseh# cp -R * ../test

Vervolgens het maken van een sql dump:

Arkon:~# mysqldump --databases wordpress -p > wordpress.sql

In deze sql file moet ik nog alle verwijzingen naar de wordpress database veranderen in de databasenaam die ik voor deze test gereserveerd heb. Ik heb dit met nano gedaan hoewel ik weet dat er snellere manieren voor zijn, die zijn voor de oningewijden echter wat lastiger.

Vervolgens in phpmyadmin de database en gebruiker aanmaken en het aangemaakte sql bestand inladen.

Arkon:~# mysql -p test < wordpress.sql

Nog even het configfile van wordpress aanpassen naar de nieuwe database en gebruiker.

Als het goed is dan kan ik dus nu via de dyndns alias naar de backupsite browsen. Helaas wordt ik direct naar deze site teruggestuurd. Blijkbaar regelt wordpress dit en zal ik dus in de database een aantal verwijzingen naar de url moeten aanpassen. Na deze aanpassingen kan ik eindelijk van start met de update.

Nieuw theme wp-multiflex-3

Na een redelijke zoektocht heb ik eindelijk een thema gevonden wat me wel past. Uiteraard zal ik na verloop van tijd het thema wel bijschaven maar voor nu is het al heel wat.

Ik heb het thema gevonden op WordPress Themes.nl en had gedacht dat ik er dan helemaal klaar mee zou zijn. Meteen in het nederlands dus. Helaas bleek dit een illusie… Een aantal pagina’s konden namelijk niet eens meer geladen worden waardoor de enkele topics inclusief reacties niet meer te zien waren.

Vervolgens heb ik het origineel op Webgazette.co.uk opgehaald om vervolgens de verschillen eens na te pluizen.

Arkon:~$ diff -crN wp-multiflex-3-nl/ wp-multiflex-3/ > wp-multiflex-3-nl.patch

Deze verschillen heb ik vervolgens handmatig nageplozen en elk bestand met de hand aangepast. Hierdoor kwam ik erachter dat de vertalers van WordPress Themes.nl het niet zo heel nauw genomen hebben met de vertaling. Het is namelijk niet handig om de commentaren in de bronbestanden te vertalen. Het is al helemaal niet goed om ook de variabelen te vertalen en dit maar gedeeltelijk te doen. Vandaar ook het probleem met het laden van de pagina’s.

Ook hebben ze botweg het bestand footer.php aangepast door de oorspronkelijke maker van het thema weg te laten. Niet heel netjes, dit heb ik dus hersteld. Omdat ik eigenlijk het hele thema opnieuw vertaald en gecontroleerd heb is de referentie naar WordPress Themes.nl volledig uit de footer verdwenen. Als ze zelf geen credits willen afgeven dan zullen ze het ook niet krijgen ook.

Als laatste was er nog een probleem met de weergave van de tijd. Hiervoor hebben ze de functie

Als opschoning nog even een patch andersom maken zodat ik bij een eventuele nieuwe installatie dit process niet nogmaals hoef door te gaan:

Arkon:~$ diff -crN wp-multiflex-3/ wp-multiflex-3-nl/ > wp-multiflex-3_v1-3-NL.patch

Deze patch is te downloaden: wp-multiflex-3_v1-3-NL.patch

Eerdaags nog even de oorspronkelijke auteur van dit thema inlichten over mijn aanpassing.

WordPress weergave code (2)

Ik heb eindelijk de codesegmenten op orde. Door het volgende stukje aan de pre tag te hangen in het css bestand wordt er bij het gebruik van de <pre></pre> tags netjes een blok omheen gezet waarbij er in de meeste browsers een scrollbar verschijnt als de regels te lang zijn. Bij browsers die de overflow: auto niet snappen wordt vervolgens de scrollbar weggelaten maar loopt de tekst niet door.

pre {
display: block;
overflow: auto;
overflow-x: hidden;
}

Problemen Arkon (2)

Ik heb ondertussen van mijn systeem ook een mailtje ontvangen:

puredatabase.ftptabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_commentstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_linkstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_optionstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_postmeta
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_poststabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_term_relationshiptabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_term_taxonomytabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_termstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_usermetatabel
warning  : 1 client is using or hasn't closed the table properly

Dat verklaart meteen waarom ik op dit blog geen wijzigingen kon doorvoeren.

*edit* Tabelstructuur even aangepast, niet iedereen hoeft te weten hoe mijn database en de daarin opgeslagen tabellen genoemd worden.

WordPress weergave code

Ik ben al een tijdje aan het zoeken hoe ik nu de <code> segmenten weer kan geven zoals ik wil hebben. Een apart venster met een ander lettertype en een scrolbar voor de langere regels.

Het omvormen van de html code die ik nu in de posts heb staan wil ook nog eens niet echt vlotten. Er staan karakters tussen waardoor het <code> segment voortijdig afgebroken wordt. Ook hier zoek in dus nog een oplossing voor. Totdat dit opgelost is zul je dat helaas in mijn vorige post kunnen zien.

Wat daar ook niet goed gaat is het uitvullen van de regel in een code segment. Nu ben ik zowiezo al niet van het uitvullen van teksten. Dat kun je prima doen als de tussenruimte binnen een bepaalde marge blijft maar als die te groot wordt dan moet je volgens mij gewoon de regel maar normaal weergeven.

WordPress installeren

Nu we het leeuwendeel van de server aan het draaien hebben is het nu tijd om de plek in te richten waar deze blog straks verder gaat. Het installeren van een blogprogramma dus. Hiervoor heb ik gekozen voor WordPress. In het verleden ben ik bezig geweest met verschillende CMS’en maar dat is toch veel te uitgebreid voor wat ik er mee doe.

Voor het installeren van wordpress volg ik hoofdzakelijk de uitleg van Henk van de Kamer (http://www.hetlab.tk/artikelen/wordpress-installeren)

Als eerste het binnenhalen van het geheel:

Arkon:~$ cd http://tecumseh.homeip.net/
Arkon:~/tecumseh.homeip.net$ cd ..
Arkon:~$ mkdir archives
Arkon:~$ cd archives/
Arkon:~/archives$ wget http://wordpress.org/latest.tar.gz
--23:13:05--  http://wordpress.org/latest.tar.gz
=> `latest.tar.gz'
Resolving wordpress.org... 72.233.56.139, 72.233.56.138
Connecting to wordpress.org|72.233.56.139|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]

[           <=>                       ] 884,898      371.13K/s

23:13:09 (369.67 KB/s) - `latest.tar.gz' saved [884898]

Vervolgens het uitpakken van dit archief en het aanpassen van het configbestand. Uiteraard moet je hiervoor eerst in mysql een nieuwe database en een useraccount aangemaakt hebben.

Arkon:~/archives$ mv latest.tar.gz wordpress_2.3.3.tar.gz
Arkon:~/archives$ tar -xzf wordpress_2.3.3.tar.gz
Arkon:~/archives$ mv wordpress ../tecumseh.homeip.net
Arkon:~/tecumseh.homeip.net$ cd wordpress/
Arkon:~/tecumseh.homeip.net/wordpress$ mv wp-config-sample.php wp-config.php
Arkon:~/tecumseh.homeip.net/wordpress$ nano wp-config.php

Hierna verplaatsen we het geheel naar de root van de website en verwijderen we de directory wordpress:

Arkon:~/tecumseh.homeip.net/wordpress$ mv * ..
Arkon:~/tecumseh.homeip.net$ rmdir wordpress/

Het is wel handig om de site in de juiste taal te zetten. Dus even het nederlandse taalbestand binnenhalen en installeren:

Arkon:~/tecumseh.homeip.net$ cd wp-includes/
Arkon:~/tecumseh.homeip.net/wp-includes$ mkdir languages
Arkon:~/tecumseh.homeip.net/wp-includes$ cd languages/
Arkon:~/tecumseh.homeip.net/wp-includes/languages$ wget http://nl.wordpress.net/download/nl_NL.mo
--23:37:20--  http://nl.wordpress.net/download/nl_NL.mo
=> `nl_NL.mo'
Resolving nl.wordpress.net... 72.36.221.98
Connecting to nl.wordpress.net|72.36.221.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 173,704 (170K) [text/plain]100%[====================================>] 173,704      210.98K/s
23:37:21 (210.55 KB/s) - `nl_NL.mo' saved [173704/173704]

Arkon:~/tecumseh.homeip.net/wp-includes/languages$ nano ../../wp-config.php

Hierin voeg je de nederlandse taal toe bij ‘WPLANG’:

define ('WPLANG', 'nl_NL');

Nog even een paar overbodige bestanden verwijderen en we kunnen de blog in gebruik nemen:

Arkon:~/tecumseh.homeip.net$ rm readme.html license.txt
Arkon:~/tecumseh.homeip.net$ rm wp-admin/install*

Als eerste straks dus maar even wat instellingen goed zetten en de boel overhuizen.