✏️ 正在编辑: Chart.php
路径:
/home/bpioifn/www/pigmentse/classes/Chart.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /** * 2007-2019 PrestaShop and Contributors * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2019 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class ChartCore { protected static $poolId = 0; protected $width = 600; protected $height = 300; /* Time mode */ protected $timeMode = false; protected $from; protected $to; protected $format; protected $granularity; protected $curves = array(); /** @prototype void public static function init(void) */ public static function init() { if (!self::$poolId) { ++self::$poolId; return true; } } /** @prototype void public function __construct() */ public function __construct() { ++self::$poolId; } /** @prototype void public function setSize(int $width, int $height) */ public function setSize($width, $height) { $this->width = (int) $width; $this->height = (int) $height; } /** @prototype void public function setTimeMode($from, $to, $granularity) */ public function setTimeMode($from, $to, $granularity) { $this->granularity = $granularity; if (Validate::isDate($from)) { $from = strtotime($from); } $this->from = $from; if (Validate::isDate($to)) { $to = strtotime($to); } $this->to = $to; if ($granularity == 'd') { $this->format = '%d/%m/%y'; } if ($granularity == 'w') { $this->format = '%d/%m/%y'; } if ($granularity == 'm') { $this->format = '%m/%y'; } if ($granularity == 'y') { $this->format = '%y'; } $this->timeMode = true; } public function getCurve($i) { if (!array_key_exists($i, $this->curves)) { $this->curves[$i] = new Curve(); } return $this->curves[$i]; } /** @prototype void public function display() */ public function display() { echo $this->fetch(); } public function fetch() { if ($this->timeMode) { $options = 'xaxis:{mode:"time",timeformat:\'' . addslashes($this->format) . '\',min:' . $this->from . '000,max:' . $this->to . '000}'; if ($this->granularity == 'd') { foreach ($this->curves as $curve) { /* @var Curve $curve */ for ($i = $this->from; $i <= $this->to; $i = strtotime('+1 day', $i)) { if (!$curve->getPoint($i)) { $curve->setPoint($i, 0); } } } } } $jsCurves = array(); foreach ($this->curves as $curve) { $jsCurves[] = $curve->getValues($this->timeMode); } if (count($jsCurves)) { return ' <div id="flot' . self::$poolId . '" style="width:' . $this->width . 'px;height:' . $this->height . 'px"></div> <script type="text/javascript"> $(function () { $.plot($(\'#flot' . self::$poolId . '\'), [' . implode(',', $jsCurves) . '], {' . $options . '}); }); </script>'; } else { return ErrorFacade::Display(PS_ERROR_UNDEFINED, 'No values for this chart.'); } } }
💾 保存文件
← 返回文件管理器