html = '';
if ($this->content_type) {
header('Content-Type: ' . $this->content_type . ' ;charset=' . $this->charset);
header('Cache-Control:');
header('Pragma:');
$file_name = basename($_GET['q']);
header('Content-Disposition: attachment; filename="' . $file_name . '"');
header('Cache-Control: must-revalidate');
}
$this->print = $print;
}
public function loadCSSFiles($format) {
// Add css files
$css = '';
foreach (Frx::Skin()->stylesheets as $type => $sheets) {
foreach ($sheets as $sheet) {
switch ($type) {
case 'all':
case $format:
$css .= file_get_contents($sheet);
break;
}
}
}
return $css;
}
// All document objects must implement this method.
public function render($r, $format, $options = array()) {
$header = '
' . $r->title . '
';
$output = $header . $output;
$css_text = '';
$r_text = '';
$stylesheets = Frx::Skin()->stylesheets;
foreach ($stylesheets as $type => $sheets) {
foreach ($sheets as $sheet) {
switch ($type) {
case 'all':
case $this->format:
$css_file[] = $sheet;
break;
}
}
}
if ($css_files) foreach ($css_files as $css_file) {
$css_text .= file_get_contents($css_file);
}
$options = array('css' => $css_text,
'docname' => str_replace(' ', '_', $title),
'xml' => $r_text,
'title' => $title,
);
$output = $this->generate_doc($format, $output, $options, $print);
if ($format!='email') {
print $output;
}
}
public function output(&$output) {
print $output;
return TRUE;
}
/**
* Wrapper function for check output to default the right type.
* @param $output
*/
public function check_markup($output) {
return check_markup($output, variable_get('forena_input_format', 'none'));
}
public function convertCharset($data, $default_encoding='UTF-8') {
if (isset($_SERVER['HTTP_ACCEPT_CHARSET'])) {
$parts = @explode(';', $_SERVER['HTTP_ACCEPT_CHARSET']);
$parts = @explode(',', $parts[0]);
$to_encoding=@$parts[0];
}
else {
$to_encoding = $default_encoding;
}
if ($to_encoding!='UTF-8') {
$this->charset = $to_encoding;
$data = mb_convert_encoding($data, $to_encoding, 'UTF-8');
}
return $data;
}
}