30 lines
737 B
PHP
30 lines
737 B
PHP
|
<?php
|
||
|
namespace nur\data\template;
|
||
|
|
||
|
use nur\base;
|
||
|
use nur\data\expr\GenericExpr;
|
||
|
use nur\data\expr\IContext;
|
||
|
|
||
|
trait TTemplate {
|
||
|
/** @var IContext */
|
||
|
protected $context;
|
||
|
|
||
|
function getContext(): IContext {
|
||
|
return $this->context;
|
||
|
}
|
||
|
|
||
|
function setContext(IContext $context): void {
|
||
|
$this->context = $context;
|
||
|
}
|
||
|
|
||
|
function applyRules(string $text, IContext $context) {
|
||
|
foreach ($this->EXPRS() as $name => $expr) {
|
||
|
$value = GenericExpr::with($expr, $name)->eval($context);
|
||
|
if (!base::is_undef($value)) $text = str_replace($name, $value, $text);
|
||
|
}
|
||
|
#XXX ajouter le support des expressions conditionnelles. traiter ligne par
|
||
|
# ligne s'il y a des expressions conditionnelles
|
||
|
return $text;
|
||
|
}
|
||
|
}
|