You are here

abstract class AjaxCommandBase in Forena Reports 8

Same name and namespace in other branches
  1. 7.4 AjaxCommand/AjaxCommandBase.php \Drupal\forena\FrxPlugin\AjaxCommand\AjaxCommandBase

Hierarchy

Expanded class hierarchy of AjaxCommandBase

File

src/FrxPlugin/AjaxCommand/AjaxCommandBase.php, line 14

Namespace

Drupal\forena\FrxPlugin\AjaxCommand
View source
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
   */
  public static function replacer() {
    if (static::$replacer === NULL) {
      static::$replacer = new ReportReplacer();
    }
    return static::$replacer;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AjaxCommandBase::$replacer protected static property
AjaxCommandBase::getJSONText public function Get json text.
AjaxCommandBase::getSetting public function
AjaxCommandBase::replacer public static function Report Replacer.
AjaxCommandInterface::commandFromSettings public function Settings are passed into this factory from either the skin or the report element. If there are complex structures when used in the arguments they will be passed in the 'text' setting. These should be decoded by any plugin intending to use… 19