Subversion Repositories ALCASAR

Compare Revisions

No changes between revisions

Ignore whitespace Rev 912 → Rev 913

/web/intercept.php
24,6 → 24,7
* GLOBAL FILE PATHS *
*****************************************************************/
define ("CONF_FILE", "/usr/local/etc/alcasar.conf");
define ("DOMAIN_ALLOWED_LIST", "/usr/local/etc/alcasar-uamdomain");
 
/****************************************************************
* FILE TEST *
36,6 → 37,16
exit("Vous n'avez pas les droits de lecture sur le fichier ".CONF_FILE);
}
 
//Test de présence de domaine ou IP accessibles sans authentificaion
$conf_files=array(DOMAIN_ALLOWED_LIST);
foreach ($conf_files as $file){
if (!file_exists($file)){
exit("Fichier ".$file." non présent");
}
if (!is_readable($file)){
exit("Vous n'avez pas les droits de lecture sur le fichier ".$file);
}
}
/****************************************************************
* Read CONF_FILE *
*****************************************************************/
57,7 → 68,7
$organisme = $conf["ORGANISM"];
 
# Shared secret used to encrypt challenge with radius.
$uamsecret = "";
$uamsecret = "ZHoGm7No";
 
# URL loaded after success authenticates (let blank for browser defaults)
$adminurl = "";
68,6 → 79,10
$statuspath = $alcasarpath."/status.php";
$debug = false;
 
# Domain and url allowed without authentication
$domain_allowed_list="/usr/local/etc/alcasar-uamdomain";
$url_allowed_list="/usr/local/etc/alcasar-uamallowed";
 
# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
104,7 → 119,39
$l_reply_6 = "Your authorized connexion time has been reached";
$l_online_time = "Tiempo en linea";
$l_remaining_time = "Tiempo restante";
}
$l_uam_domain = "acceso directo : ";}
else if ($Language == 'pt'){
$l_ChilliError = "A autenticação deve ser bem sucedido através do serviço de portal cativo.";
$l_login = "Sucesso na autenticação.<HR>Não feche essa janela para não interromper a conexão";
$l_logout = "Fechando a conexão";
$l_loginfailed = "Falha na autenticação";
$l_loggingin = "Identificação do portal cativo";
$l_loggedcont = "Access Control";
$l_loggedout = "Sua conexão foi fechada";
$l_user = "Usuário";
$l_password = "Senha";
$l_wait = "Por favor, aguarde um momento ...";
$l_onlinetime = "Tempo de conexão:";
$l_remainingtime = "Desconectado em:";
$l_encrypted = "A conexão com o portal deve ser criptografada";
$l_boutonO = "Autenticação";
$l_boutonF = "Fechar";
$l_loggedin_stringl1 = "Sistema de Segurança da Informação";
$l_loggedin_stringl2 = "Esse controle foi criado para seguir dentro dos regulamentos vingentes da lei";
$l_loggedin_stringl3 = "Por isto suas atividades na rede serão registradas de acordo com seus acessos, mas garantindo ainda sua privacidade.";
$l_loggedin_stringl4 = "Os dados gravados só serão capaz de ser operado por uma autoridade judicial no decorrer de uma investigação.";
$l_loggedin_stringl5 = "Esses dados serão automaticamente excluídos depois de um ano.";
$l_loggedin_stringl6 = "Clique <a href='$alcasarpath'>aqui</a> para alterar sua senha Sair do portal cativo.";
$l_loggedout_string = "desconexão do portal cativo fez";
$l_reply_1 = "Your daily connexion time has been reached";
$l_reply_2 = "Seu tempo de conexão mensal foi finalizado";
$l_reply_3 = "Você tenta conectar-se fora do seu período de tempo permitido";
$l_reply_4 = "Sua conta expirou";
$l_reply_5 = "Você atingiu o número máximo de logins simultâneos";
$l_reply_6 = "Seu tempo de conexão autorizada finalizou";
$l_online_time = "Tempo Online";
$l_remaining_time = "Tempo restante";
$l_uam_domain = "acesso directo : ";}
else if($Language == 'de'){
$l_ChilliError = "Die Authentifizierung ist erfolgreich durch die Nutzung des Portals erfolgt.";
$l_login = "Erfolgreiche Authentifizierung.<HR>Schlißen dieses fensters unterbricht die sitzung";
136,7 → 183,7
$l_reply_6 = "Your authorized connexion time has been reached";
$l_online_time = "Online-zeit";
$l_remaining_time = "Restzeit";
}
$l_uam_domain = "accès direkten : ";}
else if($Language == 'nl'){
$l_ChilliError = "De authenticatie moet een succes worden via de captive portal dienst.";
$l_login = "Succesvolle authenticatie.<HR>Dit venster te sluiten onderbreekt uw sessie.";
168,7 → 215,7
$l_reply_6 = "Your authorized connexion time has been reached";
$l_online_time = "Online tijd";
$l_remaining_time = "Reterende tijd";
}
$l_uam_domain = "Direct access : ";}
else if($Language == 'fr'){
$l_ChilliError = "L'authentification doit &ecirc;tre r&eacute;ussie au travers du service du portail captif.";
$l_login = "Authentification r&eacute;ussie.<HR>La fermeture de cette fenêtre interrompt votre session.";
200,7 → 247,7
$l_reply_6 = "Votre dur&eacute;e de connexion autoris&eacute;e a &eacute;t&eacute; atteinte";
$l_online_time = "Temps de connexion";
$l_remaining_time = "Temps restant";
}
$l_uam_domain = "Acc&egrave;s dirrect : ";}
else{
$l_ChilliError = "The authentication must be successful through the captive portal service.";
$l_login = "Successful authentication.<HR>Closing this window interrupts your session";
223,7 → 270,7
$l_loggedin_stringl4 = "The recorded data can be able to be operated by a judicial authority in the course of an investigation.";
$l_loggedin_stringl5 = "These data will be automatically deleted after one year.";
$l_loggedin_stringl6 = "Click <a href='$alcasarpath'>here</a> to change your password or to integrate the security certificate in your browser";
$l_loggedout_string = "Logout made captive portal!";
$l_loggedout_string = "Disconnection of the captive portal made";
$l_reply_1 = "Your daily connexion time has been reached";
$l_reply_2 = "Your monthly connexion time has been reached";
$l_reply_3 = "You try to connect outside of your allowed timespan";
232,7 → 279,7
$l_reply_6 = "Your authorized connexion time has been reached";
$l_online_time = "Online time";
$l_remaining_time = "Remaining time";
}
$l_uam_domain = "Direct access : ";}
 
