Gratis ~70 m² beton klinkers

Ik heb ongeveer 70 m² beton klinkers liggen, verschillende formaten en kleuren, die gratis afgehaald kunnen worden.

Bekijk de advertentie op Marktplaats.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik de klinkers kwijt.

Gratis ~400 tegels 30 × 30 cm

Ik heb ongeveer 400 tegels van 30 × 30 cm liggen die gratis afgehaald kunnen worden.

Bekijk de advertentie op Marktplaats.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik de tegels kwijt.

Gratis ~125 grindtegels 60 × 40 cm

Ik heb ongeveer 125 grindtegels 60 × 40 cm liggen die gratis afgehaald kunnen worden.

Bekijk de advertentie op Marktplaats.

Eventueel zijn deze 60 × 40 cm grindtegels te combineren met de 20 × 20 cm siertegels.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik de tegels kwijt.

Gratis ~150 siertegels 20 × 20 cm

Ik heb ongeveer 150 siertegels van 20 × 20 cm liggen die gratis afgehaald kunnen worden. Ze zijn voornamelijk rood, maar een deel is blauw zwart.

Bekijk de advertentie op Marktplaats.

Eventueel zijn deze 20 × 20 cm te combineren met grindtegels van 60 × 40 cm.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik de siertegels kwijt.

WordPress iDEAL plugin

Het is alweer bijna een jaar geleden dat we bij Pronamic begonnen met de ontwikkeling van de WordPress iDEAL plugin. Inmiddels begint de plugin steeds meer vorm te krijgen en ontdekken steeds meer WordPress gebruikers de kracht van deze plugin. De plugin is inmiddels meer dan 3.000+ keer gedownload:

WordPress iDEAL plugin wordt gemiddeld 40 keer per dag gedownload

Doordat de plugin steeds meer wordt gebruikt wordt de plugin ook steeds beter. Bijna wekelijks verbeteren en optimaliseren we functionaliteiten. Ook zorgen we er voor dat de WordPress iDEAL plugin steeds meer plugins uitbreid met de iDEAL betaalmethode. Zo zijn we beginnen met Gravity Forms en is deze lijst inmiddels al flink gegroeid:

One WordPress iDEAL plugin to rule them allHet idee hiervan is dat we één goede iDEAL plugin voor WordPress ontwikkelen: “One WordPress iDEAL plugin to rule them all”. Met name voor WordPress ontwikkelaars is het erg prettig dat ze gebruik kunnen maken van één stabiele iDEAL plugin. Daarnaast is het denk ik prettig dat de WordPress iDEAL plugin door een betrouwbare Nederlandse partij (Pronamic) is ontwikkeld en wordt onderhouden.

Omdat de Pronamic iDEAL plugin ontwikkelingen flink doorgaan en de plugin steeds beter en stabieler wordt hebben we de WordPress iDEAL website gelanceerd. Op deze website zullen we proberen om informatie over problemen, updates en andere iDEAL gerelateerde informatie te plaatsen. In het eerste bericht “Pronamic iDEAL versie beta-0.9.4” is in het kort te lezen wat er zoal is verbeterd in deze versie.

WordPress oude URL’s doorverwijzen naar nieuwe URL’s

In het bericht “WordPress oude URL’s vervangen met nieuwe URL’s” beschreef ik dat het slim is om bij het overzetten van berichten naar WordPress het handig is om de oude / originele URL ook bij het nieuwe WordPress bericht op te slaan in een extra veld. Aan de hand daarvan kun je na het overzetten eenvoudig interne links bijwerken. Daarnaast kun je ook eenvoudig een overzicht creëren van alle oude en nieuwe URL’s zodat je oude URL’s kunt doorverwijzen naar de nieuwe URL’s met een HTTP 301 redirect.

Voor het doorverwijzen van oude URL’s naar nieuwe URL’s binnen WordPress kan de Redirection plugin gebruikt worden. Als je met deze plugin werkt en bij elk WordPress bericht ook de oude URL hebt opgeslagen in een extra (meta) veld kun je met een eenvoudige database query de redirects toevoegen aan de Redirection plugin. Hieronder zie je een query waarmee dit gerealiseerd kan worden:

