PluginProbe
TablePress – Tables in WordPress made easy / 3.4
TablePress – Tables in WordPress made easy v3.4
3.4 3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.12 1.14 1.9.2 2.0.4 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 2.4.3 All 45 releases
← All changes | libraries/vendor/PhpSpreadsheet/Reader/Xlsx/Chart.php +80 -22 3.3.1 → 3.4 View file →
@@ -7,8 +7,9 @@
7 7 use TablePress\PhpOffice\PhpSpreadsheet\Chart\AxisText;
8 8 use TablePress\PhpOffice\PhpSpreadsheet\Chart\ChartColor;
9 9 use TablePress\PhpOffice\PhpSpreadsheet\Chart\DataSeries;
10 10 use TablePress\PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
11 +use TablePress\PhpOffice\PhpSpreadsheet\Chart\DataTable;
11 12 use TablePress\PhpOffice\PhpSpreadsheet\Chart\GridLines;
12 13 use TablePress\PhpOffice\PhpSpreadsheet\Chart\Layout;
13 14 use TablePress\PhpOffice\PhpSpreadsheet\Chart\Legend;
14 15 use TablePress\PhpOffice\PhpSpreadsheet\Chart\PlotArea;
@@ -90,15 +91,28 @@
90 91 $chartBorderLines = null;
91 92 $chartFillColor = null;
92 93 $gradientArray = [];
93 94 $gradientLin = null;
94 - $roundedCorners = false;
95 + $roundedCorners = null;
96 + $date1904 = null;
97 + $lang = null;
95 98 $gapWidth = null;
96 99 $useUpBars = null;
97 100 $useDownBars = null;
98 101 $noBorder = false;
102 + $pageMargins = [];
103 + $pageSetup = [];
99 104 foreach ($chartElementsC as $chartElementKey => $chartElement) {
100 105 switch ($chartElementKey) {
106 + case 'printSettings':
107 + if (isset($chartElement->pageMargins)) {
108 + $pageMargins = current((array) $chartElement->pageMargins->attributes());
109 + }
110 + if (isset($chartElement->pageSetup)) {
111 + $pageSetup = current((array) $chartElement->pageSetup->attributes());
112 + }
113 +
114 + break;
101 115 case 'spPr':
102 116 $children = $chartElementsC->spPr->children($this->aNamespace);
103 117 if (isset($children->noFill)) {
104 118 $chartNoFill = true;
@@ -115,18 +129,24 @@
115 129 }
116 130
117 131 break;
118 132 case 'roundedCorners':
119 - /** @var bool $roundedCorners */
120 133 $roundedCorners = self::getAttributeBoolean($chartElementsC->roundedCorners, 'val');
121 134
122 135 break;
136 + case 'date1904':
137 + $date1904 = self::getAttributeBoolean($chartElementsC->date1904, 'val');
138 +
139 + break;
140 + case 'lang':
141 + $lang = self::getAttributeString($chartElementsC->lang, 'val');
142 +
143 + break;
123 144 case 'chart':
124 145 foreach ($chartElement as $chartDetailsKey => $chartDetails) {
125 146 $chartDetails = Xlsx::testSimpleXml($chartDetails);
126 147 switch ($chartDetailsKey) {
127 148 case 'autoTitleDeleted':
128 - /** @var bool $autoTitleDeleted */
129 149 $autoTitleDeleted = self::getAttributeBoolean($chartElementsC->chart->autoTitleDeleted, 'val');
130 150
131 151 break;
132 152 case 'view3D':
@@ -136,9 +156,9 @@
136 156 $perspective = self::getAttributeInteger($chartDetails->perspective, 'val');
137 157
138 158 break;
139 159 case 'plotArea':
140 - $plotAreaLayout = $XaxisLabel = $YaxisLabel = null;
160 + $plotAreaLayout = $XaxisLabel = $YaxisLabel = $dataTable = null;
141 161 $plotSeries = $plotAttributes = [];
142 162 $catAxRead = false;
143 163 $plotNoFill = false;
144 164 foreach ($chartDetails as $chartDetailKey => $chartDetail) {
@@ -358,8 +378,12 @@
358 378 }
359 379 $plotAttributes = $this->readChartAttributes($chartDetail);
360 380
361 381 break;
382 + case 'dTable':
383 + $dataTable = $this->readDataTable($chartDetail);
384 +
385 + break;
362 386 }
363 387 }
364 388 if ($plotAreaLayout == null) {
365 389 $plotAreaLayout = new Layout();
@@ -364,8 +388,13 @@
364 388 if ($plotAreaLayout == null) {
365 389 $plotAreaLayout = new Layout();
366 390 }
367 391 $plotArea = new PlotArea($plotAreaLayout, $plotSeries);
392 + if ($dataTable !== null) {
393 + $plotArea->setDataTable(
394 + $dataTable
395 + );
396 + }
368 397 $this->setChartAttributes($plotAreaLayout, $plotAttributes);
369 398 if ($plotNoFill) {
370 399 $plotArea->setNoFill(true);
371 400 }
@@ -471,25 +500,20 @@
471 500 }
472 501 if ($chartBorderLines !== null) {
473 502 $chart->setBorderLines($chartBorderLines);
474 503 }
475 - $chart->setNoBorder($noBorder);
476 - $chart->setRoundedCorners($roundedCorners);
477 - if (is_bool($autoTitleDeleted)) {
478 - $chart->setAutoTitleDeleted($autoTitleDeleted);
479 - }
480 - if (is_int($rotX)) {
481 - $chart->setRotX($rotX);
482 - }
483 - if (is_int($rotY)) {
484 - $chart->setRotY($rotY);
485 - }
486 - if (is_int($rAngAx)) {
487 - $chart->setRAngAx($rAngAx);
488 - }
489 - if (is_int($perspective)) {
490 - $chart->setPerspective($perspective);
491 - }
504 + $chart
505 + ->setNoBorder($noBorder)
506 + ->setRoundedCorners($roundedCorners)
507 + ->setDate1904($date1904)
508 + ->setLang($lang)
509 + ->setPageMargins($pageMargins)
510 + ->setPageSetup($pageSetup)
511 + ->setAutoTitleDeleted($autoTitleDeleted)
512 + ->setRotX($rotX)
513 + ->setRotY($rotY)
514 + ->setRAngAx($rAngAx)
515 + ->setPerspective($perspective);
492 516
493 517 return $chart;
494 518 }
495 519
@@ -1203,9 +1227,12 @@
1203 1227 $fontArray['size'] = (int) ($fontArray['size']);
1204 1228 }
1205 1229 $fontArray['bold'] = (bool) self::getAttributeBoolean($titleDetailPart->pPr->defRPr, 'b');
1206 1230 $fontArray['italic'] = (bool) self::getAttributeBoolean($titleDetailPart->pPr->defRPr, 'i');
1207 - $fontArray['underscore'] = self::getAttributeString($titleDetailPart->pPr->defRPr, 'u');
1231 + $temp = self::getAttributeString($titleDetailPart->pPr->defRPr, 'u');
1232 + if (is_string($temp) && $temp !== '') {
1233 + $fontArray['underline'] = $temp;
1234 + }
1208 1235 $strikethrough = self::getAttributeString($titleDetailPart->pPr->defRPr, 'strike');
1209 1236 if ($strikethrough !== null) {
1210 1237 if ($strikethrough == 'noStrike') {
1211 1238 $fontArray['strikethrough'] = false;
@@ -1285,8 +1312,11 @@
1285 1312 $this->readEffects($txpr->p->pPr->defRPr, $labelEffects, false);
1286 1313 $plotAttributes['labelEffects'] = $labelEffects;
1287 1314 }
1288 1315 }
1316 + if (isset($txpr->bodyPr)) {
1317 + $plotAttributes['bodyPr'] = current((array) $txpr->bodyPr->attributes());
1318 + }
1289 1319 }
1290 1320 }
1291 1321
1292 1322 return $plotAttributes;
@@ -1291,8 +1321,31 @@
1291 1321
1292 1322 return $plotAttributes;
1293 1323 }
1294 1324
1325 + private function readDataTable(SimpleXMLElement $chartDetail): DataTable
1326 + {
1327 + $dataTable = new DataTable();
1328 + $temp = self::getAttributeBoolean($chartDetail->showHorzBorder, 'val');
1329 + if ($temp !== null) {
1330 + $dataTable->setShowHorizontalBorder($temp);
1331 + }
1332 + $temp = self::getAttributeBoolean($chartDetail->showVertBorder, 'val');
1333 + if ($temp !== null) {
1334 + $dataTable->setShowVerticalBorder($temp);
1335 + }
1336 + $temp = self::getAttributeBoolean($chartDetail->showOutline, 'val');
1337 + if ($temp !== null) {
1338 + $dataTable->setShowOutline($temp);
1339 + }
1340 + $temp = self::getAttributeBoolean($chartDetail->showKeys, 'val');
1341 + if ($temp !== null) {
1342 + $dataTable->setShowKeys($temp);
1343 + }
1344 +
1345 + return $dataTable;
1346 + }
1347 +
1295 1348 /** @param array<mixed> $plotAttributes */
1296 1349 private function setChartAttributes(Layout $plotArea, array $plotAttributes): void
1297 1350 {
1298 1351 foreach ($plotAttributes as $plotAttributeKey => $plotAttributeValue) {
@@ -1328,8 +1381,13 @@
1328 1381 break;
1329 1382 case 'labelFont':
1330 1383 /** @var ?Font $plotAttributeValue */
1331 1384 $plotArea->setLabelFont($plotAttributeValue);
1385 +
1386 + break;
1387 + case 'bodyPr':
1388 + /** @var mixed $plotAttributeValue */
1389 + $plotArea->setBodyPr($plotAttributeValue);
1332 1390
1333 1391 break;
1334 1392 }
1335 1393 }