استفاده از کد PHP و $LayoutHTML در سیستم مدیریت محتوا bluetronix
با یک دسترسی توسعهدهنده میتوانی کد PHP صفحات CMS خود را خودتان ویرایش کنید. در این آموزش میآموزید که چگونه دستورات PHP را اجرا کنید، محتوای HTML را از طریق $LayoutHTML تغییر دهید و از توابع خود و همچنین توابع یکپارچه CMS استفاده کنید.
کد PHP شخصی در CMS بلوترونیکس
با یک دسترسی توسعهدهنده میتوانی کد PHP شخصی را در یک صفحه CMS استفاده کنی. در این فرآیند، کد HTML صفحه و کد PHP تو با هم کار میکنند. متغیر $LayoutHTML نقش مرکزی را ایفا میکند: این متغیر در طول فرآیند رندرینگ سایت، کد HTML صفحهای که در حال حاضر ایجاد میشود را نگه میدارد. با PHP میتوانی درون آن محتوا را جستجو، تغییر و جایگزین کنی.
برای کد PHP شخصی به یک دسترسی توسعهدهنده به CMS بلوترونیکس نیاز داری. اگر هنوز دسترسی توسعهدهنده نداری، میتوانی آن را بهصورت مجزا درخواست کنی.
باز کردن کد PHP یک صفحه
در صفحه مورد نظر کد PHP را باز کن تا کد PHP صفحه را ویرایش کنی.
استفاده از تگهای اضافی PHP مجاز نیست
کد PHP توسط CMS در حال حاضر به عنوان کد PHP اجرا میشود. بنابراین، نباید در ویرایشگر کد PHP از تگهای اضافی PHP استفاده کنی. این نوع نوشتار در آنجا ضروری نیست:
<?php print "Hello World"; ?>
بهجای آن، دستور PHP خود را مستقیماً بنویس:
print "Hello World";
پایان اجرای PHP با exit
برای آزمایش میتوانی دستورات زیر را وارد کرده، ذخیره کنی و سپس صفحه را دوباره بارگذاری کنی:
print "Hello World";
exit();

در این مثال تنها Hello World نمایش داده میشود. با استفاده از exit(); اجرای PHP را در این نقطه متوقف میکنی.
با exit(); همچنین فرآیند رندرینگ CMS نیز متوقف میشود. هدر، محتوای اصلی صفحه، فوتر و مراحل پردازش بعدی دیگر انجام نمیشوند.
خروجی PHP در صفحه عادی
اگر exit(); را حذف کنی و تنها از دستور زیر استفاده کنی، فرآیند رندرینگ به طور عادی ادامه مییابد:
print "Hello World";

