public function Report::set_value in Forena Reports 8
Same name and namespace in other branches
- 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
Namespace
Drupal\forenaCode
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;
}
}
}
}