Jetzt App downloaden und 10 Tage kostenlos testen
Währung Sprache auswählen Region auswählen

Eigener PHP-Code im bluetronix CMS

Mit einem Entwicklerzugang kannst du eigenen PHP-Code innerhalb einer CMS-Seite verwenden. Dabei arbeiten der HTML-Code der Seite und dein PHP-Code zusammen. Eine zentrale Rolle spielt die Variable $LayoutHTML: Sie enthält während des Site-Rendering-Prozesses den HTML-Code der aktuell erzeugten Seite. Mit PHP kannst du darin Inhalte suchen, verändern und ersetzen.

Für eigenen PHP-Code benötigst du einen Entwicklerzugang zum bluetronix CMS. Falls du noch keinen Entwicklerzugang besitzt, kannst du ihn separat beantragen.

PHP-Code einer Seite öffnen

Öffne auf der gewünschten Seite PHP Code, um den PHP-Code der Seite zu bearbeiten.

Keine zusätzlichen PHP-Tags verwenden

Der PHP-Code wird vom CMS bereits als PHP-Code ausgeführt. Deshalb darfst du im PHP-Code-Editor keine zusätzlichen PHP-Tags verwenden. Diese Schreibweise ist dort nicht erforderlich:

<?php print "Hello World"; ?>

Schreibe deine PHP-Anweisung stattdessen direkt:

print "Hello World";

PHP-Ausführung mit exit beenden

Zum Testen kannst du folgende Anweisungen eingeben, speichern und die Seite anschließend neu laden:

print "Hello World";
exit();

In diesem Beispiel wird ausschließlich Hello World angezeigt. Mit exit(); beendest du die PHP-Ausführung an dieser Stelle.

Durch exit(); wird auch der weitere CMS-Site-Rendering-Prozess beendet. Header, eigentlicher Seiteninhalt, Footer und nachfolgende Verarbeitungsschritte werden nicht mehr ausgeführt.

PHP-Ausgabe innerhalb der normalen Seite

Entfernst du exit(); und verwendest nur die folgende Anweisung, läuft der Rendering-Prozess anschließend normal weiter:

print "Hello World";

PHP gibt zuerst Hello World aus. Danach wird die eigentliche CMS-Seite weiter erzeugt, einschließlich Header, Seiteninhalt und Footer. Für Änderungen direkt innerhalb der HTML-Seite solltest du jedoch möglichst mit $LayoutHTML arbeiten.

HTML und PHP getrennt bearbeiten

Im bluetronix CMS kannst du den HTML Code und den PHP Code einer Seite getrennt pflegen. So bleibt die HTML-Struktur im Editor bearbeitbar, während du die Programmlogik im PHP-Bereich hinterlegst.

Eigene Platzhalter im HTML definieren

Definiere im HTML-Code einen Platzhalter, den dein PHP-Code später ersetzen soll. Ein einfaches Beispiel lautet:

__MyText__

Verwende für eigene Platzhalter englische Namen, auch auf deutschsprachigen Webseiten. So bleibt die Benennung international verständlich und einheitlich.

Weitere mögliche Bezeichnungen sind:

__CustomerName__
__ProductPrice__
__CurrentDate__

Platzhalter mit $LayoutHTML ersetzen

Mit str_replace() kannst du den Platzhalter im aktuellen HTML-Code suchen und durch deinen gewünschten Inhalt ersetzen:

$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);

Das CMS sucht damit in $LayoutHTML nach __MyText__ und ersetzt den Platzhalter durch Mein Text.

HTML und Platzhalter kombinieren

Den Platzhalter kannst du innerhalb deiner normalen HTML-Struktur verwenden. Trage beispielsweise folgenden Code im HTML-Bereich ein:

<h1>__MyText__</h1>

Im PHP-Bereich ergänzt du die Ersetzung:

$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);

Während des Rendering-Prozesses entsteht daraus:

<h1>Meine Überschrift</h1>

Mehrere Platzhalter in einem Seitenabschnitt

Das gleiche Prinzip funktioniert in umfangreicheren HTML-Bereichen. Du kannst beispielsweise Überschrift und Beschreibung separat als Platzhalter definieren:

<section>
   <div class="container">
      <h2>__MyHeadline__</h2>
      <p>__MyDescription__</p>
   </div>
</section>

Im PHP-Code setzt du beide Inhalte unabhängig voneinander:

$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);

Der fertige HTML-Code enthält dann die eingesetzten Texte anstelle der beiden Platzhalter:

<section>
   <div class="container">
      <h2>Unsere Leistungen</h2>
      <p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
   </div>
</section>

HTML-Struktur und PHP-Logik möglichst trennen

Technisch kannst du komplette HTML-Strukturen direkt mit PHP in $LayoutHTML einsetzen:

$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);

Für größere Inhalte ist es jedoch sinnvoll, das HTML als bearbeitbare Struktur im HTML-Bereich zu belassen und mit Platzhaltern zu arbeiten. Beispiel für den HTML-Code:

<section>
   <h2>__MyHeadline__</h2>
   <p>__MyText__</p>
</section>

Der zugehörige PHP-Code ersetzt nur die benötigten Werte:

$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);

