PhpSpreadsheet/Classes/PHPExcel/Settings.php

388 lines
12 KiB
PHP
Raw Normal View History

<?php
2015-05-07 00:14:36 +00:00
/** PHPExcel root directory */
if (!defined('PHPEXCEL_ROOT')) {
/**
* @ignore
*/
define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');
require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
}
/**
2015-05-07 00:14:36 +00:00
* PHPExcel_Settings
*
2015-05-02 22:50:37 +00:00
* 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
2015-05-02 22:50:37 +00:00
* @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
2013-02-09 11:24:19 +00:00
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
class PHPExcel_Settings
{
2013-02-09 11:24:19 +00:00
/** constants */
/** Available Zip library classes */
2015-05-07 00:14:36 +00:00
const PCLZIP = 'PHPExcel_Shared_ZipArchive';
const ZIPARCHIVE = 'ZipArchive';
2013-02-09 11:24:19 +00:00
/** Optional Chart Rendering libraries */
2015-05-07 00:14:36 +00:00
const CHART_RENDERER_JPGRAPH = 'jpgraph';
2013-02-09 11:24:19 +00:00
/** Optional PDF Rendering libraries */
2015-05-07 00:14:36 +00:00
const PDF_RENDERER_TCPDF = 'tcPDF';
const PDF_RENDERER_DOMPDF = 'DomPDF';
const PDF_RENDERER_MPDF = 'mPDF';
2013-02-09 11:24:19 +00:00
2015-05-07 00:14:36 +00:00
private static $chartRenderers = array(
2013-02-09 11:24:19 +00:00
self::CHART_RENDERER_JPGRAPH,
);
2015-05-07 00:14:36 +00:00
private static $pdfRenderers = array(
2013-02-09 11:24:19 +00:00
self::PDF_RENDERER_TCPDF,
self::PDF_RENDERER_DOMPDF,
self::PDF_RENDERER_MPDF,
);
/**
* Name of the class used for Zip file management
2015-05-07 00:14:36 +00:00
* e.g.
* ZipArchive
2013-02-09 11:24:19 +00:00
*
* @var string
*/
2015-05-07 00:14:36 +00:00
private static $zipClass = self::ZIPARCHIVE;
2013-02-09 11:24:19 +00:00
/**
* Name of the external Library used for rendering charts
2015-05-07 00:14:36 +00:00
* e.g.
* jpgraph
2013-02-09 11:24:19 +00:00
*
* @var string
*/
2015-05-07 00:14:36 +00:00
private static $chartRendererName;
2013-02-09 11:24:19 +00:00
/**
* Directory Path to the external Library used for rendering charts
*
* @var string
*/
2015-05-07 00:14:36 +00:00
private static $chartRendererPath;
2013-02-09 11:24:19 +00:00
/**
* Name of the external Library used for rendering PDF files
2015-05-07 00:14:36 +00:00
* e.g.
* mPDF
2013-02-09 11:24:19 +00:00
*
* @var string
*/
2015-05-07 00:14:36 +00:00
private static $pdfRendererName;
2013-02-09 11:24:19 +00:00
/**
* Directory Path to the external Library used for rendering PDF files
*
* @var string
*/
2015-05-07 00:14:36 +00:00
private static $pdfRendererPath;
2013-02-09 11:24:19 +00:00
/**
* Default options for libxml loader
*
* @var int
*/
2015-05-07 00:14:36 +00:00
private static $libXmlLoaderOptions = null;
2013-02-09 11:24:19 +00:00
/**
* Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive)
*
2015-05-07 00:14:36 +00:00
* @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
2013-02-09 11:24:19 +00:00
*/
public static function setZipClass($zipClass)
{
if (($zipClass === self::PCLZIP) ||
($zipClass === self::ZIPARCHIVE)) {
2015-05-07 00:14:36 +00:00
self::$zipClass = $zipClass;
return true;
2013-02-09 11:24:19 +00:00
}
2015-05-07 00:14:36 +00:00
return false;
}
2013-02-09 11:24:19 +00:00
/**
* Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive)
2015-05-07 00:14:36 +00:00
* or Zip file management
2013-02-09 11:24:19 +00:00
*
* @return string Name of the Zip handler Class that PHPExcel is configured to use
2015-05-07 00:14:36 +00:00
* for Zip file management
* e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive
2013-02-09 11:24:19 +00:00
*/
public static function getZipClass()
{
2015-05-07 00:14:36 +00:00
return self::$zipClass;
}
2013-02-09 11:24:19 +00:00
/**
* 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();
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* 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();
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* 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
*/
2015-05-07 00:14:36 +00:00
public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, $arguments = array())
2013-02-09 11:24:19 +00:00
{
return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments);
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* 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
*/
2015-05-07 00:14:36 +00:00
public static function setLocale($locale = 'en_us')
2013-02-09 11:24:19 +00:00
{
return PHPExcel_Calculation::getInstance()->setLocale($locale);
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* Set details of the external library that PHPExcel should use for rendering charts
*
2015-05-07 00:14:36 +00:00
* @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
2013-02-09 11:24:19 +00:00
* @param string $libraryBaseDir Directory path to the library's base folder
*
2015-05-07 00:14:36 +00:00
* @return boolean Success or failure
2013-02-09 11:24:19 +00:00
*/
public static function setChartRenderer($libraryName, $libraryBaseDir)
{
2015-05-07 00:14:36 +00:00
if (!self::setChartRendererName($libraryName)) {
return false;
}
2013-02-09 11:24:19 +00:00
return self::setChartRendererPath($libraryBaseDir);
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* Identify to PHPExcel the external library to use for rendering charts
*
2015-05-07 00:14:36 +00:00
* @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
2013-02-09 11:24:19 +00:00
*
2015-05-07 00:14:36 +00:00
* @return boolean Success or failure
2013-02-09 11:24:19 +00:00
*/
public static function setChartRendererName($libraryName)
{
2015-05-07 00:14:36 +00:00
if (!in_array($libraryName, self::$chartRenderers)) {
return false;
2013-02-09 11:24:19 +00:00
}
2015-05-07 00:14:36 +00:00
self::$chartRendererName = $libraryName;
2013-02-09 11:24:19 +00:00
2015-05-07 00:14:36 +00:00
return true;
}
2013-02-09 11:24:19 +00:00
/**
* Tell PHPExcel where to find the external library to use for rendering charts
*
2015-05-07 00:14:36 +00:00
* @param string $libraryBaseDir Directory path to the library's base folder
* @return boolean Success or failure
2013-02-09 11:24:19 +00:00
*/
public static function setChartRendererPath($libraryBaseDir)
{
if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {
2015-05-07 00:14:36 +00:00
return false;
2013-02-09 11:24:19 +00:00
}
2015-05-07 00:14:36 +00:00
self::$chartRendererPath = $libraryBaseDir;
2013-02-09 11:24:19 +00:00
2015-05-07 00:14:36 +00:00
return true;
}
2013-02-09 11:24:19 +00:00
/**
* 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
2015-05-07 00:14:36 +00:00
* currently configured to use
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
2013-02-09 11:24:19 +00:00
*/
public static function getChartRendererName()
{
2015-05-07 00:14:36 +00:00
return self::$chartRendererName;
}
2013-02-09 11:24:19 +00:00
/**
* 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
2015-05-07 00:14:36 +00:00
* currently configured to use
2013-02-09 11:24:19 +00:00
*/
public static function getChartRendererPath()
{
2015-05-07 00:14:36 +00:00
return self::$chartRendererPath;
}
2013-02-09 11:24:19 +00:00
/**
* Set details of the external library that PHPExcel should use for rendering PDF files
*
* @param string $libraryName Internal reference name of the library
2015-05-07 00:14:36 +00:00
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF
2013-02-09 11:24:19 +00:00
* 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)
{
2015-05-07 00:14:36 +00:00
if (!self::setPdfRendererName($libraryName)) {
return false;
}
2013-02-09 11:24:19 +00:00
return self::setPdfRendererPath($libraryBaseDir);
2015-05-07 00:14:36 +00:00
}
2013-02-09 11:24:19 +00:00
/**
* Identify to PHPExcel the external library to use for rendering PDF files
*
* @param string $libraryName Internal reference name of the library
2015-05-07 00:14:36 +00:00
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF
* or PHPExcel_Settings::PDF_RENDERER_MPDF
2013-02-09 11:24:19 +00:00
*
* @return boolean Success or failure
*/
public static function setPdfRendererName($libraryName)
{
2015-05-07 00:14:36 +00:00
if (!in_array($libraryName, self::$pdfRenderers)) {
return false;
2013-02-09 11:24:19 +00:00
}
self::$_pdfRendererName = $libraryName;
2015-05-07 00:14:36 +00:00
return true;
}
2013-02-09 11:24:19 +00:00
/**
* 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)) {
2015-05-07 00:14:36 +00:00
return false;
2013-02-09 11:24:19 +00:00
}
2015-05-07 00:14:36 +00:00
self::$pdfRendererPath = $libraryBaseDir;
2013-02-09 11:24:19 +00:00
2015-05-07 00:14:36 +00:00
return true;
}
2013-02-09 11:24:19 +00:00
/**
* 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
2015-05-07 00:14:36 +00:00
* currently configured to use
2013-02-09 11:24:19 +00:00
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF
* or PHPExcel_Settings::PDF_RENDERER_MPDF
*/
public static function getPdfRendererName()
{
2015-05-07 00:14:36 +00:00
return self::$pdfRendererName;
}
2013-02-09 11:24:19 +00:00
/**
* 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
2015-05-07 00:14:36 +00:00
* currently configured to use
2013-02-09 11:24:19 +00:00
*/
public static function getPdfRendererPath()
{
2015-05-07 00:14:36 +00:00
return self::$pdfRendererPath;
}
/**
* Set default options for libxml loader
*
* @param int $options Default 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) {
2015-05-07 00:14:36 +00:00
@libxml_disable_entity_loader($options == (LIBXML_DTDLOAD | LIBXML_DTDATTR));
}
self::$_libXmlLoaderOptions = $options;
2015-05-07 00:14:36 +00:00
}
/**
* Get default 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);
}
if (version_compare(PHP_VERSION, '5.2.11') >= 0) {
2015-05-07 00:14:36 +00:00
@libxml_disable_entity_loader(self::$libXmlLoaderOptions == (LIBXML_DTDLOAD | LIBXML_DTDATTR));
}
return self::$_libXmlLoaderOptions;
2015-05-07 00:14:36 +00:00
}
}