# If https not use, tell it's wrong
if (!(isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS'] == 'on'))) {
439,7 → 486,31
</ul>
</td>
</tr>
</table>
</table>";
 
// Read the "Domain alowed" file
$tab=file(DOMAIN_ALLOWED_LIST);
if ($tab) # the file isn't empty
{
echo "<div id=\"authorized_domain\"><li>$l_uam_domain</li>";
foreach ($tab as $line)
{
if (trim($line) != '') # the line isn't empty
{
$domain_allowed=explode("#", $line);
$uamdomain=trim($domain_allowed[0],"#");
$domain=explode("\"", $uamdomain);
if ((isset($domain_allowed[1])) && (trim($domain_allowed[1]) != '')){
echo "<li><a href=\"http://".trim($domain[1])."\">".trim($domain_allowed[1])."</a></li>";
}
else echo"<li><a href=\"http://".trim($domain[1])."\">".trim($domain[1])."</a></li>";
}
}
echo "</div>";
}
 
echo "
</form>
</div>
</center>
/web/images/footer_fpdf.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/web/acc/lib/fpdf17/license.txt
0,0 → 1,6
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software to use, copy, modify, distribute, sublicense, and/or sell
copies of the software, and to permit persons to whom the software is furnished
to do so.
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/web/acc/lib/fpdf17/fpdf.php
0,0 → 1,1804
<?php
/*******************************************************************************
* FPDF *
* *
* Version: 1.7 *
* Date: 2011-06-18 *
* Author: Olivier PLATHEY *
*******************************************************************************/
 
define('FPDF_VERSION','1.7');
 
class FPDF
{
var $page; // current page number
var $n; // current object number
var $offsets; // array of object offsets
var $buffer; // buffer holding in-memory PDF
var $pages; // array containing pages
var $state; // current document state
var $compress; // compression flag
var $k; // scale factor (number of points in user unit)
var $DefOrientation; // default orientation
var $CurOrientation; // current orientation
var $StdPageSizes; // standard page sizes
var $DefPageSize; // default page size
var $CurPageSize; // current page size
var $PageSizes; // used for pages with non default sizes or orientations
var $wPt, $hPt; // dimensions of current page in points
var $w, $h; // dimensions of current page in user unit
var $lMargin; // left margin
var $tMargin; // top margin
var $rMargin; // right margin
var $bMargin; // page break margin
var $cMargin; // cell margin
var $x, $y; // current position in user unit
var $lasth; // height of last printed cell
var $LineWidth; // line width in user unit
var $fontpath; // path containing fonts
var $CoreFonts; // array of core font names
var $fonts; // array of used fonts
var $FontFiles; // array of font files
var $diffs; // array of encoding differences
var $FontFamily; // current font family
var $FontStyle; // current font style
var $underline; // underlining flag
var $CurrentFont; // current font info
var $FontSizePt; // current font size in points
var $FontSize; // current font size in user unit
var $DrawColor; // commands for drawing color
var $FillColor; // commands for filling color
var $TextColor; // commands for text color
var $ColorFlag; // indicates whether fill and text colors are different
var $ws; // word spacing
var $images; // array of used images
var $PageLinks; // array of links in pages
var $links; // array of internal links
var $AutoPageBreak; // automatic page breaking
var $PageBreakTrigger; // threshold used to trigger page breaks
var $InHeader; // flag set when processing header
var $InFooter; // flag set when processing footer
var $ZoomMode; // zoom display mode
var $LayoutMode; // layout display mode
var $title; // title
var $subject; // subject
var $author; // author
var $keywords; // keywords
var $creator; // creator
var $AliasNbPages; // alias for total number of pages
var $PDFVersion; // PDF version number
 
/*******************************************************************************
* *
* Public methods *
* *
*******************************************************************************/
function FPDF($orientation='P', $unit='mm', $size='A4')
{
// Some checks
$this->_dochecks();
// Initialization of properties
$this->page = 0;
$this->n = 2;
$this->buffer = '';
$this->pages = array();
$this->PageSizes = array();
$this->state = 0;
$this->fonts = array();
$this->FontFiles = array();
$this->diffs = array();
$this->images = array();
$this->links = array();
$this->InHeader = false;
$this->InFooter = false;
$this->lasth = 0;
$this->FontFamily = '';
$this->FontStyle = '';
$this->FontSizePt = 12;
$this->underline = false;
$this->DrawColor = '0 G';
$this->FillColor = '0 g';
$this->TextColor = '0 g';
$this->ColorFlag = false;
$this->ws = 0;
// Font path
if(defined('FPDF_FONTPATH'))
{
$this->fontpath = FPDF_FONTPATH;
if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
$this->fontpath .= '/';
}
elseif(is_dir(dirname(__FILE__).'/font'))
$this->fontpath = dirname(__FILE__).'/font/';
else
$this->fontpath = '';
// Core fonts
$this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');
// Scale factor
if($unit=='pt')
$this->k = 1;
elseif($unit=='mm')
$this->k = 72/25.4;
elseif($unit=='cm')
$this->k = 72/2.54;
elseif($unit=='in')
$this->k = 72;
else
$this->Error('Incorrect unit: '.$unit);
// Page sizes
$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),
'letter'=>array(612,792), 'legal'=>array(612,1008));
$size = $this->_getpagesize($size);
$this->DefPageSize = $size;
$this->CurPageSize = $size;
// Page orientation
$orientation = strtolower($orientation);
if($orientation=='p' || $orientation=='portrait')
{
$this->DefOrientation = 'P';
$this->w = $size[0];
$this->h = $size[1];
}
elseif($orientation=='l' || $orientation=='landscape')
{
$this->DefOrientation = 'L';
$this->w = $size[1];
$this->h = $size[0];
}
else
$this->Error('Incorrect orientation: '.$orientation);
$this->CurOrientation = $this->DefOrientation;
$this->wPt = $this->w*$this->k;
$this->hPt = $this->h*$this->k;
// Page margins (1 cm)
$margin = 28.35/$this->k;
$this->SetMargins($margin,$margin);
// Interior cell margin (1 mm)
$this->cMargin = $margin/10;
// Line width (0.2 mm)
$this->LineWidth = .567/$this->k;
// Automatic page break
$this->SetAutoPageBreak(true,2*$margin);
// Default display mode
$this->SetDisplayMode('default');
// Enable compression
$this->SetCompression(true);
// Set default PDF version number
$this->PDFVersion = '1.3';
}
 
function SetMargins($left, $top, $right=null)
{
// Set left, top and right margins
$this->lMargin = $left;
$this->tMargin = $top;
if($right===null)
$right = $left;
$this->rMargin = $right;
}
 
function SetLeftMargin($margin)
{
// Set left margin
$this->lMargin = $margin;
if($this->page>0 && $this->x<$margin)
$this->x = $margin;
}
 
function SetTopMargin($margin)
{
// Set top margin
$this->tMargin = $margin;
}
 
function SetRightMargin($margin)
{
// Set right margin
$this->rMargin = $margin;
}
 
function SetAutoPageBreak($auto, $margin=0)
{
// Set auto page break mode and triggering margin
$this->AutoPageBreak = $auto;
$this->bMargin = $margin;
$this->PageBreakTrigger = $this->h-$margin;
}
 
function SetDisplayMode($zoom, $layout='default')
{
// Set display mode in viewer
if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))
$this->ZoomMode = $zoom;
else
$this->Error('Incorrect zoom display mode: '.$zoom);
if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')
$this->LayoutMode = $layout;
else
$this->Error('Incorrect layout display mode: '.$layout);
}
 
function SetCompression($compress)
{
// Set page compression
if(function_exists('gzcompress'))
$this->compress = $compress;
else
$this->compress = false;
}
 
function SetTitle($title, $isUTF8=false)
{
// Title of document
if($isUTF8)
$title = $this->_UTF8toUTF16($title);
$this->title = $title;
}
 
function SetSubject($subject, $isUTF8=false)
{
// Subject of document
if($isUTF8)
$subject = $this->_UTF8toUTF16($subject);
$this->subject = $subject;
}
 
function SetAuthor($author, $isUTF8=false)
{
// Author of document
if($isUTF8)
$author = $this->_UTF8toUTF16($author);
$this->author = $author;
}
 
function SetKeywords($keywords, $isUTF8=false)
{
// Keywords of document
if($isUTF8)
$keywords = $this->_UTF8toUTF16($keywords);
$this->keywords = $keywords;
}
 
function SetCreator($creator, $isUTF8=false)
{
// Creator of document
if($isUTF8)
$creator = $this->_UTF8toUTF16($creator);
$this->creator = $creator;
}
 
function AliasNbPages($alias='{nb}')
{
// Define an alias for total number of pages
$this->AliasNbPages = $alias;
}
 
function Error($msg)
{
// Fatal error
die('<b>FPDF error:</b> '.$msg);
}
 
function Open()
{
// Begin document
$this->state = 1;
}
 
function Close()
{
// Terminate document
if($this->state==3)
return;
if($this->page==0)
$this->AddPage();
// Page footer
$this->InFooter = true;
$this->Footer();
$this->InFooter = false;
// Close page
$this->_endpage();
// Close document
$this->_enddoc();
}
 
