#!/usr/bin/php -q
<?php
error_reporting(-1);
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
ini_set('log_errors', true);
ini_set('error_log', '/var/log/wprotect/direct_print_ticket.log');

include_once ('/var/www/admin/lib/Sigma.php');

function generate_filename() {
	return rand(1000, 9999);
}

function logme ($data) {
	file_put_contents("/var/log/wprotect/direct_print_ticket.log", $data."\n", FILE_APPEND | LOCK_EX);
}

if (!isset($argv[1])) {
	logme("ERROR : id not set");
	exit();
}
$id_to_print=$argv[1];

$config=array();
$reader = new XMLReader(); 
$reader->open("/etc/wprotect/wprotect.conf"); 
while ($reader->read()) { 
    switch ($reader->nodeType)  { 
        case (XMLREADER::ELEMENT): 
			if ($reader->name == "config_mysql_host") { $reader->read(); $config['config_mysql_host'] = trim( $reader->value ); break; }
			if ($reader->name == "config_mysql_user") { $reader->read(); $config['config_mysql_user'] = trim( $reader->value ); break; }
			if ($reader->name == "config_mysql_password") { $reader->read(); $config['config_mysql_password'] = trim( $reader->value ); break; }
			if ($reader->name == "config_mysql_db") { $reader->read(); $config['config_mysql_db'] = trim( $reader->value ); break; }
			if ($reader->name == "theme") { $reader->read(); $config['theme'] = trim( $reader->value ); break; }
    }
}
$reader->close();
unset ($reader);
$link_iptrack = mysqli_connect($config['config_mysql_host'], $config['config_mysql_user'], $config['config_mysql_password'], $config['config_mysql_db']);
mysqli_set_charset($link_iptrack, "utf8");

$gen_filename=generate_filename().".pdf";

ob_start();

$tpl_print_login = new HTML_Template_Sigma("/var/www/admin/themes/default");
$tpl_print_login->loadTemplateFile("print_login_ticket.tpl");
$tpl_print_login->setGlobalVariable(array('TEMPLATE_NAME' => "default"));


	$query = "SELECT *, network.name AS net_name FROM login LEFT JOIN network ON login.network=network.id WHERE id_login='".$id_to_print."'";
	if ($result = mysqli_query($link_iptrack, $query)) {
		$val = mysqli_fetch_array ($result);
		if (!isset($val['id_login'])) {
			logme("ERROR : id ".$id_to_print. "not found");
			exit();
		}
		$tpl_print_login->setCurrentBlock('print_login');
		$tpl_print_login->TouchBlock('debcol');
		if ($val['clogin']==0) $clogin="illimité"; else $clogin=$val['clogin'];
		if ($val['expire_date']=="0000-00-00 00:00:00") {
			$expire_date="illimité";
			$expire_petit_date="illimité";
			$expire_heure="";
		}
		else {
			$expire_heure=date("H \H i", strtotime($val['expire_date']));
			$expire_date=strftime("%A %d %B %Y", strtotime($val['expire_date']));
			$expire_petit_date=date("d-M-Y H:i", strtotime($val['expire_date']));
		}
		if ($val['language'] != "fr") {
			$tpl_print_login->TouchBlock('lang_en');
			$tpl_print_login->HideBlock('lang_fr');
		}
		else {
			$tpl_print_login->TouchBlock('lang_fr');
			$tpl_print_login->HideBlock('lang_en');
		}
		$tpl_print_login->setVariable(array(
					'NETWORK_NAME' => $val['net_name'],
					'PRINT_LOGIN' => $val['login'],
					'PRINT_PASSWORD' => $val['password'],
					'PRINT_CLOGIN' => $clogin,
					'PRINT_DATE_EXPIRE' => $expire_date,
					'PRINT_DATE' => $expire_petit_date,
					'PRINT_HEURE_EXPIRE' => $expire_heure
				));
		$tpl_print_login->TouchBlock('endcol');
		$tpl_print_login->parseCurrentBlock();
	}
	else { // no mysql result so somethings wrong
		exit();
	}
$tpl_print_login->show();
$contents = ob_get_contents();
ob_end_clean();
$contents=str_replace("/fileman/Uploads/", "/var/www/admin/fileman/Uploads/", $contents);
//file_put_contents('/opt/wprotect/tmp/'.$gen_filename.'.txt', $contents);
require '/opt/wprotect/dompdf/vendor/autoload.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->getOptions()->set('chroot', '/');
$dompdf->getOptions()->set('dpi', 72);
$dompdf->load_html($contents);
$customPaper = array(0,0,400,1600);
$dompdf->set_paper($customPaper);
$dompdf->render();
$output = $dompdf->output();
file_put_contents('/opt/wprotect/tmp/'.$gen_filename, $output);
passthru("lp -o fit-to-page -o media=RP80x297 /opt/wprotect/tmp/".$gen_filename."");
unlink("/opt/wprotect/tmp/".$gen_filename);
?>