[107] | 1 | <?php
|
---|
| 2 | /**
|
---|
| 3 | * HTML2PDF Librairy - HTML2PDF Exception
|
---|
| 4 | *
|
---|
| 5 | * HTML => PDF convertor
|
---|
| 6 | * distributed under the LGPL License
|
---|
| 7 | *
|
---|
| 8 | * @author Laurent MINGUET <webmaster@html2pdf.fr>
|
---|
| 9 | * @version 4.03
|
---|
| 10 | */
|
---|
| 11 |
|
---|
| 12 | class HTML2PDF_exception extends exception
|
---|
| 13 | {
|
---|
| 14 | protected $_tag = null;
|
---|
| 15 | protected $_html = null;
|
---|
| 16 | protected $_other = null;
|
---|
| 17 | protected $_image = null;
|
---|
| 18 | protected $_messageHtml = '';
|
---|
| 19 |
|
---|
| 20 | /**
|
---|
| 21 | * generate a HTML2PDF exception
|
---|
| 22 | *
|
---|
| 23 | * @param int $err error number
|
---|
| 24 | * @param mixed $other additionnal informations
|
---|
| 25 | * @return string $html optionnal code HTML associated to the error
|
---|
| 26 | */
|
---|
| 27 | final public function __construct($err = 0, $other = null, $html = '')
|
---|
| 28 | {
|
---|
| 29 | // read the error
|
---|
| 30 | switch($err)
|
---|
| 31 | {
|
---|
| 32 | case 1: // Unsupported tag
|
---|
| 33 | $msg = (HTML2PDF_locale::get('err01'));
|
---|
| 34 | $msg = str_replace('[[OTHER]]', $other, $msg);
|
---|
| 35 | $this->_tag = $other;
|
---|
| 36 | break;
|
---|
| 37 |
|
---|
| 38 | case 2: // too long sentence
|
---|
| 39 | $msg = (HTML2PDF_locale::get('err02'));
|
---|
| 40 | $msg = str_replace('[[OTHER_0]]', $other[0], $msg);
|
---|
| 41 | $msg = str_replace('[[OTHER_1]]', $other[1], $msg);
|
---|
| 42 | $msg = str_replace('[[OTHER_2]]', $other[2], $msg);
|
---|
| 43 | break;
|
---|
| 44 |
|
---|
| 45 | case 3: // closing tag in excess
|
---|
| 46 | $msg = (HTML2PDF_locale::get('err03'));
|
---|
| 47 | $msg = str_replace('[[OTHER]]', $other, $msg);
|
---|
| 48 | $this->_tag = $other;
|
---|
| 49 | break;
|
---|
| 50 |
|
---|
| 51 | case 4: // tags closed in the wrong order
|
---|
| 52 | $msg = (HTML2PDF_locale::get('err04'));
|
---|
| 53 | $msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
|
---|
| 54 | break;
|
---|
| 55 |
|
---|
| 56 | case 5: // unclosed tag
|
---|
| 57 | $msg = (HTML2PDF_locale::get('err05'));
|
---|
| 58 | $msg = str_replace('[[OTHER]]', print_r($other, true), $msg);
|
---|
| 59 | break;
|
---|
| 60 |
|
---|
| 61 | case 6: // image can not be loaded
|
---|
| 62 | $msg = (HTML2PDF_locale::get('err06'));
|
---|
| 63 | $msg = str_replace('[[OTHER]]', $other, $msg);
|
---|
| 64 | $this->_image = $other;
|
---|
| 65 | break;
|
---|
| 66 |
|
---|
| 67 | case 7: // too big TD content
|
---|
| 68 | $msg = (HTML2PDF_locale::get('err07'));
|
---|
| 69 | break;
|
---|
| 70 |
|
---|
| 71 | case 8: // SVG tag not in DRAW tag
|
---|
| 72 | $msg = (HTML2PDF_locale::get('err08'));
|
---|
| 73 | $msg = str_replace('[[OTHER]]', $other, $msg);
|
---|
| 74 | $this->_tag = $other;
|
---|
| 75 | break;
|
---|
| 76 |
|
---|
| 77 | case 9: // deprecated
|
---|
| 78 | $msg = (HTML2PDF_locale::get('err09'));
|
---|
| 79 | $msg = str_replace('[[OTHER_0]]', $other[0], $msg);
|
---|
| 80 | $msg = str_replace('[[OTHER_1]]', $other[1], $msg);
|
---|
| 81 | $this->_tag = $other[0];
|
---|
| 82 | break;
|
---|
| 83 |
|
---|
| 84 | case 0: // specific error
|
---|
| 85 | default:
|
---|
| 86 | $msg = $other;
|
---|
| 87 | break;
|
---|
| 88 | }
|
---|
| 89 |
|
---|
| 90 | // create the HTML message
|
---|
| 91 | $this->_messageHtml = '<span style="color: #AA0000; font-weight: bold;">'.HTML2PDF_locale::get('txt01', 'error: ').$err.'</span><br>';
|
---|
| 92 | $this->_messageHtml.= HTML2PDF_locale::get('txt02', 'file:').' '.$this->file.'<br>';
|
---|
| 93 | $this->_messageHtml.= HTML2PDF_locale::get('txt03', 'line:').' '.$this->line.'<br>';
|
---|
| 94 | $this->_messageHtml.= '<br>';
|
---|
| 95 | $this->_messageHtml.= $msg;
|
---|
| 96 |
|
---|
| 97 | // create the text message
|
---|
| 98 | $msg = HTML2PDF_locale::get('txt01', 'error: ').$err.' : '.strip_tags($msg);
|
---|
| 99 |
|
---|
| 100 | // add the optionnal html content
|
---|
| 101 | if ($html) {
|
---|
| 102 | $this->_messageHtml.= "<br><br>HTML : ...".trim(htmlentities($html)).'...';
|
---|
| 103 | $this->_html = $html;
|
---|
| 104 | $msg.= ' HTML : ...'.trim($html).'...';
|
---|
| 105 | }
|
---|
| 106 |
|
---|
| 107 | // save the other informations
|
---|
| 108 | $this->_other = $other;
|
---|
| 109 |
|
---|
| 110 | // construct the exception
|
---|
| 111 | parent::__construct($msg, $err);
|
---|
| 112 | }
|
---|
| 113 |
|
---|
| 114 | /**
|
---|
| 115 | * get the message as string
|
---|
| 116 | *
|
---|
| 117 | * @access public
|
---|
| 118 | * @return string $messageHtml
|
---|
| 119 | */
|
---|
| 120 | public function __toString()
|
---|
| 121 | {
|
---|
| 122 | return $this->_messageHtml;
|
---|
| 123 | }
|
---|
| 124 |
|
---|
| 125 | /**
|
---|
| 126 | * get the html tag name
|
---|
| 127 | *
|
---|
| 128 | * @access public
|
---|
| 129 | * @return string $tagName
|
---|
| 130 | */
|
---|
| 131 | public function getTAG()
|
---|
| 132 | {
|
---|
| 133 | return $this->_tag;
|
---|
| 134 | }
|
---|
| 135 |
|
---|
| 136 | /**
|
---|
| 137 | * get the optional html code
|
---|
| 138 | *
|
---|
| 139 | * @access public
|
---|
| 140 | * @return string $html
|
---|
| 141 | */
|
---|
| 142 | public function getHTML()
|
---|
| 143 | {
|
---|
| 144 | return $this->_html;
|
---|
| 145 | }
|
---|
| 146 |
|
---|
| 147 | /**
|
---|
| 148 | * get the optional other informations
|
---|
| 149 | *
|
---|
| 150 | * @access public
|
---|
| 151 | * @return mixed $other
|
---|
| 152 | */
|
---|
| 153 | public function getOTHER()
|
---|
| 154 | {
|
---|
| 155 | return $this->_other;
|
---|
| 156 | }
|
---|
| 157 |
|
---|
| 158 | /**
|
---|
| 159 | * get the image source
|
---|
| 160 | *
|
---|
| 161 | * @access public
|
---|
| 162 | * @return string $imageSrc
|
---|
| 163 | */
|
---|
| 164 | public function getIMAGE()
|
---|
| 165 | {
|
---|
| 166 | return $this->_image;
|
---|
| 167 | }
|
---|
| 168 | }
|
---|