public function FrxInclude::render in Forena Reports 8
Default Render action, which simply does normal forena rendering. You can use renderDomNode at any time to generate the default forena rendering methods.
Return value
string text from the renderer.
Overrides RendererBase::render
File
- src/
FrxPlugin/ Renderer/ FrxInclude.php, line 19 - FrxInclude Include a reference to another report as an asset. @author davidmetzler
Class
- FrxInclude
- Include a reprot
Namespace
Drupal\forena\FrxPlugin\RendererCode
public function render() {
// Get data from source
$attributes = $this
->mergedAttributes();
$output = '';
// Determine data type
$include = @$attributes['src'];
$title = @$attributes['title'];
// Quit if we have no data.
if (!$include) {
return '';
}
// Reformat URL
@(list($url, $query_str) = @explode('?', $include));
$url = $this->report
->replace($url, TRUE);
$report_url = $url;
$parts = @explode('/', $url);
$file = @$parts[count($parts) - 1];
$parts = explode('.', $file);
// Determine file extention
$ext = count($parts) > 1 ? $parts[count($parts) - 1] : '';
$query = array();
if ($query_str) {
parse_str($query_str, $query);
foreach ($query as $key => $value) {
$query[$key] = $this->teng
->replace($value, TRUE);
}
}
// Build URL
$options = array(
'query' => $query,
);
$url = AppService::instance()
->url($url, $options);
//$url = url($url, $options);
$mode = isset($attributes['mode']) ? $attributes['mode'] : '';
switch ($mode) {
case 'ajax':
if (strpos($url, '/nojs/') === FALSE) {
if (!isset($attributes['id'])) {
$attributes['id'] = 'frx-include';
}
$id = @$attributes['id'];
$url .= "/nojs/{$id}/replace";
if (isset($attributes['class'])) {
$attributes['class'] .= ' use-ajax forena-autoload';
}
else {
$attributes['class'] = 'use-ajax forena-autoload';
}
}
$output = $this
->render_reference($url, $ext, $attributes, $title);
break;
case 'reference':
$output = $this
->render_reference($url, $ext, $attributes, $title);
break;
case 'inline':
default:
ReportManager::instance()
->reportInclude(str_replace('reports/', '', $report_url));
}
return $output;
}