PHP-kode og $LayoutHTML i bluetronix CMS
Med en udvikleradgang kan du selv redigere PHP-koden på dine CMS-sider. I denne tutorial lærer du, hvordan du udfører PHP-kommandoer, ændrer HTML-indhold via $LayoutHTML og bruger egne funktioner samt de indbyggede CMS-funktioner.
Egen PHP-kode i bluetronix CMS
Med en udvikleradgang kan du bruge din egen PHP-kode inden for en CMS-side. HTML-koden på siden og din PHP-kode arbejder sammen. En central rolle spiller variablen $LayoutHTML: Den indeholder HTML-koden for den aktuelt genererede side under rendering-processen. Med PHP kan du søge, ændre og erstatte indhold i den.
Du har brug for en udvikleradgang til bluetronix CMS for at bruge egen PHP-kode. Hvis du ikke allerede har en udvikleradgang, kan du ansøge om den separat.
Åbn PHP-koden på en side
Åbn PHP Code på den ønskede side for at redigere PHP-koden på siden.
Brug ikke ekstra PHP-tags
PHP-koden udføres allerede som PHP-kode af CMS'et. Derfor må du ikke bruge ekstra PHP-tags i PHP-kode-editoren. Denne skrivemåde er ikke nødvendig der:
<?php print "Hello World"; ?>
Skriv i stedet din PHP-kommando direkte:
print "Hello World";
Afslut PHP-eksekvering med exit
Til test kan du indtaste følgende kommandoer, gemme dem og derefter genindlæse siden:
print "Hello World";
exit();

I dette eksempel vises kun Hello World. Med exit(); afslutter du PHP-eksekveringen på dette punkt.
Ved exit(); afsluttes også den videre CMS-site-rendering-proces. Header, egentligt sideindhold, footer og efterfølgende behandlingsmetoder udføres ikke længere.
PHP-udgang inden for den normale side
Fjerner du exit(); og bruger kun følgende kommando, fortsætter rendering-processen normalt:
print "Hello World";

