PHP-kod och $LayoutHTML i bluetronix CMS
Med en utvecklaraccess kan du själv redigera PHP-koden för dina CMS-sidor. I denna handledning lär du dig hur du kör PHP-kommandon, ändrar HTML-innehåll via $LayoutHTML och använder egna funktioner samt de integrerade CMS-funktionerna.
Egen PHP-kod i bluetronix CMS
Med en utvecklaråtkomst kan du använda egen PHP-kod inom en CMS-sida. Här arbetar HTML-koden för sidan tillsammans med din PHP-kod. En central roll spelar variabeln $LayoutHTML: Den innehåller HTML-koden för den aktuella sidan under renderingsprocessen. Med PHP kan du söka, ändra och ersätta innehåll där.
För att använda egen PHP-kod behöver du en utvecklaråtkomst till bluetronix CMS. Om du inte redan har en utvecklaråtkomst kan du ansöka om det separat.
Öppna PHP-koden för en sida
Öppna PHP Code på den önskade sidan för att redigera PHP-koden för sidan.
Använd inga extra PHP-taggar
PHP-koden körs redan av CMS som PHP-kod. Därför får du inte använda några extra PHP-taggar i PHP-kodeditor. Den writingen behövs inte där:
<?php print "Hello World"; ?>
Skriv istället dina PHP-satser direkt:
print "Hello World";
Avsluta PHP-körningen med exit
För testning kan du ange följande satser, spara dem och ladda sidan på nytt:
print "Hello World";
exit();

I detta exempel visas endast Hello World. Med exit(); avslutar du PHP-körningen vid denna tidpunkt.
Genom exit(); avslutas även den fortsatta CMS-sidans renderingsprocess. Header, själva sidinnehållet, footer och efterföljande bearbetningssteg kommer inte att utföras.
PHP-utdata inom den vanliga sidan
Tar du bort exit(); och använder endast följande sats fortsätter renderingsprocessen normalt:
print "Hello World";