function AddPage($orientation='', $size='')
{
// Start a new page
if($this->state==0)
$this->Open();
$family = $this->FontFamily;
$style = $this->FontStyle.($this->underline ? 'U' : '');
$fontsize = $this->FontSizePt;
$lw = $this->LineWidth;
$dc = $this->DrawColor;
$fc = $this->FillColor;
$tc = $this->TextColor;
$cf = $this->ColorFlag;
if($this->page>0)
{
// Page footer
$this->InFooter = true;
$this->Footer();
$this->InFooter = false;
// Close page
$this->_endpage();
}
// Start new page
$this->_beginpage($orientation,$size);
// Set line cap style to square
$this->_out('2 J');
// Set line width
$this->LineWidth = $lw;
$this->_out(sprintf('%.2F w',$lw*$this->k));
// Set font
if($family)
$this->SetFont($family,$style,$fontsize);
// Set colors
$this->DrawColor = $dc;
if($dc!='0 G')
$this->_out($dc);
$this->FillColor = $fc;
if($fc!='0 g')
$this->_out($fc);
$this->TextColor = $tc;
$this->ColorFlag = $cf;
// Page header
$this->InHeader = true;
$this->Header();
$this->InHeader = false;
// Restore line width
if($this->LineWidth!=$lw)
{
$this->LineWidth = $lw;
$this->_out(sprintf('%.2F w',$lw*$this->k));
}
// Restore font
if($family)
$this->SetFont($family,$style,$fontsize);
// Restore colors
if($this->DrawColor!=$dc)
{
$this->DrawColor = $dc;
$this->_out($dc);
}
if($this->FillColor!=$fc)
{
$this->FillColor = $fc;
$this->_out($fc);
}
$this->TextColor = $tc;
$this->ColorFlag = $cf;
}
 
function Header()
{
// To be implemented in your own inherited class
}
 
function Footer()
{
// To be implemented in your own inherited class
}
 
function PageNo()
{
// Get current page number
return $this->page;
}
 
function SetDrawColor($r, $g=null, $b=null)
{
// Set color for all stroking operations
if(($r==0 && $g==0 && $b==0) || $g===null)
$this->DrawColor = sprintf('%.3F G',$r/255);
else
$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255);
if($this->page>0)
$this->_out($this->DrawColor);
}
 
function SetFillColor($r, $g=null, $b=null)
{
// Set color for all filling operations
if(($r==0 && $g==0 && $b==0) || $g===null)
$this->FillColor = sprintf('%.3F g',$r/255);
else
$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
if($this->page>0)
$this->_out($this->FillColor);
}
 
function SetTextColor($r, $g=null, $b=null)
{
// Set color for text
if(($r==0 && $g==0 && $b==0) || $g===null)
$this->TextColor = sprintf('%.3F g',$r/255);
else
$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
}
 
function GetStringWidth($s)
{
// Get width of a string in the current font
$s = (string)$s;
$cw = &$this->CurrentFont['cw'];
$w = 0;
$l = strlen($s);
for($i=0;$i<$l;$i++)
$w += $cw[$s[$i]];
return $w*$this->FontSize/1000;
}
 
function SetLineWidth($width)
{
// Set line width
$this->LineWidth = $width;
if($this->page>0)
$this->_out(sprintf('%.2F w',$width*$this->k));
}
 
function Line($x1, $y1, $x2, $y2)
{
// Draw a line
$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));
}
 
function Rect($x, $y, $w, $h, $style='')
{
// Draw a rectangle
if($style=='F')
$op = 'f';
elseif($style=='FD' || $style=='DF')
$op = 'B';
else
$op = 'S';
$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
}
 
function AddFont($family, $style='', $file='')
{
// Add a TrueType, OpenType or Type1 font
$family = strtolower($family);
if($file=='')
$file = str_replace(' ','',$family).strtolower($style).'.php';
$style = strtoupper($style);
if($style=='IB')
$style = 'BI';
$fontkey = $family.$style;
if(isset($this->fonts[$fontkey]))
return;
$info = $this->_loadfont($file);
$info['i'] = count($this->fonts)+1;
if(!empty($info['diff']))
{
// Search existing encodings
$n = array_search($info['diff'],$this->diffs);
if(!$n)
{
$n = count($this->diffs)+1;
$this->diffs[$n] = $info['diff'];
}
$info['diffn'] = $n;
}
if(!empty($info['file']))
{
// Embedded font
if($info['type']=='TrueType')
$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);
else
$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);
}
$this->fonts[$fontkey] = $info;
}
 
function SetFont($family, $style='', $size=0)
{
// Select a font; size given in points
if($family=='')
$family = $this->FontFamily;
else
$family = strtolower($family);
$style = strtoupper($style);
if(strpos($style,'U')!==false)
{
$this->underline = true;
$style = str_replace('U','',$style);
}
else
$this->underline = false;
if($style=='IB')
$style = 'BI';
if($size==0)
$size = $this->FontSizePt;
// Test if font is already selected
if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)
return;
// Test if font is already loaded
$fontkey = $family.$style;
if(!isset($this->fonts[$fontkey]))
{
// Test if one of the core fonts
if($family=='arial')
$family = 'helvetica';
if(in_array($family,$this->CoreFonts))
{
if($family=='symbol' || $family=='zapfdingbats')
$style = '';
$fontkey = $family.$style;
if(!isset($this->fonts[$fontkey]))
$this->AddFont($family,$style);
}
else
$this->Error('Undefined font: '.$family.' '.$style);
}
// Select it
$this->FontFamily = $family;
$this->FontStyle = $style;
$this->FontSizePt = $size;
$this->FontSize = $size/$this->k;
$this->CurrentFont = &$this->fonts[$fontkey];
if($this->page>0)
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
}
 
function SetFontSize($size)
{
// Set font size in points
if($this->FontSizePt==$size)
return;
$this->FontSizePt = $size;
$this->FontSize = $size/$this->k;
if($this->page>0)
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
}
 
function AddLink()
{
// Create a new internal link
$n = count($this->links)+1;
$this->links[$n] = array(0, 0);
return $n;
}
 
function SetLink($link, $y=0, $page=-1)
{
// Set destination of internal link
if($y==-1)
$y = $this->y;
if($page==-1)
$page = $this->page;
$this->links[$link] = array($page, $y);
}
 
function Link($x, $y, $w, $h, $link)
{
// Put a link on the page
$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);
}
 
function Text($x, $y, $txt)
{
// Output a string
$s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
if($this->underline && $txt!='')
$s .= ' '.$this->_dounderline($x,$y,$txt);
if($this->ColorFlag)
$s = 'q '.$this->TextColor.' '.$s.' Q';
$this->_out($s);
}
 
function AcceptPageBreak()
{
// Accept automatic page break or not
return $this->AutoPageBreak;
}
 
function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
{
// Output a cell
$k = $this->k;
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
{
// Automatic page break
$x = $this->x;
$ws = $this->ws;
if($ws>0)
{
$this->ws = 0;
$this->_out('0 Tw');
}
$this->AddPage($this->CurOrientation,$this->CurPageSize);
$this->x = $x;
if($ws>0)
{
$this->ws = $ws;
$this->_out(sprintf('%.3F Tw',$ws*$k));
}
}
if($w==0)
$w = $this->w-$this->rMargin-$this->x;
$s = '';
if($fill || $border==1)
{
if($fill)
$op = ($border==1) ? 'B' : 'f';
else
$op = 'S';
$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);
}
if(is_string($border))
{
$x = $this->x;
$y = $this->y;
if(strpos($border,'L')!==false)
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);
if(strpos($border,'T')!==false)
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);
if(strpos($border,'R')!==false)
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
if(strpos($border,'B')!==false)
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
}
if($txt!=='')
{
if($align=='R')
$dx = $w-$this->cMargin-$this->GetStringWidth($txt);
elseif($align=='C')
$dx = ($w-$this->GetStringWidth($txt))/2;
else
$dx = $this->cMargin;
if($this->ColorFlag)
$s .= 'q '.$this->TextColor.' ';
$txt2 = str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt)));
$s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);
if($this->underline)
$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);
if($this->ColorFlag)
$s .= ' Q';
if($link)
$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);
}
if($s)
$this->_out($s);
$this->lasth = $h;
if($ln>0)
{
// Go to next line
$this->y += $h;
if($ln==1)
$this->x = $this->lMargin;
}
else
$this->x += $w;
}
 