PHP udskriver først Hello World. Derefter fortsætter den egentlige CMS-side med at blive genereret, inklusive header, sideindhold og footer. For ændringer direkte inden for HTML-siden bør du dog så vidt muligt arbejde med $LayoutHTML.
Rediger HTML og PHP adskilt
I bluetronix CMS kan du vedligeholde HTML-koden og PHP-koden på en side adskilt. På den måde forbliver HTML-strukturen redigerbar i editoren, mens du gemmer programlogikken i PHP-området.
Definér egne pladsholdere i HTML
Definér en pladsholder i HTML-koden, som din PHP-kode senere skal erstatte. Et simpelt eksempel er:
__MyText__
Brug engelske navne til egne pladsholdere, også på tysksprogede hjemmesider. Så forbliver navngivningen international forståelig og ensartet.
Andre mulige betegnelser er:
__CustomerName__
__ProductPrice__
__CurrentDate__
Erstat pladsholdere med $LayoutHTML
Med str_replace() kan du søge efter pladsholderen i den aktuelle HTML-kode og erstatte den med dit ønskede indhold:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
CMS'et søger derfor i $LayoutHTML efter __MyText__ og erstatter pladsholderen med Min tekst.
Kombiner HTML og pladsholdere
Du kan bruge pladsholderen inden for din normale HTML-struktur. Indsæt for eksempel følgende kode i HTML-området:
<h1>__MyText__</h1>
I PHP-området tilføjer du erstatningen:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
Under renderingsprocessen bliver dette:
<h1>Meine Überschrift</h1>
Flere pladsholdere i et sideafsnit
Det samme princip fungerer i mere omfattende HTML-områder. Du kan for eksempel definere overskrift og beskrivelse som separate pladsholdere:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
I PHP-koden sætter du begge indhold uafhængigt af hinanden:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
Den færdige HTML-kode indeholder derefter de indsatte tekster i stedet for de to pladsholdere:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
Adskil HTML-struktur og PHP-logik så meget som muligt
Teknisk set kan du direkte indsætte komplette HTML-strukturer med PHP i $LayoutHTML:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
For større indhold er det dog fornuftigt at lade HTML være en redigerbar struktur i HTML-området og arbejde med pladsholdere. Eksempel på HTML-koden:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
Den tilhørende PHP-kode erstatter kun de nødvendige værdier:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
Slutbrugeren kan dermed ændre afstande, redigere overskrifter, flytte HTML-områder, justere designs og redigere sektioner uden at skulle ændre PHP-programmeringslogikken.
Definér egne PHP-funktioner
Inden for PHP-koden kan du oprette dine egne funktioner. For eksempel:
function MyExampleFunction() {
return "Hello World";
}
Sørg for, at en funktion ikke defineres flere gange under en sidevisning. Det kan ske, hvis det samme funktionsnavn samtidig optræder på hovedsiden, i headeren, i en indlejret modul, i en sektion eller i footer.
Vælg så unikke navne som muligt for egne PHP-funktioner. En dobbelt funktionsdefinition fører til en fejl i PHP.
Et projektspecifikt funktionsnavn kunne se sådan ud:
function MyProjectCreateCustomerText() {
return "Customer";
}
Kontrollér eksisterende funktioner før en funktionsdefinition
Alternativt kan du med function_exists() kontrollere, om den relevante funktion allerede er defineret:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
Brug bluetronix PHP-funktioner
I PHP-kodeområdet kan du også bruge de PHP-funktioner, som bluetronix CMS tilbyder. Et eksempel er e-mail-afsendelse via bluetronix SMTP-systemet med BlueSMTPMail():
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
De nødvendige parametre kan du indstille inden for din PHP-kode, for eksempel:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
Derefter kan du bruge den centrale funktion til e-mail-afsendelsen. For et fuldt kald skal også de øvrige nødvendige parametre være korrekt indstillet. På den måde behøver du ikke at programmere grundlæggende CMS-funktioner som SMTP-afsendelse igen.
Sammendrag
Egen PHP-kode udføres direkte af bluetronix CMS; yderligere PHP-tags er ikke nødvendige i PHP-kode -editoren. $LayoutHTML indeholder HTML-koden for den aktuelt genererede side og gør det muligt at erstatte egne pladsholdere med dynamisk indhold.
Skab din HTML-struktur så vidt muligt i HTML-området og erstat pladsholderne via PHP. Dermed kan slutbrugeren fortsat redigere layoutet med den almindelige CMS-editor, mens programmeringslogikken forbliver adskilt.
FAQ
hvad kunder ofte spørger os
Har jeg brug for en udvikleradgang for at bruge egen PHP-kode?
Ja. For at bruge din egen PHP-kode inden for en CMS-side, har du brug for en udvikleradgang til bluetronix CMS.
Hvor finder jeg PHP-koden for eksemplet?
Åbn eksempel-siden under Moduler → PHP Eksempel og vælg PHP-kode.
Skal jeg indtaste <?php og ?> i PHP-kode-editoren?
Nej. Editorens udfører de angivne kommandoer allerede som PHP-kode. Du skriver dine kommandoer direkte, for eksempel print "Hello World";.
Hvad sker der, hvis jeg bruger exit;?
exit; afslutter PHP-udførelsen på dette punkt. Derved stopper også den videre CMS-side-renderingsproces; header, sidens indhold og footer vil derefter ikke blive genereret.
Hvad bruges $LayoutHTML til?
$LayoutHTML indeholder den HTML-kode for den aktuelt genererede side under rendering-processen. Med PHP kan du søge i denne kode og for eksempel erstatte egne pladsholdere med str_replace() .
Hvordan indsætter jeg dynamisk indhold i mit HTML?
Indsæt for eksempel __MyText__ i HTML-koden og erstat denne pladsholder i PHP-koden med str_replace() inden for $LayoutHTML.
Kan jeg kombinere PHP-pladsholdere med automatisk oversættelse?
Ja. Du kan bruge PHP-pladsholdere og oversættelsesmærker som Vores tjenester sammen. Oversættelsen sker senere under rendering-processen.
Hvorfor skal jeg holde HTML og PHP adskilt?
Så kan slutkunden senere redigere HTML-layoutet med den normale editor, mens programlogikken forbliver separat i PHP-området.
Hvordan undgår jeg dobbeltdefinerede PHP-funktioner?
Brug unikke funktionsnavne. Du kan desuden kontrollere med function_exists(), om en funktion allerede findes, før du definerer den.
Kan jeg bruge eksisterende bluetronix PHP-funktioner?
Ja. I PHP-kodeområdet er der også CMS-funktioner tilgængelige, for eksempel BlueSMTPMail() til e-mailafsendelse. De nødvendige parametre skal du sætte korrekt.