| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 | <?php/** PHPExcel root directory */if (!defined('PHPEXCEL_ROOT')) {    /**     * @ignore     */    define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');    require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');}/** * PHPExcel_Settings * * Copyright (c) 2006 - 2015 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA * * @category   PHPExcel * @package    PHPExcel_Settings * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL * @version    ##VERSION##, ##DATE## */class PHPExcel_Settings{    /**    constants */    /**    Available Zip library classes */    const PCLZIP     = 'PHPExcel_Shared_ZipArchive';    const ZIPARCHIVE = 'ZipArchive';    /**    Optional Chart Rendering libraries */    const CHART_RENDERER_JPGRAPH = 'jpgraph';    /**    Optional PDF Rendering libraries */    const PDF_RENDERER_TCPDF  = 'tcPDF';    const PDF_RENDERER_DOMPDF = 'DomPDF';    const PDF_RENDERER_MPDF   = 'mPDF';    private static $chartRenderers = array(        self::CHART_RENDERER_JPGRAPH,    );    private static $pdfRenderers = array(        self::PDF_RENDERER_TCPDF,        self::PDF_RENDERER_DOMPDF,        self::PDF_RENDERER_MPDF,    );    /**     * Name of the class used for Zip file management     *    e.g.     *        ZipArchive     *     * @var string     */    private static $zipClass = self::ZIPARCHIVE;    /**     * Name of the external Library used for rendering charts     *    e.g.     *        jpgraph     *     * @var string     */    private static $chartRendererName;    /**     * Directory Path to the external Library used for rendering charts     *     * @var string     */    private static $chartRendererPath;    /**     * Name of the external Library used for rendering PDF files     *    e.g.     *         mPDF     *     * @var string     */    private static $pdfRendererName;    /**     * Directory Path to the external Library used for rendering PDF files     *     * @var string     */    private static $pdfRendererPath;    /**     * Default options for libxml loader     *     * @var int     */    private static $libXmlLoaderOptions = null;    /**     * Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive)     *     * @param string $zipClass    The Zip handler class that PHPExcel should use for Zip file management     *      e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive     * @return    boolean    Success or failure     */    public static function setZipClass($zipClass)    {        if (($zipClass === self::PCLZIP) ||            ($zipClass === self::ZIPARCHIVE)) {            self::$zipClass = $zipClass;            return true;        }        return false;    }    /**     * Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive)     *    or Zip file management     *     * @return string Name of the Zip handler Class that PHPExcel is configured to use     *    for Zip file management     *    e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive     */    public static function getZipClass()    {        return self::$zipClass;    }    /**     * Return the name of the method that is currently configured for cell cacheing     *     * @return string Name of the cacheing method     */    public static function getCacheStorageMethod()    {        return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod();    }    /**     * Return the name of the class that is currently being used for cell cacheing     *     * @return string Name of the class currently being used for cacheing     */    public static function getCacheStorageClass()    {        return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass();    }    /**     * Set the method that should be used for cell cacheing     *     * @param string $method Name of the cacheing method     * @param array $arguments Optional configuration arguments for the cacheing method     * @return boolean Success or failure     */    public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, $arguments = array())    {        return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments);    }    /**     * Set the locale code to use for formula translations and any special formatting     *     * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk")     * @return boolean Success or failure     */    public static function setLocale($locale = 'en_us')    {        return PHPExcel_Calculation::getInstance()->setLocale($locale);    }    /**     * Set details of the external library that PHPExcel should use for rendering charts     *     * @param string $libraryName    Internal reference name of the library     *    e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH     * @param string $libraryBaseDir Directory path to the library's base folder     *     * @return    boolean    Success or failure     */    public static function setChartRenderer($libraryName, $libraryBaseDir)    {        if (!self::setChartRendererName($libraryName)) {            return false;        }        return self::setChartRendererPath($libraryBaseDir);    }    /**     * Identify to PHPExcel the external library to use for rendering charts     *     * @param string $libraryName    Internal reference name of the library     *    e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH     *     * @return    boolean    Success or failure     */    public static function setChartRendererName($libraryName)    {        if (!in_array($libraryName, self::$chartRenderers)) {            return false;        }        self::$chartRendererName = $libraryName;        return true;    }    /**     * Tell PHPExcel where to find the external library to use for rendering charts     *     * @param string $libraryBaseDir    Directory path to the library's base folder     * @return    boolean    Success or failure     */    public static function setChartRendererPath($libraryBaseDir)    {        if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {            return false;        }        self::$chartRendererPath = $libraryBaseDir;        return true;    }    /**     * Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph)     *     * @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is     *    currently configured to use     *    e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH     */    public static function getChartRendererName()    {        return self::$chartRendererName;    }    /**     * Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use     *     * @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is     *     currently configured to use     */    public static function getChartRendererPath()    {        return self::$chartRendererPath;    }    /**     * Set details of the external library that PHPExcel should use for rendering PDF files     *     * @param string $libraryName Internal reference name of the library     *     e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,     *     PHPExcel_Settings::PDF_RENDERER_DOMPDF     *  or PHPExcel_Settings::PDF_RENDERER_MPDF     * @param string $libraryBaseDir Directory path to the library's base folder     *     * @return boolean Success or failure     */    public static function setPdfRenderer($libraryName, $libraryBaseDir)    {        if (!self::setPdfRendererName($libraryName)) {            return false;        }        return self::setPdfRendererPath($libraryBaseDir);    }    /**     * Identify to PHPExcel the external library to use for rendering PDF files     *     * @param string $libraryName Internal reference name of the library     *     e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,     *    PHPExcel_Settings::PDF_RENDERER_DOMPDF     *     or PHPExcel_Settings::PDF_RENDERER_MPDF     *     * @return boolean Success or failure     */    public static function setPdfRendererName($libraryName)    {        if (!in_array($libraryName, self::$pdfRenderers)) {            return false;        }        self::$pdfRendererName = $libraryName;        return true;    }    /**     * Tell PHPExcel where to find the external library to use for rendering PDF files     *     * @param string $libraryBaseDir Directory path to the library's base folder     * @return boolean Success or failure     */    public static function setPdfRendererPath($libraryBaseDir)    {        if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {            return false;        }        self::$pdfRendererPath = $libraryBaseDir;        return true;    }    /**     * Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf)     *     * @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is     *     currently configured to use     *  e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,     *  PHPExcel_Settings::PDF_RENDERER_DOMPDF     *  or PHPExcel_Settings::PDF_RENDERER_MPDF     */    public static function getPdfRendererName()    {        return self::$pdfRendererName;    }    /**     * Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use     *     * @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is     *        currently configured to use     */    public static function getPdfRendererPath()    {        return self::$pdfRendererPath;    }    /**     * Set options for libxml loader     *     * @param   int   $options   Options for libxml loader     */    public static function setLibXmlLoaderOptions($options = null)    {        if (is_null($options) && defined('LIBXML_DTDLOAD')) {            $options = LIBXML_DTDLOAD | LIBXML_DTDATTR;        }        if (version_compare(PHP_VERSION, '5.2.11') >= 0) {            @libxml_disable_entity_loader((bool) $options);        }        self::$libXmlLoaderOptions = $options;    }    /**     * Get defined options for libxml loader.     * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly.     *     * @return int Default options for libxml loader     */    public static function getLibXmlLoaderOptions()    {        if (is_null(self::$libXmlLoaderOptions) && defined('LIBXML_DTDLOAD')) {            self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR);        } elseif (is_null(self::$libXmlLoaderOptions)) {            self::$libXmlLoaderOptions = true;        }        if (version_compare(PHP_VERSION, '5.2.11') >= 0) {            @libxml_disable_entity_loader((bool) self::$libXmlLoaderOptions);        }        return self::$libXmlLoaderOptions;    }}
 |