function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
{
// Output text with automatic or explicit line breaks
$cw = &$this->CurrentFont['cw'];
if($w==0)
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
$s = str_replace("\r",'',$txt);
$nb = strlen($s);
if($nb>0 && $s[$nb-1]=="\n")
$nb--;
$b = 0;
if($border)
{
if($border==1)
{
$border = 'LTRB';
$b = 'LRT';
$b2 = 'LR';
}
else
{
$b2 = '';
if(strpos($border,'L')!==false)
$b2 .= 'L';
if(strpos($border,'R')!==false)
$b2 .= 'R';
$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;
}
}
$sep = -1;
$i = 0;
$j = 0;
$l = 0;
$ns = 0;
$nl = 1;
while($i<$nb)
{
// Get next character
$c = $s[$i];
if($c=="\n")
{
// Explicit line break
if($this->ws>0)
{
$this->ws = 0;
$this->_out('0 Tw');
}
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
$i++;
$sep = -1;
$j = $i;
$l = 0;
$ns = 0;
$nl++;
if($border && $nl==2)
$b = $b2;
continue;
}
if($c==' ')
{
$sep = $i;
$ls = $l;
$ns++;
}
$l += $cw[$c];
if($l>$wmax)
{
// Automatic line break
if($sep==-1)
{
if($i==$j)
$i++;
if($this->ws>0)
{
$this->ws = 0;
$this->_out('0 Tw');
}
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
}
else
{
if($align=='J')
{
$this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0;
$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));
}
$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);
$i = $sep+1;
}
$sep = -1;
$j = $i;
$l = 0;
$ns = 0;
$nl++;
if($border && $nl==2)
$b = $b2;
}
else
$i++;
}
// Last chunk
if($this->ws>0)
{
$this->ws = 0;
$this->_out('0 Tw');
}
if($border && strpos($border,'B')!==false)
$b .= 'B';
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
$this->x = $this->lMargin;
}
 
function Write($h, $txt, $link='')
{
// Output text in flowing mode
$cw = &$this->CurrentFont['cw'];
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
$s = str_replace("\r",'',$txt);
$nb = strlen($s);
$sep = -1;
$i = 0;
$j = 0;
$l = 0;
$nl = 1;
while($i<$nb)
{
// Get next character
$c = $s[$i];
if($c=="\n")
{
// Explicit line break
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
$i++;
$sep = -1;
$j = $i;
$l = 0;
if($nl==1)
{
$this->x = $this->lMargin;
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
}
$nl++;
continue;
}
if($c==' ')
$sep = $i;
$l += $cw[$c];
if($l>$wmax)
{
// Automatic line break
if($sep==-1)
{
if($this->x>$this->lMargin)
{
// Move to next line
$this->x = $this->lMargin;
$this->y += $h;
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
$i++;
$nl++;
continue;
}
if($i==$j)
$i++;
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
}
else
{
$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',0,$link);
$i = $sep+1;
}
$sep = -1;
$j = $i;
$l = 0;
if($nl==1)
{
$this->x = $this->lMargin;
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
}
$nl++;
}
else
$i++;
}
// Last chunk
if($i!=$j)
$this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',0,$link);
}
 
function Ln($h=null)
{
// Line feed; default value is last cell height
$this->x = $this->lMargin;
if($h===null)
$this->y += $this->lasth;
else
$this->y += $h;
}
 
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
{
// Put an image on the page
if(!isset($this->images[$file]))
{
// First use of this image, get info
if($type=='')
{
$pos = strrpos($file,'.');
if(!$pos)
$this->Error('Image file has no extension and no type was specified: '.$file);
$type = substr($file,$pos+1);
}
$type = strtolower($type);
if($type=='jpeg')
$type = 'jpg';
$mtd = '_parse'.$type;
if(!method_exists($this,$mtd))
$this->Error('Unsupported image type: '.$type);
$info = $this->$mtd($file);
$info['i'] = count($this->images)+1;
$this->images[$file] = $info;
}
else
$info = $this->images[$file];
 
// Automatic width and height calculation if needed
if($w==0 && $h==0)
{
// Put image at 96 dpi
$w = -96;
$h = -96;
}
if($w<0)
$w = -$info['w']*72/$w/$this->k;
if($h<0)
$h = -$info['h']*72/$h/$this->k;
if($w==0)
$w = $h*$info['w']/$info['h'];
if($h==0)
$h = $w*$info['h']/$info['w'];
 
// Flowing mode
if($y===null)
{
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
{
// Automatic page break
$x2 = $this->x;
$this->AddPage($this->CurOrientation,$this->CurPageSize);
$this->x = $x2;
}
$y = $this->y;
$this->y += $h;
}
 
if($x===null)
$x = $this->x;
$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
if($link)
$this->Link($x,$y,$w,$h,$link);
}
 
function GetX()
{
// Get x position
return $this->x;
}
 
function SetX($x)
{
// Set x position
if($x>=0)
$this->x = $x;
else
$this->x = $this->w+$x;
}
 
function GetY()
{
// Get y position
return $this->y;
}
 
function SetY($y)
{
// Set y position and reset x
$this->x = $this->lMargin;
if($y>=0)
$this->y = $y;
else
$this->y = $this->h+$y;
}
 
function SetXY($x, $y)
{
// Set x and y positions
$this->SetY($y);
$this->SetX($x);
}
 
function Output($name='', $dest='')
{
// Output PDF to some destination
if($this->state<3)
$this->Close();
$dest = strtoupper($dest);
if($dest=='')
{
if($name=='')
{
$name = 'doc.pdf';
$dest = 'I';
}
else
$dest = 'F';
}
switch($dest)
{
case 'I':
// Send to standard output
$this->_checkoutput();
if(PHP_SAPI!='cli')
{
// We send to a browser
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
}
echo $this->buffer;
break;
case 'D':
// Download file
$this->_checkoutput();
header('Content-Type: application/x-download');
header('Content-Disposition: attachment; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
echo $this->buffer;
break;
case 'F':
// Save to local file
$f = fopen($name,'wb');
if(!$f)
$this->Error('Unable to create output file: '.$name);
fwrite($f,$this->buffer,strlen($this->buffer));
fclose($f);
break;
case 'S':
// Return as a string
return $this->buffer;
default:
$this->Error('Incorrect output destination: '.$dest);
}
return '';
}
 
/*******************************************************************************
* *
* Protected methods *
* *
*******************************************************************************/
function _dochecks()
{
// Check availability of %F
if(sprintf('%.1F',1.0)!='1.0')
$this->Error('This version of PHP is not supported');
// Check mbstring overloading
if(ini_get('mbstring.func_overload') & 2)
$this->Error('mbstring overloading must be disabled');
// Ensure runtime magic quotes are disabled
if(get_magic_quotes_runtime())
@set_magic_quotes_runtime(0);
}
 
function _checkoutput()
{
if(PHP_SAPI!='cli')
{
if(headers_sent($file,$line))
$this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)");
}
if(ob_get_length())
{
// The output buffer is not empty
if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents()))
{
// It contains only a UTF-8 BOM and/or whitespace, let's clean it
ob_clean();
}
else
$this->Error("Some data has already been output, can't send PDF file");
}
}
 
function _getpagesize($size)
{
if(is_string($size))
{
$size = strtolower($size);
if(!isset($this->StdPageSizes[$size]))
$this->Error('Unknown page size: '.$size);
$a = $this->StdPageSizes[$size];
return array($a[0]/$this->k, $a[1]/$this->k);
}
else
{
if($size[0]>$size[1])
return array($size[1], $size[0]);
else
return $size;
}
}
 
function _beginpage($orientation, $size)
{
$this->page++;
$this->pages[$this->page] = '';
$this->state = 2;
$this->x = $this->lMargin;
$this->y = $this->tMargin;
$this->FontFamily = '';
// Check page size and orientation
if($orientation=='')
$orientation = $this->DefOrientation;
else
$orientation = strtoupper($orientation[0]);
if($size=='')
$size = $this->DefPageSize;
else
$size = $this->_getpagesize($size);
if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])
{
// New size or orientation
if($orientation=='P')
{
$this->w = $size[0];
$this->h = $size[1];
}
else
{
$this->w = $size[1];
$this->h = $size[0];
}
$this->wPt = $this->w*$this->k;
$this->hPt = $this->h*$this->k;
$this->PageBreakTrigger = $this->h-$this->bMargin;
$this->CurOrientation = $orientation;
$this->CurPageSize = $size;
}
if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])
$this->PageSizes[$this->page] = array($this->wPt, $this->hPt);
}
 
function _endpage()
{
$this->state = 1;
}
 
function _loadfont($font)
{
// Load a font definition file from the font directory
include($this->fontpath.$font);
$a = get_defined_vars();
if(!isset($a['name']))
$this->Error('Could not include font definition file');
return $a;
}
 
function _escape($s)
{
// Escape special characters in strings
$s = str_replace('\\','\\\\',$s);
$s = str_replace('(','\\(',$s);
$s = str_replace(')','\\)',$s);
$s = str_replace("\r",'\\r',$s);
return $s;
}
 
