Source for file fop_exec.php
Documentation is available at fop_exec.php
* Questo file gestisce i diritti e la sicurezza per l'esecuzione di Apache FOP.
* @desc Esegue Apache FOP
* @author M.Marcello Verona
* @copyright 2007 M.Marcello Verona
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
* @todo Mettere le estensioni possibili di FOP nelle variabili di ambiente, Verificare l'apertura dei report query_based
require ("../inc/conn.php");
* Funzione che lancia l'eseguibile FOP e manda a video il file generato.
* Il parametro $debug se impostato TRUE, mostra il codice di ritorno della shell e non manda in stream il file
* @param string $input_fo Eventuale file FO (non usato)
* @param string $input_xml File di input XML
* @param string $input_xsl File di input XSL
* @param string $output_file Nome per il file di output
* @param string $tipo Tipo di file da generare (default: pdf)
* @param bool $debug Parametro di debug: se attivo non viene generato il file ma l'output di FOP
function fop_exec($input_fo= '',$input_xml= '',$input_xsl= '',$output_file= '',$tipo= 'pdf',$debug= false){
die("FOP non attivato!<br />Modificare il file di configurazione per utilizzare l'eseguibile FOP");
if($input_fo== '' && ($input_xml== '' && $input_xsl== '')){
die("Files input non specificati");
die("File fop inesistente");
die("File fop non eseguibile");
. " -$tipo ". $output_file;
die('Tipo di output non supportato');
header("Content-type: application/$tipo");
header ("Content-Disposition: inline; filename=". $pezzi[(count($pezzi)- 1)]);
$tabella = preg_replace("'[^a-z0-9_]'i","",$_GET['action']);
// SICUREZZA ---------------------------------------------
//Cerca le regole in DB// cerca i diritti
$q= vmsql_query("SELECT * FROM {$db1['frontend']}.xml_rules WHERE tabella='$tabella' ORDER BY lastData DESC LIMIT 1",$link);
echo "<h1>Accesso vietato</h1>\n"; exit;
if($RS_rules['xslfo']== '-1'){
echo "<h1>File non previsto</h1>\n"; exit;
if($RS_rules['accesso']== 'PUBLIC'){
// non fa niente e continua con lo script
elseif($RS_rules['accesso']== 'FRONTEND'){
elseif($RS_rules['accesso']== 'GROUP'){
$gruppi= explode(",",$RS_rules['accesso_gruppo']);
echo "<h1>Accesso vietato</h1>\n"; exit;
else{ // RESTRICT o altro...
echo "<h1>Accesso vietato</h1>\n"; exit;
// ---------------------------------------------------------
else if(isset ($_GET['id'])){
copy($file_xml_web,$file_xml);
if($RS_rules['xslfo']== ''){
$types= array('pdf','rtf','ps','txt','tiff','png','pcl','apf','svg');
$TYPE_DOC= $tipo_richiesto;
fop_exec('',$file_xml,$file_xsl,$file_output,$TYPE_DOC ,false);
|