PHP-code en $LayoutHTML gebruiken in het bluetronix CMS
Met een ontwikkelaarsaccount kun je de PHP-code van je CMS-pagina's zelf bewerken. In deze handleiding leer je hoe je PHP-opdrachten uitvoert, HTML-inhoud via $LayoutHTML wijzigt en je eigen functies en de geïntegreerde CMS-functies gebruikt.
Eigen PHP-code in het bluetronix CMS
Met een ontwikkelaarsaccount kun je je eigen PHP-code binnen een CMS-pagina gebruiken. De HTML-code van de pagina en je PHP-code werken samen. Een centrale rol speelt de variabele $LayoutHTML: Deze bevat tijdens het website-renderingproces de HTML-code van de momenteel gegenereerde pagina. Met PHP kun je daarin inhoud zoeken, wijzigen en vervangen.
Voor eigen PHP-code heb je een ontwikkelaarsaccount voor het bluetronix CMS nodig. Als je nog geen ontwikkelaarsaccount hebt, kun je deze apart aanvragen.
PHP-code van een pagina openen
Open op de gewenste pagina PHP Code om de PHP-code van de pagina te bewerken.
Geen aanvullende PHP-tags gebruiken
De PHP-code wordt al door het CMS uitgevoerd als PHP-code. Daarom mag je in de PHP-code-editor geen aanvullende PHP-tags gebruiken. Deze schrijfwijze is daar niet nodig:
<?php print "Hello World"; ?>
Schrijf je PHP-instructie in plaats daarvan eenvoudigweg direct:
print "Hello World";
PHP-uitvoering beëindigen met exit
Voor testdoeleinden kun je de volgende instructies invoeren, opslaan en vervolgens de pagina opnieuw laden:
print "Hello World";
exit();

In dit voorbeeld wordt uitsluitend Hello World weergegeven. Met exit(); beëindig je de PHP-uitvoering op dit punt.
Met exit(); wordt ook het verdere CMS-webpagina-renderingproces beëindigd. Header, eigenlijke pagina-inhoud, footer en volgende verwerkingsstappen worden niet meer uitgevoerd.
PHP-uitvoer binnen de normale pagina
Als je exit(); verwijdert en alleen de volgende instructie gebruikt, loopt het renderingsproces vervolgens normaal door:
print "Hello World";