function _textstring($s)
{
// Format a text string
return '('.$this->_escape($s).')';
}
 
function _UTF8toUTF16($s)
{
// Convert UTF-8 to UTF-16BE with BOM
$res = "\xFE\xFF";
$nb = strlen($s);
$i = 0;
while($i<$nb)
{
$c1 = ord($s[$i++]);
if($c1>=224)
{
// 3-byte character
$c2 = ord($s[$i++]);
$c3 = ord($s[$i++]);
$res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2));
$res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F));
}
elseif($c1>=192)
{
// 2-byte character
$c2 = ord($s[$i++]);
$res .= chr(($c1 & 0x1C)>>2);
$res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F));
}
else
{
// Single-byte character
$res .= "\0".chr($c1);
}
}
return $res;
}
 
function _dounderline($x, $y, $txt)
{
// Underline text
$up = $this->CurrentFont['up'];
$ut = $this->CurrentFont['ut'];
$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');
return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt);
}
 
function _parsejpg($file)
{
// Extract info from a JPEG file
$a = getimagesize($file);
if(!$a)
$this->Error('Missing or incorrect image file: '.$file);
if($a[2]!=2)
$this->Error('Not a JPEG file: '.$file);
if(!isset($a['channels']) || $a['channels']==3)
$colspace = 'DeviceRGB';
elseif($a['channels']==4)
$colspace = 'DeviceCMYK';
else
$colspace = 'DeviceGray';
$bpc = isset($a['bits']) ? $a['bits'] : 8;
$data = file_get_contents($file);
return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);
}
 
function _parsepng($file)
{
// Extract info from a PNG file
$f = fopen($file,'rb');
if(!$f)
$this->Error('Can\'t open image file: '.$file);
$info = $this->_parsepngstream($f,$file);
fclose($f);
return $info;
}
 
function _parsepngstream($f, $file)
{
// Check signature
if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
$this->Error('Not a PNG file: '.$file);
 
// Read header chunk
$this->_readstream($f,4);
if($this->_readstream($f,4)!='IHDR')
$this->Error('Incorrect PNG file: '.$file);
$w = $this->_readint($f);
$h = $this->_readint($f);
$bpc = ord($this->_readstream($f,1));
if($bpc>8)
$this->Error('16-bit depth not supported: '.$file);
$ct = ord($this->_readstream($f,1));
if($ct==0 || $ct==4)
$colspace = 'DeviceGray';
elseif($ct==2 || $ct==6)
$colspace = 'DeviceRGB';
elseif($ct==3)
$colspace = 'Indexed';
else
$this->Error('Unknown color type: '.$file);
if(ord($this->_readstream($f,1))!=0)
$this->Error('Unknown compression method: '.$file);
if(ord($this->_readstream($f,1))!=0)
$this->Error('Unknown filter method: '.$file);
if(ord($this->_readstream($f,1))!=0)
$this->Error('Interlacing not supported: '.$file);
$this->_readstream($f,4);
$dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w;
 
// Scan chunks looking for palette, transparency and image data
$pal = '';
$trns = '';
$data = '';
do
{
$n = $this->_readint($f);
$type = $this->_readstream($f,4);
if($type=='PLTE')
{
// Read palette
$pal = $this->_readstream($f,$n);
$this->_readstream($f,4);
}
elseif($type=='tRNS')
{
// Read transparency info
$t = $this->_readstream($f,$n);
if($ct==0)
$trns = array(ord(substr($t,1,1)));
elseif($ct==2)
$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));
else
{
$pos = strpos($t,chr(0));
if($pos!==false)
$trns = array($pos);
}
$this->_readstream($f,4);
}
elseif($type=='IDAT')
{
// Read image data block
$data .= $this->_readstream($f,$n);
$this->_readstream($f,4);
}
elseif($type=='IEND')
break;
else
$this->_readstream($f,$n+4);
}
while($n);
 
if($colspace=='Indexed' && empty($pal))
$this->Error('Missing palette in '.$file);
$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);
if($ct>=4)
{
// Extract alpha channel
if(!function_exists('gzuncompress'))
$this->Error('Zlib not available, can\'t handle alpha channel: '.$file);
$data = gzuncompress($data);
$color = '';
$alpha = '';
if($ct==4)
{
// Gray image
$len = 2*$w;
for($i=0;$i<$h;$i++)
{
$pos = (1+$len)*$i;
$color .= $data[$pos];
$alpha .= $data[$pos];
$line = substr($data,$pos+1,$len);
$color .= preg_replace('/(.)./s','$1',$line);
$alpha .= preg_replace('/.(.)/s','$1',$line);
}
}
else
{
// RGB image
$len = 4*$w;
for($i=0;$i<$h;$i++)
{
$pos = (1+$len)*$i;
$color .= $data[$pos];
$alpha .= $data[$pos];
$line = substr($data,$pos+1,$len);
$color .= preg_replace('/(.{3})./s','$1',$line);
$alpha .= preg_replace('/.{3}(.)/s','$1',$line);
}
}
unset($data);
$data = gzcompress($color);
$info['smask'] = gzcompress($alpha);
if($this->PDFVersion<'1.4')
$this->PDFVersion = '1.4';
}
$info['data'] = $data;
return $info;
}
 
function _readstream($f, $n)
{
// Read n bytes from stream
$res = '';
while($n>0 && !feof($f))
{
$s = fread($f,$n);
if($s===false)
$this->Error('Error while reading stream');
$n -= strlen($s);
$res .= $s;
}
if($n>0)
$this->Error('Unexpected end of stream');
return $res;
}
 
function _readint($f)
{
// Read a 4-byte integer from stream
$a = unpack('Ni',$this->_readstream($f,4));
return $a['i'];
}
 
function _parsegif($file)
{
// Extract info from a GIF file (via PNG conversion)
if(!function_exists('imagepng'))
$this->Error('GD extension is required for GIF support');
if(!function_exists('imagecreatefromgif'))
$this->Error('GD has no GIF read support');
$im = imagecreatefromgif($file);
if(!$im)
$this->Error('Missing or incorrect image file: '.$file);
imageinterlace($im,0);
$f = @fopen('php://temp','rb+');
if($f)
{
// Perform conversion in memory
ob_start();
imagepng($im);
$data = ob_get_clean();
imagedestroy($im);
fwrite($f,$data);
rewind($f);
$info = $this->_parsepngstream($f,$file);
fclose($f);
}
else
{
// Use temporary file
$tmp = tempnam('.','gif');
if(!$tmp)
$this->Error('Unable to create a temporary file');
if(!imagepng($im,$tmp))
$this->Error('Error while saving to temporary file');
imagedestroy($im);
$info = $this->_parsepng($tmp);
unlink($tmp);
}
return $info;
}
 
function _newobj()
{
// Begin a new object
$this->n++;
$this->offsets[$this->n] = strlen($this->buffer);
$this->_out($this->n.' 0 obj');
}
 
function _putstream($s)
{
$this->_out('stream');
$this->_out($s);
$this->_out('endstream');
}
 
function _out($s)
{
// Add a line to the document
if($this->state==2)
$this->pages[$this->page] .= $s."\n";
else
$this->buffer .= $s."\n";
}
 
function _putpages()
{
$nb = $this->page;
if(!empty($this->AliasNbPages))
{
// Replace number of pages
for($n=1;$n<=$nb;$n++)
$this->pages[$n] = str_replace($this->AliasNbPages,$nb,$this->pages[$n]);
}
if($this->DefOrientation=='P')
{
$wPt = $this->DefPageSize[0]*$this->k;
$hPt = $this->DefPageSize[1]*$this->k;
}
else
{
$wPt = $this->DefPageSize[1]*$this->k;
$hPt = $this->DefPageSize[0]*$this->k;
}
$filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
for($n=1;$n<=$nb;$n++)
{
// Page
$this->_newobj();
$this->_out('<</Type /Page');
$this->_out('/Parent 1 0 R');
if(isset($this->PageSizes[$n]))
$this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageSizes[$n][0],$this->PageSizes[$n][1]));
$this->_out('/Resources 2 0 R');
if(isset($this->PageLinks[$n]))
{
// Links
$annots = '/Annots [';
foreach($this->PageLinks[$n] as $pl)
{
$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
$annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
if(is_string($pl[4]))
$annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>';
else
{
$l = $this->links[$pl[4]];
$h = isset($this->PageSizes[$l[0]]) ? $this->PageSizes[$l[0]][1] : $hPt;
$annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',1+2*$l[0],$h-$l[1]*$this->k);
}
}
$this->_out($annots.']');
}
if($this->PDFVersion>'1.3')
$this->_out('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>');
$this->_out('/Contents '.($this->n+1).' 0 R>>');
$this->_out('endobj');
// Page content
$p = ($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n];
$this->_newobj();
$this->_out('<<'.$filter.'/Length '.strlen($p).'>>');
$this->_putstream($p);
$this->_out('endobj');
}
// Pages root
$this->offsets[1] = strlen($this->buffer);
$this->_out('1 0 obj');
$this->_out('<</Type /Pages');
$kids = '/Kids [';
for($i=0;$i<$nb;$i++)
$kids .= (3+2*$i).' 0 R ';
$this->_out($kids.']');
$this->_out('/Count '.$nb);
$this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$wPt,$hPt));
$this->_out('>>');
$this->_out('endobj');
}
 
