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.
33 lines
617 B
33 lines
617 B
<?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; |
|
} |
|
}
|
|
|