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;
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc