PHP-kód és $LayoutHTML használata a bluetronix CMS-ben
Fejlesztői hozzáféréssel te magad is szerkesztheted a CMS-oldalad PHP-kódját. Ebben a tutorialban megtudhatod, hogyan hajts végre PHP utasításokat, változtasd meg a HTML-tartalmat a $LayoutHTML segítségével, és használj saját funkciókat, valamint a beépített CMS-funkciókat.
Saját PHP-kód a bluetronix CMS-ben
Fejlesztői hozzáféréssel saját PHP-kódot használhatsz egy CMS-oldalon. Itt az oldal HTML-kódja és a te PHP-kódod együttműködik. Központi szerepet játszik a $LayoutHTML változó: ez tartalmazza az aktuálisan generált oldal HTML-kódját az oldal renderelési folyamatában. PHP-val benne tartalmakat kereshetsz, módosíthatsz és helyettesíthetsz.
Saját PHP-kódhoz fejlesztői hozzáférés szükséges a bluetronix CMS-hez. Ha még nincs fejlesztői hozzáférésed, külön kérheted.
Oldal PHP-kódjának megnyitása
Nyisd meg a kívánt oldalon PHP Kód-ot, hogy szerkeszthesd az oldal PHP-kódját.
Nem használj további PHP-címkéket
A PHP-kódot a CMS már PHP-ként hajtja végre. Ezért a PHP-kód szerkesztőjében nem használhatsz további PHP-címkéket. Ez a forma ott nem szükséges:
<?php print "Hello World"; ?>
Írd a PHP utasítást közvetlenül:
print "Hello World";
PHP végrehajtásának befejezése exit-tel
Teszteléshez a következő utasításokat írd be, mentsd el, majd töltsd újra az oldalt:
print "Hello World";
exit();

Ebben a példában csak a Hello World jelenik meg. Az exit(); használatával itt befejezed a PHP végrehajtást.
A exit(); a további CMS-oldal renderelési folyamatát is befejezi. A fejléc, az igazi oldal tartalma, a lábléc és a későbbi feldolgozási lépések már nem hajtódnak végre.
PHP kimenet a normál oldalon belül
Ha eltávolítod a exit();-t, és csak az alábbi utasítást használod, a renderelési folyamat normálisan folytatódik:
print "Hello World";

