今すぐアプリをダウンロードして10日間無料で試す
通貨 言語を選択 地域を選択

bluetronix CMS内の独自PHPコード

開発者アクセスを使用すると、CMSページ内で独自のPHPコードを使用できます。この際、ページのHTMLコードと自分のPHPコードが連携します。中心となるのは変数$LayoutHTMLで、サイトレンダリングプロセス中に現在生成されているページのHTMLコードを含みます。PHPを使用して、その中でコンテンツを検索、変更、置換できます。

独自のPHPコードを使用するには、bluetronix CMSへの開発者アクセスが必要です。まだ開発者アクセスを持っていない場合は、別途申請できます。

ページのPHPコードを開く

希望するページでPHPコードを開いて、ページのPHPコードを編集します。

追加のPHPタグを使用しない

PHPコードはCMSによってすでに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を分けて編集する

bluetonix 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__を検索し、プレースホルダーをMein Textに置き換えます。

HTMLとプレースホルダーを組み合わせる

プレースホルダーは、通常のHTML構造内で使用できます。例えば、HTMLセクションに次のコードを記入します:

<h1>__MyText__</h1>

PHPセクションでは置き換えを追加します:

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

レンダリングプロセス中に、次のように生成されます:

<h1>Meine Überschrift</h1>

1つのページセクションに複数のプレースホルダー

同じ原理は、より広範な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ロジックをできるだけ分ける

技術的には、PHPを使用して完全なHTML構造を直接$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";
   }
}

bluetronix PHP関数を使用する

PHPコードセクションでは、bluetronix CMSによって提供されているPHP関数も使用できます。例として、BlueSMTPMail()を使用したbluetronix SMTPシステムによるEメール送信があります:

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

その後、Eメール送信のための中心的な関数を使用できます。完全な呼び出しには、他の必要なパラメータも適切に設定する必要があります。このようにして、基本的なCMS機能であるSMTP送信を再度プログラムする必要はありません。

要約

独自のPHPコードはbluetronix CMSによって直接実行されます。追加のPHPタグはPHPコードエディタには不要です。$LayoutHTMLには、現在生成されているページのHTMLコードが含まれており、独自のプレースホルダーを動的コンテンツに置き換えることができます。

HTML構造は可能な限りHTMLエリアで作成し、PHPでプレースホルダーを置き換えてください。これにより、最終顧客は通常のCMSエディターでレイアウトを引き続き編集でき、プログラムロジックは分離されたままになります。

FAQ

お客様からよくある質問

独自の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コード内で$LayoutHTMLの中でstr_replace()を使って置き換えます。

PHPプレースホルダーを自動翻訳と組み合わせることはできますか?

はい。PHPプレースホルダーとOur Servicesのような翻訳マークを一緒に使用できます。翻訳は後でレンダリングプロセス中に行われます。

なぜHTMLとPHPを分けておくべきですか?

そうすることで、最終顧客は通常のエディターでHTMLレイアウトをあとで編集でき、プログラムロジックはPHPエリアに別れて留まります。

二重定義されたPHP関数をどう避ければいいですか?

一意の関数名を使用してください。さらに、function_exists()を使用して、関数がすでに存在するかを確認することができます。

既存のbluetronix PHP関数を使用できますか?

はい。PHPコードエリアではCMS関数も利用可能で、たとえばBlueSMTPMail()を使用してメールを送信できます。必要なパラメーターを適切に設定する必要があります。

CMS