function _putfonts()
{
$nf = $this->n;
foreach($this->diffs as $diff)
{
// Encodings
$this->_newobj();
$this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.']>>');
$this->_out('endobj');
}
foreach($this->FontFiles as $file=>$info)
{
// Font file embedding
$this->_newobj();
$this->FontFiles[$file]['n'] = $this->n;
$font = file_get_contents($this->fontpath.$file,true);
if(!$font)
$this->Error('Font file not found: '.$file);
$compressed = (substr($file,-2)=='.z');
if(!$compressed && isset($info['length2']))
$font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);
$this->_out('<</Length '.strlen($font));
if($compressed)
$this->_out('/Filter /FlateDecode');
$this->_out('/Length1 '.$info['length1']);
if(isset($info['length2']))
$this->_out('/Length2 '.$info['length2'].' /Length3 0');
$this->_out('>>');
$this->_putstream($font);
$this->_out('endobj');
}
foreach($this->fonts as $k=>$font)
{
// Font objects
$this->fonts[$k]['n'] = $this->n+1;
$type = $font['type'];
$name = $font['name'];
if($type=='Core')
{
// Core font
$this->_newobj();
$this->_out('<</Type /Font');
$this->_out('/BaseFont /'.$name);
$this->_out('/Subtype /Type1');
if($name!='Symbol' && $name!='ZapfDingbats')
$this->_out('/Encoding /WinAnsiEncoding');
$this->_out('>>');
$this->_out('endobj');
}
elseif($type=='Type1' || $type=='TrueType')
{
// Additional Type1 or TrueType/OpenType font
$this->_newobj();
$this->_out('<</Type /Font');
$this->_out('/BaseFont /'.$name);
$this->_out('/Subtype /'.$type);
$this->_out('/FirstChar 32 /LastChar 255');
$this->_out('/Widths '.($this->n+1).' 0 R');
$this->_out('/FontDescriptor '.($this->n+2).' 0 R');
if(isset($font['diffn']))
$this->_out('/Encoding '.($nf+$font['diffn']).' 0 R');
else
$this->_out('/Encoding /WinAnsiEncoding');
$this->_out('>>');
$this->_out('endobj');
// Widths
$this->_newobj();
$cw = &$font['cw'];
$s = '[';
for($i=32;$i<=255;$i++)
$s .= $cw[chr($i)].' ';
$this->_out($s.']');
$this->_out('endobj');
// Descriptor
$this->_newobj();
$s = '<</Type /FontDescriptor /FontName /'.$name;
foreach($font['desc'] as $k=>$v)
$s .= ' /'.$k.' '.$v;
if(!empty($font['file']))
$s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';
$this->_out($s.'>>');
$this->_out('endobj');
}
else
{
// Allow for additional types
$mtd = '_put'.strtolower($type);
if(!method_exists($this,$mtd))
$this->Error('Unsupported font type: '.$type);
$this->$mtd($font);
}
}
}
 
function _putimages()
{
foreach(array_keys($this->images) as $file)
{
$this->_putimage($this->images[$file]);
unset($this->images[$file]['data']);
unset($this->images[$file]['smask']);
}
}
 
function _putimage(&$info)
{
$this->_newobj();
$info['n'] = $this->n;
$this->_out('<</Type /XObject');
$this->_out('/Subtype /Image');
$this->_out('/Width '.$info['w']);
$this->_out('/Height '.$info['h']);
if($info['cs']=='Indexed')
$this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
else
{
$this->_out('/ColorSpace /'.$info['cs']);
if($info['cs']=='DeviceCMYK')
$this->_out('/Decode [1 0 1 0 1 0 1 0]');
}
$this->_out('/BitsPerComponent '.$info['bpc']);
if(isset($info['f']))
$this->_out('/Filter /'.$info['f']);
if(isset($info['dp']))
$this->_out('/DecodeParms <<'.$info['dp'].'>>');
if(isset($info['trns']) && is_array($info['trns']))
{
$trns = '';
for($i=0;$i<count($info['trns']);$i++)
$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';
$this->_out('/Mask ['.$trns.']');
}
if(isset($info['smask']))
$this->_out('/SMask '.($this->n+1).' 0 R');
$this->_out('/Length '.strlen($info['data']).'>>');
$this->_putstream($info['data']);
$this->_out('endobj');
// Soft mask
if(isset($info['smask']))
{
$dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w'];
$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);
$this->_putimage($smask);
}
// Palette
if($info['cs']=='Indexed')
{
$filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
$pal = ($this->compress) ? gzcompress($info['pal']) : $info['pal'];
$this->_newobj();
$this->_out('<<'.$filter.'/Length '.strlen($pal).'>>');
$this->_putstream($pal);
$this->_out('endobj');
}
}
 
function _putxobjectdict()
{
foreach($this->images as $image)
$this->_out('/I'.$image['i'].' '.$image['n'].' 0 R');
}
 
function _putresourcedict()
{
$this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
$this->_out('/Font <<');
foreach($this->fonts as $font)
$this->_out('/F'.$font['i'].' '.$font['n'].' 0 R');
$this->_out('>>');
$this->_out('/XObject <<');
$this->_putxobjectdict();
$this->_out('>>');
}
 
function _putresources()
{
$this->_putfonts();
$this->_putimages();
// Resource dictionary
$this->offsets[2] = strlen($this->buffer);
$this->_out('2 0 obj');
$this->_out('<<');
$this->_putresourcedict();
$this->_out('>>');
$this->_out('endobj');
}
 
function _putinfo()
{
$this->_out('/Producer '.$this->_textstring('FPDF '.FPDF_VERSION));
if(!empty($this->title))
$this->_out('/Title '.$this->_textstring($this->title));
if(!empty($this->subject))
$this->_out('/Subject '.$this->_textstring($this->subject));
if(!empty($this->author))
$this->_out('/Author '.$this->_textstring($this->author));
if(!empty($this->keywords))
$this->_out('/Keywords '.$this->_textstring($this->keywords));
if(!empty($this->creator))
$this->_out('/Creator '.$this->_textstring($this->creator));
$this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis')));
}
 
function _putcatalog()
{
$this->_out('/Type /Catalog');
$this->_out('/Pages 1 0 R');
if($this->ZoomMode=='fullpage')
$this->_out('/OpenAction [3 0 R /Fit]');
elseif($this->ZoomMode=='fullwidth')
$this->_out('/OpenAction [3 0 R /FitH null]');
elseif($this->ZoomMode=='real')
$this->_out('/OpenAction [3 0 R /XYZ null null 1]');
elseif(!is_string($this->ZoomMode))
$this->_out('/OpenAction [3 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']');
if($this->LayoutMode=='single')
$this->_out('/PageLayout /SinglePage');
elseif($this->LayoutMode=='continuous')
$this->_out('/PageLayout /OneColumn');
elseif($this->LayoutMode=='two')
$this->_out('/PageLayout /TwoColumnLeft');
}
 
function _putheader()
{
$this->_out('%PDF-'.$this->PDFVersion);
}
 
function _puttrailer()
{
$this->_out('/Size '.($this->n+1));
$this->_out('/Root '.$this->n.' 0 R');
$this->_out('/Info '.($this->n-1).' 0 R');
}
 