PHP geeft eerst Hello World weer. Daarna wordt de eigenlijke CMS-pagina verder gegenereerd, inclusief header, pagina-inhoud en footer. Voor wijzigingen direct binnen de HTML-pagina is het echter aan te raden om zoveel mogelijk met $LayoutHTML te werken.
HTML en PHP apart bewerken
In het bluetronix CMS kun je de HTML Code en de PHP Code van een pagina apart beheren. Zo blijft de HTML-structuur in de editor bewerkbaar, terwijl je de programmalogica in het PHP-gedeelte plaatst.
Eigen placeholders in de HTML definiëren
Definieer in de HTML-code een plaatsaanduiding die je PHP-code later moet vervangen. Een eenvoudig voorbeeld is:
__MyText__
Gebruik voor eigen plaatsaanduidingen Engelse namen, ook op Nederlandstalige websites. Zo blijft de naamgeving internationaal begrijpelijk en uniform.
Andere mogelijke benamingen zijn:
__CustomerName__
__ProductPrice__
__CurrentDate__
Placeholders vervangen met $LayoutHTML
Met str_replace() kun je de plaatsaanduiding in de huidige HTML-code zoeken en vervangen door de gewenste inhoud:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
Het CMS zoekt in $LayoutHTML naar __MyText__ en vervangt de plaatsaanduiding door Mijn Tekst.
HTML en placeholders combineren
Je kunt de plaatsaanduiding binnen je normale HTML-structuur gebruiken. Voeg bijvoorbeeld de volgende code in het HTML-gedeelte in:
<h1>__MyText__</h1>
In het PHP-gedeelte voeg je de vervanging toe:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
Tijdens het renderproces ontstaat daaruit:
<h1>Meine Überschrift</h1>
Meerdere placeholders in een pagina-sectie
Hetzelfde principe werkt in uitgebreidere HTML-gebieden. Je kunt bijvoorbeeld de kop en beschrijving afzonderlijk als plaatsaanduiding definiëren:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
In de PHP-code stel je beide inhoud onafhankelijk van elkaar in:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
De uiteindelijke HTML-code bevat dan de ingevoerde teksten in plaats van de twee plaatsaanduidingen:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
HTML-structuur en PHP-logica zoveel mogelijk scheiden
Technisch gezien kun je complete HTML-structuren direct met PHP in $LayoutHTML invoegen:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
Voor grotere inhoud is het echter zinvol om de HTML als bewerkbare structuur in het HTML-gebied te behouden en met plaatsaanduidingen te werken. Voorbeeld van de HTML-code:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
De bijbehorende PHP-code vervangt alleen de benodigde waarden:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
De eindklant kan daardoor via de normale CMS-editor de afstanden wijzigen, koppen bewerken, HTML-gebieden verplaatsen, ontwerpen aanpassen en pagina-secties bewerken, zonder de PHP-programmatuurlogica te hoeven wijzigen.
Eigen PHP-functies definiëren
Binnen de PHP-code kun je eigen functies maken. Bijvoorbeeld:
function MyExampleFunction() {
return "Hello World";
}
Zorg ervoor dat een functie tijdens een paginaverzoek niet meerdere keren wordt gedefinieerd. Dit kan gebeuren wanneer dezelfde functienaam tegelijkertijd op de hoofdpagina, in de header, in een ingesloten module, in een pagina-sectie of in de footer voorkomt.
Kies voor eigen PHP-functies zo mogelijk unieke namen. Een dubbele functie-definitie leidt in PHP tot een fout.
Een projectspecifieke functienaam kan er zo uitzien:
function MyProjectCreateCustomerText() {
return "Customer";
}
Voor een functiedefinitie controleren op bestaande functies
Alternatief kun je met function_exists() controleren of de betreffende functie al gedefinieerd is:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
bluetronix PHP-functies gebruiken
In het PHP-code-gedeelte kun je ook de door het bluetronix CMS beschikbare PHP-functies gebruiken. Een voorbeeld is het verzenden van e-mails via het bluetronix SMTP-systeem met BlueSMTPMail():
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
De benodigde parameters kun je binnen je PHP-code instellen, bijvoorbeeld:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
Daarna kun je de centrale functie voor het verzenden van e-mails gebruiken. Voor een volledige aanroep moeten ook de andere benodigde parameters correct ingesteld zijn. Zo hoef je basis CMS-functies zoals de SMTP-verzending niet opnieuw zelf te programmeren.
Samenvatting
Eigen PHP-code wordt door het bluetronix CMS direct uitgevoerd; extra PHP-tags zijn in de PHP Code-editor niet vereist. $LayoutHTML bevat de HTML-code van de momenteel gegenereerde pagina en stelt je in staat om eigen plaatsaanduidingen door dynamische inhoud te vervangen.
Stel je HTML-structuur zo veel mogelijk in het HTML-gedeelte op en vervang de plaatsaanduidingen via PHP. Hierdoor kan de eindklant het lay-out later nog steeds met de normale CMS-editor bewerken, terwijl de programmatielogica gescheiden blijft.
FAQ
wat klanten ons vaak vragen
Heb ik een ontwikkelaars toegang nodig voor mijn eigen PHP-code?
Ja. Om je eigen PHP-code binnen een CMS-pagina te gebruiken, heb je een ontwikkelaars toegang tot het bluetronix CMS nodig.
Waar vind ik de PHP-code van het voorbeeld?
Open de voorbeeldpagina onder Modules → PHP Voorbeeld en kies PHP Code.
Moet ik in de PHP-code-editor <?php en ?> invoeren?
Nee. De editor voert de ingevoerde instructies al uit als PHP-code. Je schrijft je instructies direct, bijvoorbeeld print "Hello World";.
Wat gebeurt er als ik exit; gebruik?
exit; beëindigt de PHP-uitvoering op dit punt. Dit stopt ook het verdere CMS-pagina-renderingproces; de header, pagina-inhoud en footer worden vervolgens niet meer gegenereerd.
Waar wordt $LayoutHTML voor gebruikt?
$LayoutHTML bevat tijdens het renderen de HTML-code van de momenteel gegenereerde pagina. Met PHP kun je hierin inhoud zoeken en bijvoorbeeld via str_replace() eigen placeholders vervangen.
Hoe voeg ik dynamische inhoud toe aan mijn HTML?
Zet in de HTML-code bijvoorbeeld __MyText__ in en vervang deze placeholder in de PHP-code met str_replace() binnen $LayoutHTML.
Kan ik PHP-placeholders combineren met automatische vertaling?
Ja. Je kunt PHP-placeholders en vertaalmerken zoals Our Services samen gebruiken. De vertaling gebeurt later tijdens het renderen.
Waarom moet ik HTML en PHP gescheiden houden?
Zo kan de eindklant de HTML-indeling later met de normale editor bewerken, terwijl de programmalogica apart in het PHP-gedeelte blijft.
Hoe voorkom ik dubbel gedefinieerde PHP-functies?
Gebruik unieke functienamen. Je kunt ook met function_exists() controleren of een functie al bestaat voordat je deze definieert.
Kan ik bestaande bluetronix PHP-functies gebruiken?
Ja. In het PHP-code-gedeelte zijn ook CMS-functies beschikbaar, bijvoorbeeld BlueSMTPMail() voor het verzenden van e-mails. De vereiste parameters moet je dienovereenkomstig instellen.