prog/boffice/_class/exception.class.php

168 lines
4.9 KiB
PHP

<?php
/**
* HTML2PDF Librairy - HTML2PDF Exception
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
* @version 4.03
*/
class HTML2PDF_exception extends exception
{
protected $_tag = null;
protected $_html = null;
protected $_other = null;
protected $_image = null;
protected $_messageHtml = '';
/**
* generate a HTML2PDF exception
*
* @param int $err error number
* @param mixed $other additionnal informations
* @return string $html optionnal code HTML associated to the error
*/
final public function __construct($err = 0, $other = null, $html = '')
{
// read the error
switch($err)
{
case 1: // Unsupported tag
$msg = (HTML2PDF_locale::get('err01'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 2: // too long sentence
$msg = (HTML2PDF_locale::get('err02'));
$msg = str_replace('[[OTHER_0]]', $other[0], $msg);
$msg = str_replace('[[OTHER_1]]', $other[1], $msg);
$msg = str_replace('[[OTHER_2]]', $other[2], $msg);
break;
case 3: // closing tag in excess
$msg = (HTML2PDF_locale::get('err03'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 4: // tags closed in the wrong order
$msg = (HTML2PDF_locale::get('err04'));
$msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
break;
case 5: // unclosed tag
$msg = (HTML2PDF_locale::get('err05'));
$msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
break;
case 6: // image can not be loaded
$msg = (HTML2PDF_locale::get('err06'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_image = $other;
break;
case 7: // too big TD content
$msg = (HTML2PDF_locale::get('err07'));
break;
case 8: // SVG tag not in DRAW tag
$msg = (HTML2PDF_locale::get('err08'));
$msg = str_replace('[[OTHER]]', $other, $msg);
$this->_tag = $other;
break;
case 9: // deprecated
$msg = (HTML2PDF_locale::get('err09'));
$msg = str_replace('[[OTHER_0]]', $other[0], $msg);
$msg = str_replace('[[OTHER_1]]', $other[1], $msg);
$this->_tag = $other[0];
break;
case 0: // specific error
default:
$msg = $other;
break;
}
// create the HTML message
$this->_messageHtml = '<span style="color: #AA0000; font-weight: bold;">'.HTML2PDF_locale::get('txt01', 'error: ').$err.'</span><br>';
$this->_messageHtml.= HTML2PDF_locale::get('txt02', 'file:').' '.$this->file.'<br>';
$this->_messageHtml.= HTML2PDF_locale::get('txt03', 'line:').' '.$this->line.'<br>';
$this->_messageHtml.= '<br>';
$this->_messageHtml.= $msg;
// create the text message
$msg = HTML2PDF_locale::get('txt01', 'error: ').$err.' : '.strip_tags($msg);
// add the optionnal html content
if ($html) {
$this->_messageHtml.= "<br><br>HTML : ...".trim(htmlentities($html)).'...';
$this->_html = $html;
$msg.= ' HTML : ...'.trim($html).'...';
}
// save the other informations
$this->_other = $other;
// construct the exception
parent::__construct($msg, $err);
}
/**
* get the message as string
*
* @access public
* @return string $messageHtml
*/
public function __toString()
{
return $this->_messageHtml;
}
/**
* get the html tag name
*
* @access public
* @return string $tagName
*/
public function getTAG()
{
return $this->_tag;
}
/**
* get the optional html code
*
* @access public
* @return string $html
*/
public function getHTML()
{
return $this->_html;
}
/**
* get the optional other informations
*
* @access public
* @return mixed $other
*/
public function getOTHER()
{
return $this->_other;
}
/**
* get the image source
*
* @access public
* @return string $imageSrc
*/
public function getIMAGE()
{
return $this->_image;
}
}