现在下载应用并免费测试10天
货币 选择语言 选择地区

在bluetronix CMS中自定义PHP代码

通过开发者访问,您可以在CMS页面中使用自定义PHP代码。页面的HTML代码和您的PHP代码将协同工作。变量$LayoutHTML起着中心作用:在站点渲染过程中,它包含当前生成页面的HTML代码。您可以使用PHP在其中查找、修改和替换内容。

要使用自定义PHP代码,您需要对bluetronix CMS的开发者访问。如果您还没有开发者访问,您可以单独申请。

打开页面的PHP代码

在所需页面上打开PHP代码以编辑页面的PHP代码。

不使用额外的PHP标签

CMS已经将PHP代码作为PHP代码执行。因此,您不能在PHP代码编辑器中使用额外的PHP标签。以下书写方式在这里是不必要的:

<?php print "Hello World"; ?>

请直接输入您的PHP指令:

print "Hello World";

通过exit结束PHP执行

进行测试时,您可以输入以下指令,保存,然后重新加载页面:

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代码和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逻辑

从技术上讲,你可以直接在$LayoutHTML中用PHP插入完整的HTML结构:

$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";
   }
}

使用bluetronix PHP函数

在PHP代码区域,你还可以使用bluetonix CMS提供的PHP函数。一个例子是通过bluetonix SMTP系统发送电子邮件的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代码由bluetronix CMS直接执行;在PHP代码编辑器中不需要额外的PHP标签。$LayoutHTML包含当前生成页面的HTML代码,并允许你用动态内容替换自定义占位符。

尽量在HTML区域中构建你的HTML结构,并通过PHP替换占位符。这样最终用户可以在正常的CMS编辑器中继续编辑布局,同时程序逻辑保持分离。

常见问题

客户常问我们的问题

我需要开发者访问权限来使用自己的PHP代码吗?

是的。要在CMS页面中使用自己的PHP代码,你需要访问bluetronix CMS的开发者权限。

我在哪里可以找到示例的PHP代码?

在模块 → PHP示例下打开示例页面,并选择PHP代码。

在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()检查函数是否已存在。

我可以使用现有的bluetronix PHP函数吗?

可以。在PHP代码区域中也有CMS函数可用,例如用于发送邮件的BlueSMTPMail()。所需的参数需要相应设置。

CMS