ganti / php-template-blocks

此包的最新版本(dev-master)没有可用的许可证信息。

简单的模板引擎,例如编译电子邮件

dev-master 2019-10-16 21:01 UTC

This package is auto-updated.

Last update: 2024-09-17 07:16:54 UTC


README

简单的模板类,例如用于电子邮件模板

功能

  • 变量的替换/替换
  • 使用条件 OR 或 AND 显示/隐藏内容块
  • 使用一个模板文件输出文本为 HTML 或文本

用法

安装

composer require ganti/php-template-blocks

示例

<p> Hallo {{name}}</p>

{{block:block1}}
  <p>This is block1, shown in HTML and text</p>
{{endblock:block1}}

{{block:block1_html}}
  <p>This is block1, shown only in HTML</p>
{{endblock:block1_html}}

{{block:block1_text}}
  <p>This is block1_text, shown only in text</p>
{{endblock:block1_text}}

{{block:and,block1,block2,block3}}
  <p>This is Block1,2and3, shown only if block1, block2 and block3 are true</p>
{{endblock:and,block1,block2,block3}}

{{block:and,block2_text,block3}}
  <p>This is Block2or3_text, shown only in text if block2 and block3 are true</p>
{{endblock:or,block2_text,block3}}
    $file = __DIR__.'/example.html';
    $vars = array(  'name' => 'Hal',
                    'var2' => 'Foo',
                    'var3' => 'Foobar'
    );
    $blocks = array('block1' => True,
                    'block2' => False,
                    'block3' => True
    );

    $t = new phpTemplateBlocks($file = $file, $vars = $vars, $blocks = $blocks);
    $output =  $t->getOutput();
    echo $output;

输出为 HTML 或文本

$t->getOutput();        //Output as HTML
$t->getOutput('html');  //Output as HTML
$t->getOutputHTML();    //Output as HTML

$t->getOutput('text');  //Output as text
$t->getOutputText();    //Output as text

在创建实例后添加变量和块

$mt = new phpTemplateBlocks($file = $file);
$mt->vars['var1'] = 'var1xxx';
$mt->blocks['block1'] = True;

变量替换

模板: This is a {{animal}}.

$t = new phpTemplateBlocks($file = $file);
$t->vars['animal'] = 'dog';

输出

This is a dog.

显示/隐藏块

模板

{{block:block1}}
    <p>This is block1</p>
{{endblock:block1}}
$t = new phpTemplateBlocks($file = $file);
$t->blocks['block1'] = True;

输出

    <p>This is block1</p>

组合块

组合块允许在任一键为 true 时显示一个块

模板

{{block:block2,block3}}
    <p>This is Block2or3</p>
{{endblock:block2,block3}}
$mt = new mailTemplate($file = $file);
$mt->blocks['block2'] = False;
$mt->blocks['block3'] = True;

输出

    <p>This is Block2or3</p>

条件 OR(默认)

{{block:or,block2,block3}}
  <p>This is Block2or3, shown only in text if block2 or block3 are true</p>
{{endblock:or,block2,block3}}

条件 AND

{{block:and,block2_text,block3}}
  <p>This is Block2and3_text, shown only in text if block2 and block3 are true</p>
{{endblock:and,block2_text,block3}}