You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Created by Error202
|
|
|
|
* Date: 08.08.2018
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace common\behaviors;
|
|
|
|
|
|
|
|
use yii\helpers\Html;
|
|
|
|
use yii\base\Behavior;
|
|
|
|
|
|
|
|
class WidgetContentBehavior extends Behavior
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Parse Widgets #?= ... ?#
|
|
|
|
*
|
|
|
|
* @param $text
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function content($text): string
|
|
|
|
{
|
|
|
|
$content = preg_replace_callback('/\[\?= (.*)\((.*)\) \?\]/m', function ($m) {
|
|
|
|
$array = [];
|
|
|
|
$string = Html::decode($m[2]);
|
|
|
|
eval("\$array = $string;");
|
|
|
|
|
|
|
|
return $m[1]($array);
|
|
|
|
}, $text);
|
|
|
|
|
|
|
|
return $content;
|
|
|
|
}
|
|
|
|
}
|