INSERT
	INTO wp_redirection_items (
		url ,
		group_id ,
		action_type ,
		action_code ,
		action_data ,
		match_type
	)
	SELECT
		REPLACE(meta.meta_value, 'http://www.domeinnaam.nl', '') AS url ,
		3 AS group_id ,
		'url' AS action_type ,
		'301' AS action_code ,
		post.guid AS action_data ,
		'url' AS match_type
	FROM
		wp_posts AS post
			RIGHT JOIN
		wp_postmeta AS meta
			ON
				post.ID = meta.post_id
					AND
				meta.meta_key = 'legacy_url'
			WHERE
				post.guid != '';

Let wel op dat je de meta key waarin de oude URL staat opgeslagen wijzigt naar je eigen naamgeving. Uiteraard zal ook de domeinnaam in bovenstaande query aangepast moeten worden naar je eigen domeinnaam. Ik plaats de items overigens in een specifieke daarvoor aangemaakt Redirection group, hiervoor geef ik ‘group_id’ de waarde ’3′.

Mocht je overigens hulp nodig hebben met het overzetten van berichten, pagina’s of andere content naar WordPress dan kun je contact opnemen met Pronamic. We hebben erg veel ervaring met het overzetten van content naar WordPress. We hebben al veel grotere maatwerk websites succesvol omgezet naar WordPress.

Gratis 600+ tegels 30 × 30 cm

Gratis 600+ tegels 30 × 30 cm af te halen.

Bekijk de advertentie op Marktplaats.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik waarschijnlijk de meeste tegels kwijt.

Gratis bigbag wit grind

Gratis bigbag met wit/grijs grind af te halen, grind is vervuild met modder.

Bekijk de advertentie op Marktplaats.

Update: Inmiddels hebben meerdere mensen op de advertentie gereageerd en ben ik grind kwijt.

WordPress oude URL’s vervangen met nieuwe URL’s

Bij Pronamic ontwikkel ik WordPress websites en zetten we regelmatige bestaande websites om naar WordPress. Hierbij komt het vaak voor dat er bestaande berichten omgezet moeten worden naar WordPress. Met allerlei handige tools zoals bijvoorbeeld OutWit en de vele WordPress importeer plugins gaat dit vaak relatief eenvoudig.

Bij het importeren van berichten van een website naar een nieuwe WordPress website is het vaak erg handig om de bron URL op te slaan bij het nieuwe WordPress bericht. De extra velden functionaliteit bij WordPress berichten zijn hier zeer geschikt voor. Zodra de content is omgezet is het vaak noodzakelijk om interne koppeling bij te werken. Daarnaast is het vaak gewenst om oude URL’s netjes om te leiden (HTTP 303 redirect) naar de nieuwe URL’s.

Doordat de oude en nieuwe URL’s netjes zijn weggeschreven in de WordPress database kan dit met een aantal slimme MySQL queries gerealiseerd worden. De volgende query zal een lijst met queries genereren die de inhoud van alle WordPress berichten en pagina’s doorzoekt en oude URL’s vervangt met de nieuwe WordPress URL’s:

SELECT
	CONCAT(
		'UPDATE wp_posts SET post_content = REPLACE(post_content, ' ,
		QUOTE(meta.meta_value) , ', ' ,
		QUOTE(post.guid) , ');'
	)
FROM
	wp_posts AS post
		RIGHT JOIN
	wp_postmeta AS meta
		ON
			post.ID = meta.post_id
				AND
			meta.meta_key = 'legacy_url'
WHERE
	post.guid != '';

De output van bovenstaande query zijn nieuwe queries welke uiteraard uitgevoerd moeten worden. Het komt soms voor dat de interne links relatief zijn aan de berichten zelf. Dit maakt het vervangen van de oude URL’s in veel gevallen veel complexer. Als de URL’s relatief zijn aan de domeinnaam dan is waarschijnlijk interessant om eerst de volgende query uit te voeren:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'href="/', 'href="http://www.domeinnaam.nl/');

