PHP-kode og $LayoutHTML i bluetronix CMS
Med tilgang for utviklere kan du selv redigere PHP-koden på CMS-sidene dine. I denne tutorialen lærer du hvordan du utfører PHP-setninger, endrer HTML-innhold gjennom $LayoutHTML og bruker egne funksjoner samt de innebygde CMS-funksjonene.
Egen PHP-kode i bluetronix CMS
Med en utviklerkonto kan du bruke egen PHP-kode innenfor en CMS-side. Her samarbeider HTML-koden på siden med din PHP-kode. En sentral rolle spiller variabelen $LayoutHTML: Den inneholder HTML-koden for den siden som for øyeblikket genereres under sidenes rendering-prosess. Med PHP kan du søke, endre og erstatte innhold der.
For egen PHP-kode trenger du en utviklerkonto for bluetronix CMS. Hvis du ikke allerede har en utviklerkonto, kan du søke om den separat.
Åpne PHP-koden for en side
Åpne på den ønskede siden PHP-kode for å redigere PHP-koden på siden.
Ikke bruk ekstra PHP-tags
PHP-koden blir allerede kjørt som PHP-kode av CMS. Derfor kan du ikke bruke ekstra PHP-tags i PHP-kode-editoren. Denne skrivemåten er ikke nødvendig der:
<?php print "Hello World"; ?>
Skriv din PHP-setning direkte istedenfor:
print "Hello World";
Avslutt PHP-kjøringen med exit
For testing kan du skrive inn følgende setninger, lagre dem og deretter laste siden på nytt:
print "Hello World";
exit();

I dette eksemplet vises kun Hello World. Med exit(); avslutter du PHP-kjøringen på dette punktet.
Gjennom exit(); stoppes også den videre CMS-sidenes rendering-prosess. Header, selve sidens innhold, footer og påfølgende behandlingssteg utføres ikke lenger.
PHP-utdata innenfor den normale siden
Fjerner du exit(); og bruker kun følgende instruksjon, vil rendering-prosessen gå normalt videre:
print "Hello World";

