BBCode

BBCode staat voor Bulletin Board Code en wordt gebruikt om opmaak toe te voegen aan berichten.

De zogenaamde tags worden tussen rechte haken geplaatst: [ en ].

Voor de verschillende iconen maak ik gebruik van FAMFAMFAM - Silk Icons :

BBCode

Het moeilijkste moet nog komen, want de geselecteerde tekst opvragen in JavaScript is per browser verschillend.

Met dank aan Gigapad voor de oplossing, de jQuery bibliotheek is hierbij echter wel nodig.

Het BBCode menu in HTML :

De afhandeling van de buttons in JavaScript :

$(document).ready(function() {
    $("#bold").click(function(){$('#text').insertRoundCaret('b')});
    $("#italic").click(function(){$('#text').insertRoundCaret('i')});
    $("#underline").click(function(){$('#text').insertRoundCaret('u')});
    $("#strikethrough").click(function(){$('#text').insertRoundCaret('s')});
    $("#blockquote").click(function(){$('#text').insertRoundCaret('blockquote')});
});

Tip : Kijk ook eens op markItUp! voor een kant-en-klare BBCode editor.

De BBCode tags moeten nu nog omgezet worden naar HTML tags met behulp van een PHP functie bbcode2html en vice versa html2bbcode.

De HTML tags vetgedrukt 'b', schuingedrukt 'i', onderstreept 'u', en doorgestreept 's' hebben de status deprecated in de W3C standaard.

Het wordt aanbevolen CSS te gebruiken voor tekst opmaak.

Echter maak ik gebruik van HTML Purifier welke ongewenste HTML tags filtert.

Het valideren heb ik zo eenvoudig mogelijk gehouden :

$object_htmlpurifier_config = HTMLPurifier_Config::createDefault(); 

$object_htmlpurifier_config->set('HTML.Allowed','b,i,u,s,blockquote');

$object_htmlpurifier = new HTMLPurifier($object_htmlpurifier_config);
David van der Tuijn
"Mijn naam is David van der Tuijn, als senior php developer bij Floro Webdevelopment B.V. werk ik samen met een projectleider, back-end developers, front-end developers en designers, op basis van een functioneel- (FO) en technisch ontwerp (TO), bouw ik webapplicaties die voldoen aan de nieuwste ontwikkelingen op internet gebied. Ik werk zelfstandig, weet hoe een architectuur opgezet moet worden en kan deze uitdragen in een multidisciplinair team. binnen een project adviseer ik over de juiste methoden en technieken. Ik ontwikkel en bewaak de kwaliteit van de development werkzaamheden in projecten en kan projecten binnen een afgegeven planning afronden."