In andere gevallen zullen er slimme queries uitgevoerd moeten worden, zoals bijvoorbeeld:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'href="../../../nieuws/', 'href="http://www.domeinnaam.nl/nieuws/');

Daarnaast kan met de volgende query een overzicht gemaakt worden van alle oude en nieuwe URL’s. Dit overzicht kan vervolgens geïmporteerd worden naar de Redirection plugin waarmee eenvoudig omleidingen zijn te beheren.

SELECT
	REPLACE(meta.meta_value, 'http://www.domeinnaam.nl', '') AS source ,
	post.guid AS target ,
	0 as hits
FROM
	wp_posts AS post
		RIGHT JOIN
	wp_postmeta AS meta
		ON
			post.ID = meta.post_id
				AND
			meta.meta_key = 'legacy_url'
WHERE
	post.guid != '';

WordPress menu met geluid

Onlangs kreeg ik de vraag hoe je een geluidsfragment kunt afspelen zodra je over een WordPress menu item heen gaat met je muis. Op internet is veel informatie te vinden over hoe je een geluidsfragment kunt afspelen, maar hoe integreer je deze netjes in een WordPress thema? In dit bericht beschrijf ik kort een mogelijk oplossing.

Allereerst is het handig om een map ‘audio’ aan te maken binnen je WordPress thema map. Binnen deze map kun je alle gerelateerde audio bestanden plaatsen die je wilt afspelen zodra men met de muis over een menu item gaat. Vervolgens voegen we aan het WordPress functions.php bestand een aantal functies toe:

/**
 * Menu audio
 *
 * @return array
 */
function prefix_menu_audio() {
	$dir = get_stylesheet_directory_uri();

	return array(
		'beep' => array($dir . '/audio/beep.mp3', $dir . '/audio/beep.ogg') ,
		'end' => array($dir . '/audio/end.mp3', $dir . '/audio/end.ogg')
	);
}

In bovenstaand code fragment worden 2 audio fragmenten gedefinieerd in 2 verschillende formaten, namelijk MP3 en OGG. Om deze audio fragmenten te kunnen afspelen moeten ze worden toegevoegd aan de HTML van de website. Dit kunnen we realiseren met behulp van de volgende functie:

/**
 * Menu beep HTML
 */
function prefix_menu_audio_html() {
	$html = '';

	$audio = prefix_menu_audio();

	foreach($audio as $id => $sources) {
		$html .= sprintf('<audio id="%s">', esc_attr($id));
		foreach($sources as $source) {
			$html .= sprintf('<source src="%s" />', esc_attr($source));
		}
		$html .= '</audio>';
	}

	echo $html;
}

add_action('wp_footer', 'prefix_menu_audio_html');

Met behulp van bovenstaande functie wordt er voor gezorgd dat de gedefinieerde audio fragmenten in een nette HTML5 formaat in de footer van de WordPress website worden geplaatst. Vervolgens kunnen we met behulp van een aantal regels code JavaScript / jQuery deze audio fragmenten afspelen. Om dit te realiseren maken we maken een JavaScript bestand menu-audio.js aan in de WordPress thema map.

jQuery(document).ready(function($) {
	$(".menu a").mouseenter(function() {
		$("#beep").trigger("play");
	});
});

Dit bestand kan met behulp van de volgende functie worden toegevoegd aan de WordPress website zodat deze wordt uitgevoerd:

/**
 * Menu beeps enqueue scripts
 */
function prefix_enqueue_scripts_menu_audio() {
	wp_enqueue_script(
		'menu-audio' ,
		get_stylesheet_directory_uri() . '/menu-audio.js' ,
		array('jquery')
	);
}

add_action('wp_enqueue_scripts', 'prefix_enqueue_scripts_menu_audio');

In dit voorbeeld wordt slecht 1 audio fragment afgespeeld voor alle menu items. Met een beetje WordPress en jQuery kennis is dit natuurlijk eenvoudig uit te breiden.

Update: Voor het gemak heb ik een kant en klare WordPress menu audio oplossing klaar gezet, welke uitgepakt kan worden in je thema map en geactiveerd kan worden door include 'menu-audio/menu-audio.php'; in je thema’s functions.php bestand te plaatsen.