PHP اول Hello World را خروجی میدهد. سپس صفحه CMS واقعی ادامه خواهد داشت، از جمله هدر، محتوای صفحه و فوتر. اما برای تغییرات مستقیماً در صفحه HTML، بهتر است با $LayoutHTML کار کنی.
ویرایش HTML و PHP به طور جداگانه
در CMS بلوترونیکس میتوانی کد HTML و کد PHP یک صفحه را به طور جداگانه نگهداری کنی. به این ترتیب، ساختار HTML در ویرایشگر قابل ویرایش خواهد بود در حالی که منطق برنامهنویسی در بخش PHP قرار میگیرد.
تعریف جایگزینهای شخصی در HTML
در کد HTML یک جایگزین تعریف کن که کد PHP بعداً آن را جایگزین کند. یک مثال ساده به صورت زیر است:
__MyText__
برای جایگزینهای خود از نامهای انگلیسی استفاده کن، حتی در وبسایتهای فارسیزبان. این باعث میشود نامگذاری آنگونه بینالمللی و یکسان باشد.
دیگر نامهای ممکن عبارتند از:
__CustomerName__
__ProductPrice__
__CurrentDate__
جایگزینی جایگزینها با $LayoutHTML
با str_replace() میتوانی جایگزین را در کد HTML فعلی جستجو کرده و با محتوای مورد نظر خود جایگزین کنی:
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
CMS در $LayoutHTML به دنبال __MyText__ میگردد و جایگزین را با متن من عوض میکند.
ترکیب HTML و جایگزینها
میتوانی جایگزین را در داخل ساختار معمولی HTML خود استفاده کنی. به عنوان مثال، کد زیر را در بخش HTML وارد کن:
<h1>__MyText__</h1>
در بخش PHP جایگزینی را اضافه میکنی:
$LayoutHTML = str_replace("__MyText__","Meine Überschrift",$LayoutHTML);
در روند رندرینگ، نتیجه به صورت زیر خواهد بود:
<h1>Meine Überschrift</h1>
چندین جایگزین در یک بخش صفحه
این اصل در بخشهای بزرگتر HTML نیز کار میکند. به عنوان مثال، میتوانی عنوان و توضیحات را به صورت جداگانه به عنوان جایگزین تعریف کنی:
<section>
<div class="container">
<h2>__MyHeadline__</h2>
<p>__MyDescription__</p>
</div>
</section>
در کد PHP میتوانی هر دو محتوا را به صورت مستقل قرار دهی:
$LayoutHTML = str_replace("__MyHeadline__","Unsere Leistungen",$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__","Hier finden Sie eine Übersicht unserer Leistungen.",$LayoutHTML);
کد HTML نهایی سپس شامل متون استفاده شده به جای دو جایگزین خواهد بود:
<section>
<div class="container">
<h2>Unsere Leistungen</h2>
<p>Hier finden Sie eine Übersicht unserer Leistungen.</p>
</div>
</section>
فصل ساختار HTML و منطق PHP را تا حد ممکن جدا کنید
از نظر فنی، میتوانی ساختارهای کامل HTML را مستقیماً با PHP در $LayoutHTML وارد کنی:
$LayoutHTML = str_replace("__MyContent__","<h2>Meine Überschrift</h2><p>Mein Text</p>",$LayoutHTML);
اما برای محتوای بزرگتر منطقیتر است که HTML را به عنوان یک ساختار قابل ویرایش در بخش HTML نگه داری و با جایگزینها کار کنی. مثال برای کد HTML:
<section>
<h2>__MyHeadline__</h2>
<p>__MyText__</p>
</section>
کد PHP مربوطه فقط مقادیر مورد نیاز را جایگزین میکند:
$LayoutHTML = str_replace("__MyHeadline__","Meine Überschrift",$LayoutHTML);
$LayoutHTML = str_replace("__MyText__","Mein Text",$LayoutHTML);
این باعث میشود که مشتری نهایی از طریق ویرایشگر CMS عادی فاصلهها را تغییر دهد، عناوین را ویرایش کند، بخشهای HTML را جابهجا کند، طراحیها را تغییر دهد و بخشهای صفحات را ویرایش کند، بدون اینکه نیاز به تغییر در منطق برنامهنویسی PHP داشته باشد.
تعریف توابع PHP شخصی
در داخل کد PHP میتوانی توابع خود را ایجاد کنی. به عنوان مثال:
function MyExampleFunction() {
return "Hello World";
}
به یاد داشته باش که یک تابع در طول یک فراخوانی صفحه نباید چندین بار تعریف شود. این ممکن است زمانی رخ دهد که یک نام تابع به طور همزمان در صفحه اصلی، در هدر، در ماژول وارد شده، در یک بخش صفحه یا در فوتر وجود داشته باشد.
برای توابع PHP خود نامهای تا حد امکان واضح را انتخاب کن. یک تعریف تابع دوگانه در PHP منجر به خطا میشود.
یک نام تابع خاص پروژه میتواند به این شکل باشد:
function MyProjectCreateCustomerText() {
return "Customer";
}
پیش از تعریف تابع، وجود توابع موجود را بررسی کنید
به طور جایگزین میتوانی با استفاده از function_exists() بررسی کنی که آیا تابع مربوطه قبلاً تعریف شده است یا نه:
if(!function_exists("MyProjectCreateCustomerText")) {
function MyProjectCreateCustomerText() {
return "Customer";
}
}
استفاده از توابع PHP بلوترونیکس
در بخش کد PHP میتوانی از توابع PHP که توسط CMS bluetronix فراهم شدهاند نیز استفاده کنی. یکی از مثالها ارسال ایمیل از طریق سیستم SMTP bluetronix با BlueSMTPMail() است:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$ImageInMail,$MailPlaceholderReplacement,$FormEntry);
پارامترهای مورد نیاز را میتوانی در داخل کد PHP خود تنظیم کنی، به عنوان مثال:
$From = "info@example.com";
$To = "customer@example.com";
$Subject = "Test E-Mail";
$TextContent = "Hello World";
سپس میتوانی از تابع مرکزی برای ارسال ایمیل استفاده کنی. برای یک فراخوانی کامل، باید پارامترهای دیگر نیز به درستی تنظیم شوند. بنابراین نیازی به برنامهنویسی مجدد توابع اساسی CMS مانند ارسال SMTP نیست.
خلاصه
کد PHP شخصی مستقیماً توسط CMS bluetronix اجرا میشود؛ اضافه کردن تگهای PHP در ویرایشگر PHP Code ضروری نیست. $LayoutHTML شامل کد HTML صفحه فعلی تولید شده است و به تو اجازه میدهد تا جایگزینهای خود را با محتوای دینامیک جایگزین کنی.
سعی کن ساختار HTML خود را در بخش HTML ایجاد کنی و جایگزینها را از طریق PHP عوض کنی. به این ترتیب مشتری نهایی میتواند طرح را با ویرایشگر معمول CMS بعداً نیز ویرایش کند، در حالی که منطق برنامهنویسی جدا باقی میماند.
سوالات متداول
چه سوالاتی را مشتریان معمولاً از ما میپرسند
آیا برای کد PHP شخصی به دسترسی توسعهدهنده نیاز دارم؟
بله. برای استفاده از کد PHP شخصی در یک صفحه CMS، به دسترسی توسعهدهنده به CMS بلوترونیکس نیاز دارید.
کد PHP مثال را کجا پیدا کنم؟
صفحه مثال را در Modules → PHP Example باز کنید و PHP Code را انتخاب کنید.
آیا باید در ویرایشگر کد PHP <?php و ?> وارد کنم؟
خیر. ویرایشگر دستوراتی را که وارد کردهاید به عنوان کد PHP اجرا میکند. میتوانید دستورات خود را به صورت مستقیم بنویسید، به عنوان مثال print "Hello World";.
اگر از exit; استفاده کنم، چه اتفاقی میافتد؟
exit; اجرای PHP را در این نقطه متوقف میکند. بنابراین فرایند رندرینگ بعدی سایت CMS نیز متوقف میشود و هدر، محتوای صفحه و فوتر دیگر تولید نمیشوند.
$LayoutHTML برای چه چیزی استفاده میشود؟
$LayoutHTML در حین فرایند رندرینگ، کد HTML صفحه فعلی را شامل میشود. با PHP میتوانید در آن محتوا را جستجو کنید و به عنوان مثال با استفاده از str_replace()، جاهای خالی خود را جایگزین کنید.
چگونه میتوانم محتوای دینامیک را در HTML خود اضافه کنم؟
در کد HTML به عنوان مثال __MyText__ را قرار دهید و این جا جای خالی را در کد PHP با str_replace() درون $LayoutHTML جایگزین کنید.
آیا میتوانم جاهای خالی PHP را با ترجمه خودکار ترکیب کنم؟
بله. شما میتوانید جاهای خالی PHP و نشانههای ترجمه مانند Our Services را به طور مشترک استفاده کنید. ترجمه در حین فرآیند رندرینگ انجام میشود.
چرا باید HTML و PHP را از هم جدا نگهدارم؟
بنابراین مشتری نهایی میتواند طرح بندی HTML را با ویرایشگر عادی ویرایش کند، در حالی که منطق برنامهنویسی به صورت جداگانه در بخش PHP باقی میماند.
چگونه میتوانم از توابع PHP که دوباره تعریف شدهاند، جلوگیری کنم؟
از نامهای توابع منحصر به فرد استفاده کنید. میتوانید با function_exists() قبل از یک تعریف بررسی کنید که آیا تابعی از قبل وجود دارد یا خیر.
آیا میتوانم از توابع PHP موجود در bluetronix استفاده کنم؟
بله. توابع CMS نیز در بخش کد PHP در دسترس هستند، به عنوان مثال BlueSMTPMail() برای ارسال ایمیل. باید پارامترهای مورد نیاز را به درستی تنظیم کنید.