Скачайте приложение и протестируйте бесплатно в течение 10 дней
Валюта Выберите язык Выбрать регион

Использование PHP-кода и $LayoutHTML в bluetronix CMS

С доступом разработчика вы можете самостоятельно редактировать PHP-код своих страниц CMS. В этом учебнике вы узнаете, как выполнять PHP-операторы, изменять HTML-контент через $LayoutHTML и использовать собственные функции, а также встроенные функции CMS.

Свой PHP-код в системе bluetronix CMS

С помощью доступа разработчика вы можете использовать собственный PHP-код внутри страницы CMS. При этом HTML-код страницы и ваш PHP-код работают вместе. Центральную роль играет переменная $LayoutHTML: она содержит HTML-код текущей генерируемой страницы в процессе рендеринга сайта. С помощью PHP вы можете искать, изменять и заменять в ней содержимое.

Для использования собственного PHP-кода вам нужен доступ разработчика к bluetronix CMS. Если у вас еще нет доступа разработчика, вы можете запросить его отдельно.

Открыть PHP-код страницы

Откройте нужную страницу PHP Code, чтобы отредактировать 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 отдельно

В системе bluetronix CMS вы можете отдельно управлять HTML Code и PHP Code страницы. Таким образом, структура 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 от bluetronix

В области 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, вам нужен доступ для разработчика к системе bluetronix CMS.

Где я могу найти PHP-код примера?

Откройте страницу примера в разделе Модули → PHP Пример и выберите PHP Код.

Должен ли я вводить <?php и ?> в редакторе PHP-кода?

Нет. Редактор уже выполняет заданные инструкции как PHP-код. Вы вводите свои инструкции напрямую, например, print "Hello World";.

Что произойдет, если я использую exit;?

exit; завершает выполнение PHP на этом месте. Это также останавливает дальнейший процесс рендеринга страницы CMS; заголовок, содержимое страницы и подвал больше не создаются.

Для чего используется $LayoutHTML?

$LayoutHTML содержит HTML-код текущей создаваемой страницы в процессе рендеринга. С помощью PHP вы можете находить в нем содержимое и, например, заменять свои плейсхолдеры с помощью str_replace().

Как вставить динамическое содержимое в ваше HTML?

Вставьте, например, __MyText__ в HTML-код и замените этот плейсхолдер в PHP-коде с помощью str_replace() внутри $LayoutHTML.

Могу ли я комбинировать PHP-плейсхолдеры с автоматическим переводом?

Да. Вы можете использовать PHP-плейсхолдеры и маркировку перевода, например, Our Services, совместно. Перевод будет выполнен позже в процессе рендеринга.

Почему стоит разделять HTML и PHP?

Так конечный пользователь сможет редактировать HTML-оформление позже с помощью обычного редактора, в то время как логика программы останется отдельно в PHP.

Как избежать многократного определения PHP-функций?

Используйте уникальные имена функций. Вы также можете дополнительно проверить, существует ли функция, с помощью function_exists() перед ее определением.

Могу ли я использовать существующие функции PHP bluetronix?

Да. В области PHP-кода также доступны функции CMS, например, BlueSMTPMail() для отправки электронной почты. Необходимые параметры вы должны установить соответствующим образом.

CMS