function _enddoc()
{
$this->_putheader();
$this->_putpages();
$this->_putresources();
// Info
$this->_newobj();
$this->_out('<<');
$this->_putinfo();
$this->_out('>>');
$this->_out('endobj');
// Catalog
$this->_newobj();
$this->_out('<<');
$this->_putcatalog();
$this->_out('>>');
$this->_out('endobj');
// Cross-ref
$o = strlen($this->buffer);
$this->_out('xref');
$this->_out('0 '.($this->n+1));
$this->_out('0000000000 65535 f ');
for($i=1;$i<=$this->n;$i++)
$this->_out(sprintf('%010d 00000 n ',$this->offsets[$i]));
// Trailer
$this->_out('trailer');
$this->_out('<<');
$this->_puttrailer();
$this->_out('>>');
$this->_out('startxref');
$this->_out($o);
$this->_out('%%EOF');
$this->state = 3;
}
// End of class
}
 
// Handle special IE contype request
if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype')
{
header('Content-Type: application/pdf');
exit;
}
 
?>
/web/acc/lib/fpdf16/fpdf.php
File deleted
/web/acc/lib/fpdf16/font/timesi.php
File deleted
/web/acc/lib/fpdf16/font/timesbi.php
File deleted
/web/acc/lib/fpdf16/font/zapfdingbats.php
File deleted
/web/acc/lib/fpdf16/font/helveticai.php
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-11.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-15.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-16.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-1.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-2.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp874.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-4.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-5.map
File deleted
/web/acc/lib/fpdf16/font/makefont/koi8-r.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-7.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1250.map
File deleted
/web/acc/lib/fpdf16/font/makefont/iso-8859-9.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1251.map
File deleted
/web/acc/lib/fpdf16/font/makefont/koi8-u.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1252.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1253.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1254.map
File deleted
/web/acc/lib/fpdf16/font/makefont/makefont.php
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1255.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1257.map
File deleted
/web/acc/lib/fpdf16/font/makefont/cp1258.map
File deleted
/web/acc/lib/fpdf16/font/helveticabi.php
File deleted
/web/acc/lib/fpdf16/font/times.php
File deleted
/web/acc/lib/fpdf16/font/timesb.php
File deleted
/web/acc/lib/fpdf16/font/helvetica.php
File deleted
/web/acc/lib/fpdf16/font/symbol.php
File deleted
/web/acc/lib/fpdf16/font/helveticab.php
File deleted
/web/acc/lib/fpdf16/font/courier.php
File deleted
/web/acc/lib/fpdf16/license.txt
File deleted
\ No newline at end of file
Property changes:
Deleted: svn:eol-style
-native
\ No newline at end of property
/web/acc/manager/htdocs/ticket_user.php
1,15 → 1,7
<?php
// ticket d'impression (thank's to Geoffroy MUSITELLI)
//--recupération des variables provenant du formulaire
// Etiquettes
$l_login_imp=utf8_decode($_POST["l_login_imp"]);
$l_password_imp=utf8_decode($_POST["l_password_imp"]);
$l_max_all_session_imp=utf8_decode($_POST["l_max_all_session_imp"]);
$l_session_timeout_imp=utf8_decode($_POST["l_session_timeout_imp"]);
$l_max_daily_session_imp=utf8_decode($_POST["l_max_daily_session_imp"]);
$l_max_monthly_session_imp=utf8_decode($_POST["l_max_monthly_session_imp"]);
$l_expiration_imp=utf8_decode($_POST["l_expiration_imp"]);
// Valeurs
$langue_imp=utf8_decode($_POST["langue_imp"]);
$log_imp=utf8_decode($_POST["log_imp"]);
$passwd_imp=utf8_decode($_POST["passwd_imp"]);
$exp_imp=utf8_decode($_POST["exp_imp"]);
17,19 → 9,94
$mas_imp=utf8_decode($_POST["mas_imp"]);
$mds_imp=utf8_decode($_POST["mds_imp"]);
$mms_imp=utf8_decode($_POST["mms_imp"]);
 
//--initialisation des classes FPDF
require('../../lib/fpdf16/fpdf.php');
 