A PHP először a Hello World-ot adja ki. Ezután a tényleges CMS-oldal folytatódik, beleértve a fejlécet, az oldal tartalmát és a láblécet. Viszont a közvetlen változtatások esetén érdemesebb a $LayoutHTML-t használni.
HTML és PHP külön szerkesztése
A bluetronix CMS-ben külön-külön karbantarthatod az oldal HTML Kód-ját és a PHP Kód-ját. Így a HTML-struktúra szerkeszthető marad a szerkesztőben, míg a programlogika a PHP területen kerül tárolásra.
Saját helyettesítők definiálása a HTML-ben
Határozd meg a HTML-kódban a helyőrzőt, amelyet a PHP-kódod később cserélni fog. Egy egyszerű példa a következő:
__MyText__
Saját helyőrzők esetén használj angol neveket, még német nyelvű weboldalakon is. Így a megnevezés nemzetközileg érthető és egységes marad.
További lehetséges elnevezések:
__CustomerName__
__ProductPrice__
__CurrentDate__
Helyettesítők cseréje $LayoutHTML-ra
A str_replace() segítségével keresheted a helyőrzőt az aktuális HTML-kódban, és cserélheted le a kívánt tartalomra:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
A CMS tehát a $LayoutHTML-ben keresi a __MyText__-t, és cseréli le a helyőrzőt a Az én szövegem-re.
HTML és helyettesítők kombinálása
A helyőrzőt használhatod a normál HTML-struktúrád belsejében. Például írd be a következő kódot a HTML-részbe:
<h1>__MyText__</h1>
A PHP-részben egészítsd ki a cserét:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
A renderelési folyamat során ez alakul át:
<h1>Meine Überschrift</h1>
Több helyettesítő egy oldal szakaszban
Ugyanez az elv működik átfogóbb HTML-területeken is. Például a címet és a leírást külön helyőrzőként definiálhatod:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
A PHP-kódban pedig a két tartalmat függetlenül állíthatod be:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
A kész HTML-kód ezután tartalmazza a használt szövegeket a kettő helyőrző helyett:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
HTML-struktúra és PHP-logika lehetőleg szétválasztva
Technikailag teljes HTML-struktúrákat közvetlenül beilleszthetsz PHP segítségével a $LayoutHTML-ban:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
Nagyobb tartalmak esetén azonban érdemes az HTML-t szerkeszthető struktúrában hagyni a HTML-részben, és helyőrzőkkel dolgozni. Példa a HTML-kódra:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
A kapcsolódó PHP-kód csak a szükséges értékeket cseréli le:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
A végfelhasználó így a normál CMS-szerkesztőn keresztül módosíthatja a távolságokat, szerkesztheti a címeket, áthelyezheti a HTML-területeket, testreszabhatja a dizájnokat és szerkesztheti az oldalszakaszokat, anélkül, hogy módosítania kellene a PHP-programlogikát.
Saját PHP-függvények definiálása
A PHP-kódban saját funkciókat hozhatsz létre. Például:
function MyExampleFunction() {
return "Hello World";
}
Ügyelj arra, hogy egy funkciót ne definiálj többször egy oldal megnyitása során. Ez előfordulhat, ha ugyanaz a funkció neve egy főoldalon, a fejlécben, egy beágyazott modulban, egy oldalszakaszban vagy a láblécben egyszerre szerepel.
A saját PHP-funkciókhoz lehetőleg egyértelmű neveket válassz. A dupla funkciódefiníció PHP-ban hibát okoz.
Egy projekt-specifikus funkció neve így nézhet ki:
function MyProjectCreateCustomerText() {
return "Customer";
}
Függvénydefiníció előtt ellenőrizd a meglévő függvényeket
Alternatívaként a function_exists() segítségével ellenőrizheted, hogy a szóban forgó funkció már definiálva van-e:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
bluetronix PHP-függvények használata
A PHP-kód részben a bluetronix CMS által biztosított PHP-funkciókat is használhatod. Példa az E-mail küldés a bluetronix SMTP-rendszeren keresztül a BlueSMTPMail() segítségével:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
A szükséges paramétereket a PHP-kódodban is beállíthatod, például:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
Ezután a központi funkciót használhatod az E-mail küldéshez. A teljes hívás érdekében a további szükséges paramétereknek is megfelelően be kell állítani őket. Így a alapvető CMS-funkciókat, mint az SMTP-küldés, nem kell újra programoznod.
Összefoglalás
A saját PHP-kódot a bluetronix CMS közvetlenül végrehajtja; további PHP-címkék a PHP kód szerkesztőben nem szükségesek. A $LayoutHTML tartalmazza az aktuálisan létrehozott oldal HTML-kódját, és lehetővé teszi, hogy saját helyőrzőidet dinamikus tartalomra cseréld.
A HTML-struktúrádat lehetőleg a HTML-részben hozd létre, és cseréld le a helyőrzőket PHP-n keresztül. Így az végfelhasználó később is folytathatja a megjelenés szerkesztését a normál CMS-szerkesztőn keresztül, míg a programlogika külön marad.
GYIK
Miket kérdeznek tőlünk gyakran az ügyfelek?
Szükségem van fejlesztői hozzáférésre a saját PHP-kódhoz?
Igen. A saját PHP-kód használatához a CMS-oldalon fejlesztői hozzáférésre van szükséged a bluetronix CMS-hez.
Hol találom a példa PHP-kódját?
Nyisd meg a példa oldalt a Modulok → PHP Példa menüpont alatt, és válaszd a PHP Kódot.
Be kell írnom a PHP-kód szerkesztőbe <?php és ?>?
Nem. A szerkesztő már PHP-ként hajtja végre a megadott utasításokat. Közvetlenül írod be az utasításaidat, például print "Hello World";.
Mi történik, ha használom az exit; utasítást?
Az exit; leállítja a PHP végrehajtását ezen a ponton. Ezzel a további CMS-oldal-renderelési folyamat is leáll; a fejléc, oldaltartalom és lábléc továbbiakban nem kerülnek generálásra.
Mire használják a $LayoutHTML-t?
A $LayoutHTML a renderelési folyamat során tartalmazza az aktuálisan generált oldal HTML-kódját. PHP-val ebben a tartalmakat keresheted és például a str_replace()-al saját helyettesítőket cserélhetsz.
Hogyan illeszthetek dinamikus tartalmakat a HTML-embe?
A HTML-kódba például írd be __MyText__-t, és cseréld le ezt a helyettesítőt a PHP-kódban a $LayoutHTML-on belül használva a str_replace()-t.
Kombinálhatom a PHP-helyettesítőket az automatikus fordítással?
Igen. Használhatsz PHP-helyettesítőket és fordítási jelöléseket, mint például Szolgáltatásaink, együtt. A fordítás később, a renderelési folyamat során történik.
Miért érdemes az HTML-t és a PHP-t különválasztani?
Így a végfelhasználó később a normál szerkesztővel módosíthatja az HTML-elrendezést, míg a programlogika külön a PHP-területen marad.
Hogyan kerülhetem el a kétszer definiált PHP-funkciókat?
Használj egyedi funkciónévket. Ezen kívül egy function_exists() ellenőrzése előtt megnézheted, hogy egy funkció már létezik-e.
Használhatom a meglévő bluetronix PHP-funkciókat?
Igen. A PHP-kód területen a CMS-funkciók is rendelkezésre állnak, például a BlueSMTPMail() az e-mail küldéshez. A szükséges paramétereket megfelelően be kell állítanod.