PHP skriver först ut Hello World. Därefter fortsätter den faktiska CMS-sidan att genereras, inklusive header, sidinnehåll och footer. För ändringar direkt inom HTML-sidan bör du dock arbeta så mycket som möjligt med $LayoutHTML.
Bearbeta HTML och PHP separat
I bluetronix CMS kan du underhålla HTML-koden och PHP-koden för en sida separat. Så förblir HTML-strukturen redigerbar i editorn, medan du lagrar programlogiken i PHP-området.
Definiera egna platshållare i HTML
Definiera en platshållare i HTML-koden som din PHP-kod senare ska ersätta. Ett enkelt exempel är:
__MyText__
Använd engelska namn för egna platshållare, även på tyskspråkiga webbplatser. På så sätt förblir namngivningen internationellt förståelig och enhetlig.
Andra möjliga beteckningar är:
__CustomerName__
__ProductPrice__
__CurrentDate__
Ersätt platshållare med $LayoutHTML
Med str_replace() kan du söka efter platshållaren i den aktuella HTML-koden och ersätta den med ditt önskade innehåll:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
CMS:et söker då i $LayoutHTML efter __MyText__ och ersätter platshållaren med Min text.
Kombinera HTML och platshållare
Du kan använda platshållaren inom din normala HTML-struktur. Skriv till exempel följande kod i HTML-området:
<h1>__MyText__</h1>
I PHP-området kompletterar du ersättningen:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
Under renderingprocessen blir det:
<h1>Meine Überschrift</h1>
Flera platshållare i en sidorubrik
Samma princip fungerar i större HTML-sektioner. Du kan till exempel definiera rubrik och beskrivning separat som platshållare:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
I PHP-koden sätter du båda innehållen oberoende av varandra:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
Den färdiga HTML-koden innehåller då de insatta texterna istället för de två platshållarna:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
Håll HTML-struktur och PHP-logik så skilda som möjligt
Tekniskt kan du direkt använda kompletta HTML-strukturer med PHP i $LayoutHTML:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
För större innehåll är det dock fördelaktigt att behålla HTML som en redigerbar struktur i HTML-området och arbeta med platshållare. Exempel på HTML-koden:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
Den tillhörande PHP-koden ersätter endast de nödvändiga värdena:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
Slutkunden kan därigenom ändra avstånd, redigera rubriker, flytta HTML-sektioner, anpassa designer och redigera sidavsnitt via den vanliga CMS-editorn utan att behöva ändra PHP-programlogiken.
Definiera egna PHP-funktioner
Inom PHP-koden kan du skapa egna funktioner. Till exempel:
function MyExampleFunction() {
return "Hello World";
}
Se till att en funktion inte definieras flera gånger under en sidvisning. Det kan hända om samma funktionsnamn används på huvud sidan, i headern, i ett inbäddat modul, i en sidavsnitt eller i footern.
Välj så unika namn som möjligt för dina egna PHP-funktioner. En dubbel funktionsdefinition leder till ett fel i PHP.
Ett projektspecifikt funktionsnamn kan se ut så här:
function MyProjectCreateCustomerText() {
return "Customer";
}
Kontrollera om det redan finns funktioner innan du definierar en funktion
Alternativt kan du använda function_exists() för att kontrollera om den aktuella funktionen redan har definierats:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
Använd bluetronix PHP-funktioner
I PHP-kodområdet kan du också använda de PHP-funktioner som tillhandahålls av bluetronix CMS. Ett exempel är e-postutskick via bluetronix SMTP-systemet med BlueSMTPMail():
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
De nödvändiga parametrarna kan sättas inom din PHP-kod, till exempel:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
Därefter kan du använda den centrala funktionen för e-postutskick. För ett fullständigt anrop måste även de övriga nödvändiga parametrarna sättas på rätt sätt. På så sätt behöver du inte programmera grundläggande CMS-funktioner som SMTP-utskick själv igen.
Sammanfattning
Egen PHP-kod körs direkt av bluetronix CMS; ytterligare PHP-taggar är inte nödvändiga i PHP Code-editorn. $LayoutHTML innehåller HTML-koden för den aktuella skapade sidan och låter dig ersätta egna platshållare med dynamiskt innehåll.
Skapa din HTML-struktur helst i HTML-området och ersätt platshållarna via PHP. På så sätt kan slutkunden senare fortfarande redigera layouten med den vanliga CMS-editorn, medan programlogiken förblir åtskild.
FAQ
vad kunder ofta frågar oss
Behöver jag en utvecklaråtkomst för egen PHP-kod?
Ja. För att använda egen PHP-kod inom en CMS-sida behöver du en utvecklaråtkomst till bluetronix CMS.
Var hittar jag PHP-koden för exemplet?
Öppna exempel-sidan under Moduler → PHP Exempel och välj PHP-kod.
Måste jag ange <?php och ?> i PHP-kodredigeraren?
Nej. Redigeraren kör redan de angivna instruktionerna som PHP-kod. Du skriver dina instruktioner direkt, till exempel print "Hello World";.
Vad händer om jag använder exit;?
exit; avslutar PHP-körningen vid denna punkt. Detta stoppar också den fortsatta CMS-sidans renderingprocess; header, sidinnehåll och footer produceras därefter inte längre.
Vad används $LayoutHTML till?
$LayoutHTML innehåller HTML-koden för den aktuella sidan under renderingprocessen. Med PHP kan du söka i det och till exempel ersätta egna platshållare via str_replace().
Hur lägger jag till dynamiskt innehåll i mitt HTML?
Sätt till exempel __MyText__ i HTML-koden och ersätt denna platshållare i PHP-koden med str_replace() i $LayoutHTML.
Kan jag kombinera PHP-platshållare med automatisk översättning?
Ja. Du kan använda PHP-platshållare och översättningsmarkörer som Our Services tillsammans. Översättningen sker senare under renderingprocessen.
Varför ska jag hålla HTML och PHP åtskilda?
Så kan slutkunden redigera HTML-layouten senare med den vanliga redigeraren, medan programlogiken förblir separat i PHP-området.
Hur undviker jag dubbeldefinierade PHP-funktioner?
Använd unika funktionsnamn. Du kan dessutom kontrollera om en funktion redan finns med function_exists() innan en definition.
Kan jag använda befintliga bluetronix PHP-funktioner?
Ja. CMS-funktioner som BlueSMTPMail() för e-postutskick är också tillgängliga i PHP-kodområdet. De nödvändiga parametrarna måste du sätta korrekt.