You are here

public function Report::set_value in Forena Reports 8

Same name and namespace in other branches
  1. 7.5 src/Report.php \Drupal\forena\Report::set_value()

Set the value of an element within the report

Parameters

String $xpath Xpath to element being saved:

string $value Value to be saved.:

File

src/Report.php, line 531
Basic report provider. Controls the rendering of the report.

Class

Report

Namespace

Drupal\forena

Code

public function set_value($xpath, $value) {
  $xml = $this->rpt_xml;
  $i = strrpos($xpath, '/');
  $path = substr($xpath, 0, $i);
  $key = substr($xpath, $i + 1);
  $nodes = $xml
    ->xpath($path);
  if ($nodes) {

    // if the last part of the xpath is a key then assume the key
    if (strpos($key, '@') === 0) {
      $key = trim($key, '@');
      if (is_null($value)) {
        unset($nodes[0][$key]);
      }
      else {
        $nodes[0][$key] = $value;
      }
    }
    else {
      if (is_null($value)) {
        unset($nodes[0]->{$key});
      }
      else {
        $nodes[0]->{$key} = $value;
      }
    }
  }
}