//Langue du Ticket d'impression en fonction de la liste déroulante
switch ($langue_imp){
case 'fr':
$l_title_imp = "TICKET ACC&Egrave;S INTERNET";
$l_login_imp = "Utilisateur :";
$l_password_imp = "Mot de passe :";
$l_max_all_session_imp="Durée totale autoriséee :";
$l_session_timeout_imp="Durée d'une session :";
$l_max_daily_session_imp="Durée journalière :";
$l_max_monthly_session_imp ="Durée mensuelle :";
$l_expiration_imp="Date d'expiration :";
$v_illimit="Illimitée";
$v_without="Aucune";
break;
case 'de':
$l_title_imp = "GUTSCHEIN SPRACHE";
$l_login_imp = "Login :";
$l_password_imp = "Passwort :";
$l_max_all_session_imp="Maximale erlaubt Dauer :";
$l_session_timeout_imp="Dauer der Sitzung :";
$l_max_daily_session_imp="Stunden t&auml;glich :";
$l_max_monthly_session_imp ="monatlich Dauer :";
$l_expiration_imp="Verfallsdatum :";
$v_illimit="Unbegrentz";
$v_without="Ohne";
break;
case 'nl':
$l_title_imp = "ONTVANGST INTERNET";
$l_login_imp = "Gebruikers :";
$l_password_imp = "Wachtwoord :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Sessieduur :";
$l_max_daily_session_imp="Dagelijkse uren :";
$l_max_monthly_session_imp ="Maandelijkse duur :";
$l_expiration_imp="Vervaldatum :";
$v_illimit="Onbeperkte";
$v_without="Ohne";
break;
case 'es':
$l_title_imp = "BONO INTERNET";
$l_login_imp = "Usuario :";
$l_password_imp = "Contraseña :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Duraciôn de Sesiôn :";
$l_max_daily_session_imp="Horas diarias :";
$l_max_monthly_session_imp ="Duraciôn mensual :";
$l_expiration_imp="Fecha de caducidad :";
$v_illimit="Ilimitado";
$v_without="Sin";
break;
case 'it':
$l_title_imp = "RICEVIMENTO INTERNET";
$l_login_imp = "Utenti :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Durata della sessione :";
$l_max_daily_session_imp="Ore giornaliere :";
$l_max_monthly_session_imp ="Durata mensile :";
$l_expiration_imp="Data di scadenza :";
$v_illimit="Illimitato";
$v_without="Senza";
break;
default:
$l_title_imp = "INTERNET VOUCHER";
$l_login_imp = "Login :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :";
$l_session_timeout_imp="Session timeout :";
$l_max_daily_session_imp="Max daily session :";
$l_max_monthly_session_imp ="Max monthly session :";
$l_expiration_imp="Expiration date :";
$v_illimit="Unlimited";
$v_without="Without";
break;
}
//echo "$langue_imp - $l_login_imp - $exp_imp - $l_title_imp";
//exit;
//création de la classe PDF pour faire l'entête et pieds de page
require('../../lib/fpdf17/fpdf.php');
class PDF extends FPDF
{
//Entête
function Header()
{
$l_title_imp=utf8_decode($_POST["l_title_imp"]);
//Logo coordonnées x , y, largeur de l'image ---Attention fpdf ne supporte pas le png avec fond transparent----
// $this->Image('../../../images/organisme.jpg',25,5,25);
global $l_title_imp;
//Logo coordonnées x , y, largeur de l'image
$this->Image('../../../images/logo-alcasar.png',25,5,25);
//Police Arial gras 15
$this->SetFont('Arial','B',18);
//couleur de l'écriture en rouge
50,9 → 117,8
$this->Cell(200,20,'Produit par : ALCASAR',0,0,'C');
}
//fonction rectangle
//Rectangle :
//x, y : coin supérieur gauche du rectangle.w, h : largeur et hauteur. r : rayon des coins arrondis.
//style : comme celui de Rect() : F, D (défaut), FD ou DF.
//Rectangle : x, y : coin supérieur gauche du rectangle.w, h : largeur et hauteur. r : rayon des coins arrondis.
//style : comme celui de Rect() : F, D (défaut), FD ou DF.
function RoundedRect($x, $y, $w, $h, $r, $style = '')
{
$k = $this->k;
147,6 → 213,7
$pdf->Cell(45,10,$exp_imp,0,1,'L');
 
//renvoie au navigateur du document
$pdf->Output('ticket.pdf','I');
$ticket_name="ticket_".$log_imp.".pdf";
$pdf->Output($ticket_name,'D');
 
?>
/web/acc/manager/htdocs/voucher_new.php
108,16 → 108,9
/*Formatage de la date afin d'être lisible dans toute les langues 'jj mm yyyy'*/
if ($Expiration!=''){ $Expiration=date("d - m - Y",strtotime($Expiration));}
else { $Expiration=$v_without;}
//Appel du ticket d'impression , passage en paramètres des étiquettes et des valeurs à afficher
//Appel du ticket d'impression , passage en paramètres des valeurs à afficher
echo' <form name="impression" method="post" action="ticket_user.php" target=_blank>
<input type="hidden" name="l_title_imp" value="'.$l_title_imp.'">
<input type="hidden" name="l_login_imp" value="'.$l_login_imp.'">
<input type="hidden" name="l_password_imp" value="'.$l_password_imp.'">
<input type="hidden" name="l_max_all_session_imp" value="'.$l_max_all_session_imp.'">
<input type="hidden" name="l_session_timeout_imp" value="'.$l_session_timeout_imp.'">
<input type="hidden" name="l_max_daily_session_imp" value="'.$l_max_daily_session_imp.'">
<input type="hidden" name="l_max_monthly_session_imp" value="'.$l_max_monthly_session_imp.'">
<input type="hidden" name="l_expiration_imp" value="'.$l_expiration_imp.'">
<input type="hidden" name="langue_imp" value="'.$langue_imp.'">
<input type="hidden" name="log_imp" value="'.$login.'">
<input type="hidden" name="passwd_imp" value="'.$passwd_imp.'">
<input type="hidden" name="sto_imp" value="'.$sto_imp.'">
/web/acc/manager/lib/langues.php
191,81 → 191,79
break;
}
//Langue du Ticket d'impression en fonction de la liste déroulante
$langue_imp=$_POST["langue_imp"];
if($origine=='user_new'){
switch ($langue_imp){
case 'fr':
$l_title_imp = "TICKET ACC&Egrave;S INTERNET";
$l_login_imp = "Utilisateur :";
$l_password_imp = "Mot de passe :";
$l_max_all_session_imp="Dur&eacute;e totale autoris&eacute;e :";
$l_session_timeout_imp="Dur&eacute;e d'une session :";
$l_max_daily_session_imp="Dur&eacute;e journali&egrave;re :";
$l_max_monthly_session_imp ="Dur&eacute;e mensuelle :";
$l_expiration_imp="Date d'expiration :";
$v_illimit="Illimit&eacute;e";
$v_without="Aucune";
break;
case 'de':
$l_title_imp = "GUTSCHEIN SPRACHE";
$l_login_imp = "Login :";
$l_password_imp = "Passwort :";
$l_max_all_session_imp="Maximale erlaubt Dauer :";
$l_session_timeout_imp="Dauer der Sitzung :";
$l_max_daily_session_imp="Stunden t&auml;glich :";
$l_max_monthly_session_imp ="monatlich Dauer :";
$l_expiration_imp="Verfallsdatum :";
$v_illimit="Unbegrentz";
$v_without="Ohne";
break;
case 'nl':
$l_title_imp = "ONTVANGST INTERNET";
$l_login_imp = "Gebruikers :";
$l_password_imp = "Wachtwoord :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Sessieduur :";
$l_max_daily_session_imp="Dagelijkse uren :";
$l_max_monthly_session_imp ="Maandelijkse duur :";
$l_expiration_imp="Vervaldatum :";
$v_illimit="Onbeperkte";
$v_without="Ohne";
break;
case 'es':
$l_title_imp = "BONO INTERNET";
$l_login_imp = "Usuario :";
$l_password_imp = "Contraseña :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Duraci&oacute;n de Sesi&oacute;n :";
$l_max_daily_session_imp="Horas diarias :";
$l_max_monthly_session_imp ="Duraci&oacute;n mensual :";
$l_expiration_imp="Fecha de caducidad :";
$v_illimit="Ilimitado";
$v_without="Sin";
break;
case 'it':
$l_title_imp = "RICEVIMENTO INTERNET";
$l_login_imp = "Utenti :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Durata della sessione :";
$l_max_daily_session_imp="Ore giornaliere :";
$l_max_monthly_session_imp ="Durata mensile :";
$l_expiration_imp="Data di scadenza :";
$v_illimit="Illimitato";
$v_without="Senza";
break;
default:
$l_title_imp = "INTERNET VOUCHER";
$l_login_imp = "Login :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :";
$l_session_timeout_imp="Session timeout :";
$l_max_daily_session_imp="Max daily session :";
$l_max_monthly_session_imp ="Max monthly session :";
$l_expiration_imp="Expiration date :";
$v_illimit="Unlimited";
$v_without="Without";
break;
//$langue_imp=$_POST["langue_imp"];
switch ($langue_imp){
case 'fr':
$l_title_imp = "TICKET ACC&Egrave;S INTERNET";
$l_login_imp = "Utilisateur :";
$l_password_imp = "Mot de passe :";
$l_max_all_session_imp="Dur&eacute;e totale autoris&eacute;e :";
$l_session_timeout_imp="Dur&eacute;e d'une session :";
$l_max_daily_session_imp="Dur&eacute;e journali&egrave;re :";
$l_max_monthly_session_imp ="Dur&eacute;e mensuelle :";
$l_expiration_imp="Date d'expiration :";
$v_illimit="Illimit&eacute;e";
$v_without="Aucune";
break;
case 'de':
$l_title_imp = "GUTSCHEIN SPRACHE";
$l_login_imp = "Login :";
$l_password_imp = "Passwort :";
$l_max_all_session_imp="Maximale erlaubt Dauer :";
$l_session_timeout_imp="Dauer der Sitzung :";
$l_max_daily_session_imp="Stunden t&auml;glich :";
$l_max_monthly_session_imp ="monatlich Dauer :";
$l_expiration_imp="Verfallsdatum :";
$v_illimit="Unbegrentz";
$v_without="Ohne";
break;
case 'nl':
$l_title_imp = "ONTVANGST INTERNET";
$l_login_imp = "Gebruikers :";
$l_password_imp = "Wachtwoord :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Sessieduur :";
$l_max_daily_session_imp="Dagelijkse uren :";
$l_max_monthly_session_imp ="Maandelijkse duur :";
$l_expiration_imp="Vervaldatum :";
$v_illimit="Onbeperkte";
$v_without="Ohne";
break;
case 'es':
$l_title_imp = "BONO INTERNET";
$l_login_imp = "Usuario :";
$l_password_imp = "Contraseña :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Duraci&oacute;n de Sesi&oacute;n :";
$l_max_daily_session_imp="Horas diarias :";
$l_max_monthly_session_imp ="Duraci&oacute;n mensual :";
$l_expiration_imp="Fecha de caducidad :";
$v_illimit="Ilimitado";
$v_without="Sin";
break;
case 'it':
$l_title_imp = "RICEVIMENTO INTERNET";
$l_login_imp = "Utenti :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :"; // a traduire
$l_session_timeout_imp="Durata della sessione :";
$l_max_daily_session_imp="Ore giornaliere :";
$l_max_monthly_session_imp ="Durata mensile :";
$l_expiration_imp="Data di scadenza :";
$v_illimit="Illimitato";
$v_without="Senza";
break;
default:
$l_title_imp = "INTERNET VOUCHER";
$l_login_imp = "Login :";
$l_password_imp = "Password :";
$l_max_all_session_imp="Maximun all session time :";
$l_session_timeout_imp="Session timeout :";
$l_max_daily_session_imp="Max daily session :";
$l_max_monthly_session_imp ="Max monthly session :";
$l_expiration_imp="Expiration date :";
$v_illimit="Unlimited";
$v_without="Without";
break;
}
}
?>
/web/css/style_intercept.css
415,4 → 415,19
font-size: 10px;
list-style-type : disc;
padding : 0 0 0 0;
}
#authorized_domain{
height: 40px;
width: 450px;
text-align: left;
display: block;
/* border: 1px solid red;*/
margin-right: 50px;
}
#authorized_domain LI{
text-align: center;
list-style-type : none;
margin-right : 10px;
display: block;
float: left;
}