forena-8.x-1.x-dev/src/FrxPlugin/AjaxCommand/AjaxCommandBase.php
src/FrxPlugin/AjaxCommand/AjaxCommandBase.php
<?php
/**
* Created by PhpStorm.
* User: metzlerd
* Date: 4/17/16
* Time: 8:34 AM
*/
namespace Drupal\forena\FrxPlugin\AjaxCommand;
use Drupal\forena\Token\ReportReplacer;
abstract class AjaxCommandBase implements AjaxCommandInterface {
protected static $replacer;
/**
* @param $settings
* @param $key
* @return array
* The settings in the array
*/
public function getSetting(&$settings, $key) {
$value = NULL;
if (isset($settings[$key])) {
$value = $settings[$key];
unset($settings[$key]);
}
static::replacer()->replaceNested($value);
return $value;
}
/**
* Get json text.
* @param array $settings
* @param string $default_key
* The key to look for if the text
* @return
*
*/
public function getJSONText(&$settings, $default_key='') {
$data = [];
if ($default_key && isset($settings[$default_key])) {
$data = $settings[$default_key];
unset($settings[$default_key]);
}
if (!empty($settings['text'])) {
$data = $settings['text'];
unset($settings['text']);
}
if (!is_array($data) || !is_object($data)) {
$data = @json_decode($data);
if (!$data) $data = [];
}
static::replacer()->replaceNested($data);
return $data;
}
/**
* Report Replacer.
* @return ReportReplacer
*/
static public function replacer() {
if (static::$replacer === NULL) {
static::$replacer = new ReportReplacer();
}
return static::$replacer;
}
}