source: sourcecode/application/libraries/PHPExcel/Settings.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 11.9 KB
Line 
1<?php
2/**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 * @category   PHPExcel
22 * @package    PHPExcel_Settings
23 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
25 * @version    1.8.0, 2014-03-02
26 */
27
28/** PHPExcel root directory */
29if (!defined('PHPEXCEL_ROOT')) {
30    /**
31     * @ignore
32     */
33    define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');
34    require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
35}
36
37
38class PHPExcel_Settings
39{
40    /**    constants */
41    /**    Available Zip library classes */
42    const PCLZIP        = 'PHPExcel_Shared_ZipArchive';
43    const ZIPARCHIVE    = 'ZipArchive';
44
45    /**    Optional Chart Rendering libraries */
46    const CHART_RENDERER_JPGRAPH    = 'jpgraph';
47
48    /**    Optional PDF Rendering libraries */
49    const PDF_RENDERER_TCPDF            = 'tcPDF';
50    const PDF_RENDERER_DOMPDF           = 'DomPDF';
51    const PDF_RENDERER_MPDF             = 'mPDF';
52
53
54    private static $_chartRenderers = array(
55        self::CHART_RENDERER_JPGRAPH,
56    );
57
58    private static $_pdfRenderers = array(
59        self::PDF_RENDERER_TCPDF,
60        self::PDF_RENDERER_DOMPDF,
61        self::PDF_RENDERER_MPDF,
62    );
63
64
65    /**
66     * Name of the class used for Zip file management
67     *  e.g.
68     *          ZipArchive
69     *
70     * @var string
71     */
72    private static $_zipClass    = self::ZIPARCHIVE;
73
74
75    /**
76     * Name of the external Library used for rendering charts
77     *  e.g.
78     *          jpgraph
79     *
80     * @var string
81     */
82    private static $_chartRendererName = NULL;
83
84    /**
85     * Directory Path to the external Library used for rendering charts
86     *
87     * @var string
88     */
89    private static $_chartRendererPath = NULL;
90
91
92    /**
93     * Name of the external Library used for rendering PDF files
94     *  e.g.
95     *          mPDF
96     *
97     * @var string
98     */
99    private static $_pdfRendererName = NULL;
100
101    /**
102     * Directory Path to the external Library used for rendering PDF files
103     *
104     * @var string
105     */
106    private static $_pdfRendererPath = NULL;
107
108    /**
109     * Default options for libxml loader
110     *
111     * @var int
112     */
113    private static $_libXmlLoaderOptions = null;
114
115    /**
116     * Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive)
117     *
118     * @param string $zipClass  The Zip handler class that PHPExcel should use for Zip file management
119     *   e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive
120     * @return  boolean Success or failure
121     */
122    public static function setZipClass($zipClass)
123    {
124        if (($zipClass === self::PCLZIP) ||
125            ($zipClass === self::ZIPARCHIVE)) {
126            self::$_zipClass = $zipClass;
127            return TRUE;
128        }
129        return FALSE;
130    } // function setZipClass()
131
132
133    /**
134     * Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive)
135     *  or Zip file management
136     *
137     * @return string Name of the Zip handler Class that PHPExcel is configured to use
138     *  for Zip file management
139     *  e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive
140     */
141    public static function getZipClass()
142    {
143        return self::$_zipClass;
144    } // function getZipClass()
145
146
147    /**
148     * Return the name of the method that is currently configured for cell cacheing
149     *
150     * @return string Name of the cacheing method
151     */
152    public static function getCacheStorageMethod()
153    {
154        return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod();
155    } // function getCacheStorageMethod()
156
157
158    /**
159     * Return the name of the class that is currently being used for cell cacheing
160     *
161     * @return string Name of the class currently being used for cacheing
162     */
163    public static function getCacheStorageClass()
164    {
165        return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass();
166    } // function getCacheStorageClass()
167
168
169    /**
170     * Set the method that should be used for cell cacheing
171     *
172     * @param string $method Name of the cacheing method
173     * @param array $arguments Optional configuration arguments for the cacheing method
174     * @return boolean Success or failure
175     */
176    public static function setCacheStorageMethod(
177        $method = PHPExcel_CachedObjectStorageFactory::cache_in_memory,
178      $arguments = array()
179    )
180    {
181        return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments);
182    } // function setCacheStorageMethod()
183
184
185    /**
186     * Set the locale code to use for formula translations and any special formatting
187     *
188     * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk")
189     * @return boolean Success or failure
190     */
191    public static function setLocale($locale='en_us')
192    {
193        return PHPExcel_Calculation::getInstance()->setLocale($locale);
194    } // function setLocale()
195
196
197    /**
198     * Set details of the external library that PHPExcel should use for rendering charts
199     *
200     * @param string $libraryName       Internal reference name of the library
201     *  e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
202     * @param string $libraryBaseDir Directory path to the library's base folder
203     *
204     * @return  boolean Success or failure
205     */
206    public static function setChartRenderer($libraryName, $libraryBaseDir)
207    {
208        if (!self::setChartRendererName($libraryName))
209            return FALSE;
210        return self::setChartRendererPath($libraryBaseDir);
211    } // function setChartRenderer()
212
213
214    /**
215     * Identify to PHPExcel the external library to use for rendering charts
216     *
217     * @param string $libraryName       Internal reference name of the library
218     *  e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
219     *
220     * @return  boolean Success or failure
221     */
222    public static function setChartRendererName($libraryName)
223    {
224        if (!in_array($libraryName,self::$_chartRenderers)) {
225            return FALSE;
226        }
227
228        self::$_chartRendererName = $libraryName;
229
230        return TRUE;
231    } // function setChartRendererName()
232
233
234    /**
235     * Tell PHPExcel where to find the external library to use for rendering charts
236     *
237     * @param string $libraryBaseDir    Directory path to the library's base folder
238     * @return  boolean Success or failure
239     */
240    public static function setChartRendererPath($libraryBaseDir)
241    {
242        if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {
243            return FALSE;
244        }
245        self::$_chartRendererPath = $libraryBaseDir;
246
247        return TRUE;
248    } // function setChartRendererPath()
249
250
251    /**
252     * Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph)
253     *
254     * @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is
255     *  currently configured to use
256     *  e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
257     */
258    public static function getChartRendererName()
259    {
260        return self::$_chartRendererName;
261    } // function getChartRendererName()
262
263
264    /**
265     * Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use
266     *
267     * @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is
268     *  currently configured to use
269     */
270    public static function getChartRendererPath()
271    {
272        return self::$_chartRendererPath;
273    } // function getChartRendererPath()
274
275
276    /**
277     * Set details of the external library that PHPExcel should use for rendering PDF files
278     *
279     * @param string $libraryName Internal reference name of the library
280     *  e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
281     *  PHPExcel_Settings::PDF_RENDERER_DOMPDF
282     *  or PHPExcel_Settings::PDF_RENDERER_MPDF
283     * @param string $libraryBaseDir Directory path to the library's base folder
284     *
285     * @return boolean Success or failure
286     */
287    public static function setPdfRenderer($libraryName, $libraryBaseDir)
288    {
289        if (!self::setPdfRendererName($libraryName))
290            return FALSE;
291        return self::setPdfRendererPath($libraryBaseDir);
292    } // function setPdfRenderer()
293
294
295    /**
296     * Identify to PHPExcel the external library to use for rendering PDF files
297     *
298     * @param string $libraryName Internal reference name of the library
299     *  e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
300     *  PHPExcel_Settings::PDF_RENDERER_DOMPDF
301     *  or PHPExcel_Settings::PDF_RENDERER_MPDF
302     *
303     * @return boolean Success or failure
304     */
305    public static function setPdfRendererName($libraryName)
306    {
307        if (!in_array($libraryName,self::$_pdfRenderers)) {
308            return FALSE;
309        }
310
311        self::$_pdfRendererName = $libraryName;
312
313        return TRUE;
314    } // function setPdfRendererName()
315
316
317    /**
318     * Tell PHPExcel where to find the external library to use for rendering PDF files
319     *
320     * @param string $libraryBaseDir Directory path to the library's base folder
321     * @return boolean Success or failure
322     */
323    public static function setPdfRendererPath($libraryBaseDir)
324    {
325        if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {
326            return FALSE;
327        }
328        self::$_pdfRendererPath = $libraryBaseDir;
329
330        return TRUE;
331    } // function setPdfRendererPath()
332
333
334    /**
335     * Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf)
336     *
337     * @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is
338     *  currently configured to use
339     *  e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
340     *  PHPExcel_Settings::PDF_RENDERER_DOMPDF
341     *  or PHPExcel_Settings::PDF_RENDERER_MPDF
342     */
343    public static function getPdfRendererName()
344    {
345        return self::$_pdfRendererName;
346    } // function getPdfRendererName()
347
348    /**
349     * Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use
350     *
351     * @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is
352     *          currently configured to use
353     */
354    public static function getPdfRendererPath()
355    {
356        return self::$_pdfRendererPath;
357    } // function getPdfRendererPath()
358
359    /**
360     * Set default options for libxml loader
361     *
362     * @param int $options Default options for libxml loader
363     */
364    public static function setLibXmlLoaderOptions($options = null)
365    {
366        if (is_null($options)) {
367            $options = LIBXML_DTDLOAD | LIBXML_DTDATTR;
368        }
369        @libxml_disable_entity_loader($options == (LIBXML_DTDLOAD | LIBXML_DTDATTR));
370        self::$_libXmlLoaderOptions = $options;
371    } // function setLibXmlLoaderOptions
372
373    /**
374     * Get default options for libxml loader.
375     * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly.
376     *
377     * @return int Default options for libxml loader
378     */
379    public static function getLibXmlLoaderOptions()
380    {
381        if (is_null(self::$_libXmlLoaderOptions)) {
382            self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR);
383        }
384        @libxml_disable_entity_loader($options == (LIBXML_DTDLOAD | LIBXML_DTDATTR));
385        return self::$_libXmlLoaderOptions;
386    } // function getLibXmlLoaderOptions
387}
Note: See TracBrowser for help on using the repository browser.