Der Endkunde kann dadurch über den normalen CMS-Editor Abstände verändern, Überschriften bearbeiten, HTML-Bereiche verschieben, Designs anpassen und Seitenabschnitte bearbeiten, ohne die PHP-Programmlogik verändern zu müssen.

Eigene PHP-Funktionen definieren

Innerhalb des PHP-Codes kannst du eigene Funktionen erstellen. Beispielsweise:

function MyExampleFunction() {
   return "Hello World";
}

Achte darauf, dass eine Funktion während eines Seitenaufrufs nicht mehrfach definiert wird. Das kann passieren, wenn derselbe Funktionsname gleichzeitig auf der Hauptseite, im Header, in einem eingebundenen Modul, in einem Seitenabschnitt oder im Footer vorkommt.

Wähle für eigene PHP-Funktionen möglichst eindeutige Namen. Eine doppelte Funktionsdefinition führt in PHP zu einem Fehler.

Ein projektspezifischer Funktionsname könnte so aussehen:

function MyProjectCreateCustomerText() {
   return "Customer";
}

Vor einer Funktionsdefinition auf vorhandene Funktionen prüfen

Alternativ kannst du mit function_exists() prüfen, ob die betreffende Funktion bereits definiert wurde:

if(!function_exists("MyProjectCreateCustomerText")) {
   function MyProjectCreateCustomerText() {
      return "Customer";
   }
}

bluetronix PHP-Funktionen verwenden

Im PHP-Code-Bereich kannst du auch die vom bluetronix CMS bereitgestellten PHP-Funktionen verwenden. Ein Beispiel ist der E-Mail-Versand über das bluetronix SMTP-System mit BlueSMTPMail():

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);

Die benötigten Parameter kannst du innerhalb deines PHP-Codes setzen, beispielsweise:

$From        = "info@example.com";
$To          = "customer@example.com";
$Subject     = "Test E-Mail";
$TextContent = "Hello World";

Anschließend kannst du die zentrale Funktion für den E-Mail-Versand verwenden. Für einen vollständigen Aufruf müssen auch die weiteren benötigten Parameter passend gesetzt sein. So brauchst du grundlegende CMS-Funktionen wie den SMTP-Versand nicht erneut selbst zu programmieren.

Zusammenfassung

Eigener PHP-Code wird vom bluetronix CMS direkt ausgeführt; zusätzliche PHP-Tags sind im PHP Code-Editor nicht erforderlich. $LayoutHTML enthält den HTML-Code der aktuell erzeugten Seite und erlaubt dir, eigene Platzhalter durch dynamische Inhalte zu ersetzen.

Lege deine HTML-Struktur möglichst im HTML-Bereich an und ersetze die Platzhalter über PHP. Dadurch kann der Endkunde das Layout später weiterhin mit dem normalen CMS-Editor bearbeiten, während die Programmlogik getrennt bleibt.

FAQ

was Kunden uns häufig Fragen

Benötige ich einen Entwicklerzugang für eigenen PHP-Code?

Ja. Um eigenen PHP-Code innerhalb einer CMS-Seite zu verwenden, benötigst du einen Entwicklerzugang zum bluetronix CMS.

Wo finde ich den PHP-Code des Beispiels?

Öffne die Beispielseite unter Module → PHP Example und wähle PHP Code.

Muss ich im PHP-Code-Editor <?php und ?> eingeben?

Nein. Der Editor führt die hinterlegten Anweisungen bereits als PHP-Code aus. Du schreibst deine Anweisungen direkt, zum Beispiel print "Hello World";.

Was passiert, wenn ich exit; verwende?

exit; beendet die PHP-Ausführung an dieser Stelle. Dadurch stoppt auch der weitere CMS-Site-Rendering-Prozess; Header, Seiteninhalt und Footer werden anschließend nicht mehr erzeugt.

Wofür wird $LayoutHTML verwendet?

$LayoutHTML enthält während des Rendering-Prozesses den HTML-Code der aktuell erzeugten Seite. Mit PHP kannst du darin Inhalte suchen und beispielsweise über str_replace() eigene Platzhalter ersetzen.

Wie füge ich dynamische Inhalte in mein HTML ein?

Setze im HTML-Code beispielsweise __MyText__ ein und ersetze diesen Platzhalter im PHP-Code mit str_replace() innerhalb von $LayoutHTML.

Kann ich PHP-Platzhalter mit der automatischen Übersetzung kombinieren?

Ja. Du kannst PHP-Platzhalter und Übersetzungsmarken wie Our Services gemeinsam verwenden. Die Übersetzung erfolgt später während des Rendering-Prozesses.

Warum sollte ich HTML und PHP getrennt halten?

So kann der Endkunde das HTML-Layout später mit dem normalen Editor bearbeiten, während die Programmlogik separat im PHP-Bereich bleibt.

Wie vermeide ich doppelt definierte PHP-Funktionen?

Verwende eindeutige Funktionsnamen. Du kannst zusätzlich vor einer Definition mit function_exists() prüfen, ob eine Funktion bereits existiert.

Kann ich bestehende bluetronix PHP-Funktionen verwenden?

Ja. Im PHP-Code-Bereich stehen auch CMS-Funktionen zur Verfügung, beispielsweise BlueSMTPMail() für den E-Mail-Versand. Die erforderlichen Parameter musst du entsprechend setzen.

CMS