function _forena_filter_process in Forena Reports 6
Same name and namespace in other branches
- 8 forena.module \_forena_filter_process()
- 6.2 forena.module \_forena_filter_process()
- 7.5 forena.module \_forena_filter_process()
- 7 forena.module \_forena_filter_process()
- 7.2 forena.module \_forena_filter_process()
- 7.3 forena.module \_forena_filter_process()
- 7.4 forena.module \_forena_filter_process()
Process tag replacement for xml filters
1 call to _forena_filter_process()
- forena_filter in ./
forena.module - Implememntation of hook_filter
File
- ./
forena.module, line 627
Code
function _forena_filter_process($text = '') {
require_once 'forena.admin.inc';
// initial Parameters
$in_parms = array();
$in_parms = array_merge((array) $_GET, (array) $parms);
// Find the instances of [xmlreport:view,
if (preg_match_all("/\\[report?:?([^\\]]+)\\]/i", $text, $match)) {
foreach ($match[1] as $idx => $value) {
$parms = array();
// Separate view from parmeters
list($report_name, $parmsStr) = explode(':', $value);
// Get any static parmeters
$pairs = split(',', $parmsStr);
if ($pairs) {
foreach ($pairs as $pair) {
list($key, $value) = explode('=', $pair);
$parms[$key] = $value;
}
}
$parms = array_merge($parms, $in_parms);
// Debug the result
$output = '';
$r = forena_get_report($report_name, $in_parms);
if ($r) {
$output .= $r
->render(null);
}
// Finally replace the parameters
$find[] = $match[0][$idx];
$replace[] = $output;
}
return str_replace($find, $replace, $text);
}
// If we didn't find anything return the text.
return $text;
}