PHP skriver først ut Hello World. Deretter fortsetter den faktiske CMS-siden å bli generert, inkludert header, sidens innhold og footer. For endringer direkte innenfor HTML-siden bør du imidlertid jobbe så mye som mulig med $LayoutHTML.
Rediger HTML og PHP separat
I bluetronix CMS kan du vedlikeholde HTML-koden og PHP-koden for en side separat. På denne måten forblir HTML-strukturen redigerbar i redigereren, mens du plasserer programlogikken i PHP-området.
Definer dine egne plassholdere i HTML
Definer en plassholder i HTML-koden som PHP-koden din senere skal erstatte. Et enkelt eksempel er:
__MyText__
Bruk engelske navn for egne plassholdere, selv på tyskspråklige nettsider. Slik forblir betegnelsen internasjonalt forståelig og enhetlig.
Andre mulige betegnelser er:
__CustomerName__
__ProductPrice__
__CurrentDate__
Erstatt plassholdere med $LayoutHTML
Med str_replace() kan du søke etter plassholderen i den nåværende HTML-koden og erstatte den med ønsket innhold:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
CMS-et søker i $LayoutHTML etter __MyText__ og erstatter plassholderen med Min tekst.
Kombiner HTML og plassholdere
Plassholderen kan brukes innenfor din normale HTML-struktur. For eksempel, skriv inn følgende kode i HTML-delen:
<h1>__MyText__</h1>
I PHP-delen legger du til erstatningen:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
Under renderingprosessen blir dette:
<h1>Meine Überschrift</h1>
Flere plassholdere i en side-seksjon
Samme prinsipp fungerer i mer omfattende HTML-områder. Du kan for eksempel definere overskrift og beskrivelse som separate plassholdere:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
I PHP-koden setter du begge innholdene uavhengig av hverandre:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
Den fullstendige HTML-koden inneholder deretter de innlagte tekstene i stedet for de to plassholderne:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
Skille HTML-struktur og PHP-logikk så mye som mulig
Teknisk kan du sette inn komplette HTML-strukturer direkte med PHP i $LayoutHTML:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
For større innhold er det imidlertid fornuftig å la HTML være en redigérbar struktur i HTML-delen og jobbe med plassholdere. Eksempel på HTML-koden:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
Den tilknyttede PHP-koden erstatter bare de nødvendige verdiene:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
Sluttkunden kan derfor endre avstander, redigere overskrifter, flytte HTML-områder, tilpasse design og redigere seksjoner uten å måtte endre PHP-programlogikken.
Definer dine egne PHP-funksjoner
Innenfor PHP-koden kan du opprette egne funksjoner. For eksempel:
function MyExampleFunction() {
return "Hello World";
}
Pass på at en funksjon ikke defineres flere ganger under et sidekall. Dette kan skje hvis samme funksjonsnavn finnes på hovedsiden, i headeren, i et inkludert modul, i en seksjon eller i footeren.
Velg så entydige navn som mulig for egne PHP-funksjoner. En dobbel funksjonsdefinisjon fører til en feil i PHP.
Et prosjektspecifikt funksjonsnavn kan se slik ut:
function MyProjectCreateCustomerText() {
return "Customer";
}
Kontroller eksisterende funksjoner før en funksjonsdefinisjon
Alternativt kan du bruke function_exists() for å sjekke om den aktuelle funksjonen allerede er definert:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
Bruk bluetronix PHP-funksjoner
I PHP-kodeområdet kan du også bruke PHP-funksjoner som tilbys av bluetronix CMS. Et eksempel er e-postsending via bluetronix SMTP-system med BlueSMTPMail():
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
De nødvendige parameterne kan du sette i din PHP-kode, for eksempel:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
Deretter kan du bruke sentralfunksjonen for e-postsending. For en fullstendig kall må også de andre nødvendige parameterne settes riktig. Slik trenger du ikke å programmere grunnleggende CMS-funksjoner som SMTP-sending på nytt.
Sammendrag
Egen PHP-kode kjøres direkte av bluetronix CMS; ekstra PHP-tagger er ikke nødvendige i PHP Code-redaktøren. $LayoutHTML inneholder HTML-koden til den nåværende genererte siden og lar deg erstatte egne plassholdere med dynamisk innhold.
Legg HTML-strukturen din helst i HTML-delen og erstatt plassholderne via PHP. Slik kan sluttkunden fortsatt redigere designet med den vanlige CMS-redaktøren, mens programlogikken forblir atskilt.
FAQ
hva kunder ofte spør oss om
Trenger jeg utviklertilgang for egen PHP-kode?
Ja. For å bruke egen PHP-kode i en CMS-side, trenger du utviklertilgang til bluetronix CMS.
Hvor finner jeg PHP-koden til eksemplet?
Åpne eksempelsiden under Moduler → PHP Eksempel og velg PHP-kode.
Må jeg skrive <?php og ?> i PHP-kodeeditoren?
Nei. Editorens kjører allerede de registrerte instruksjonene som PHP-kode. Du skriver instruksjonene direkte, for eksempel print "Hello World";.
Hva skjer hvis jeg bruker exit;?
exit; avslutter PHP-kjøringen på dette punktet. Dette stopper også den videre CMS-side-renderingsprosessen; Header, sidinnhold og footer vil ikke lenger bli produsert.
Hva brukes $LayoutHTML til?
$LayoutHTML inneholder HTML-koden for den nåværende genererte siden under renderingprosessen. Med PHP kan du søke i innholdet og for eksempel erstatte egne plassholdere med str_replace() .
Hvordan setter jeg dynamisk innhold i HTML-en min?
Sett for eksempel __MyText__ inn i HTML-koden og erstatt denne plassholderen i PHP-koden med str_replace() innenfor $LayoutHTML.
Kan jeg kombinere PHP-plassholdere med automatisk oversettelse?
Ja. Du kan bruke både PHP-plassholdere og oversettelsesmerker som Våre tjenester sammen. Oversettelsen skjer senere under renderingprosessen.
Hvorfor bør jeg holde HTML og PHP adskilt?
Slik kan sluttkunden redigere HTML-layouten senere med den normale editoren, mens programlogikken forblir separat i PHP-området.
Hvordan unngår jeg dobbeltdefinerte PHP-funksjoner?
Bruk unike funksjonsnavn. Du kan også sjekke om en funksjon allerede eksisterer før definisjonen med function_exists() .
Kan jeg bruke eksisterende bluetronix PHP-funksjoner?
Ja. Det er også CMS-funksjoner tilgjengelig i PHP-kodeområdet, for eksempel BlueSMTPMail() for e-postsending. Du må angi de nødvendige parameterne deretter.