| @@ -452,12 +452,14 @@ | ||
| 452 | 452 | case 'above' : $inside = false; $vpos = 'ot'; |
| 453 | 453 | break; |
| 454 | 454 | case 'below' : $inside = false; $vpos = 'ob'; |
| 455 | 455 | break; |
| 456 | + // BEGIN e2pdf | |
| 456 | 457 | case 'center' : $hpos = $inside ? 'c' : 'oc'; |
| 457 | 458 | break; |
| 458 | 459 | case 'middle' : $vpos = $inside ? 'm' : 'om'; |
| 459 | 460 | break; |
| 461 | + // END e2pdf | |
| 460 | 462 | default: |
| 461 | 463 | if(is_numeric($part)) { |
| 462 | 464 | $offset_x = $part; |
| 463 | 465 | if(count($parts) && is_numeric($parts[0])) |
| @@ -478,8 +480,9 @@ | ||
| 478 | 480 | { |
| 479 | 481 | list($hpos, $vpos, $offset_x, $offset_y) = Graph::translatePosition($pos); |
| 480 | 482 | |
| 481 | 483 | // if the containers have no thickness, position outside |
| 484 | + //e2pdf | |
| 482 | 485 | $translate = ['l' => 'ol', 'r' => 'or', 't' => 'ot', 'b' => 'ob', 'c' => 'oc', 'm' => 'om']; |
| 483 | 486 | if($top == $bottom && isset($translate[$vpos])) |
| 484 | 487 | $vpos = $translate[$vpos]; |
| 485 | 488 | if($left == $right && isset($translate[$hpos])) |
| @@ -489,8 +492,9 @@ | ||
| 489 | 492 | case 'ot' : $y = $top - $height - $pad; break; |
| 490 | 493 | case 't' : $y = $top + $pad; break; |
| 491 | 494 | case 'b' : $y = $bottom - $height - $pad; break; |
| 492 | 495 | case 'ob' : $y = $bottom + $pad; break; |
| 496 | + // e2pdf | |
| 493 | 497 | case 'om': $y = $top + ($bottom - $top - $height) / 2; break; |
| 494 | 498 | case 'm' : |
| 495 | 499 | default : |
| 496 | 500 | $y = $top + ($bottom - $top - $height) / 2; break; |
| @@ -502,8 +506,9 @@ | ||
| 502 | 506 | case 'ol' : $x = $left - $width - $pad; break; |
| 503 | 507 | case 'l' : $x = $left + $pad; break; |
| 504 | 508 | case 'r' : $x = $right - $width - $pad; break; |
| 505 | 509 | case 'or' : $x = $right + $pad; break; |
| 510 | + // e2pdf | |
| 506 | 511 | case 'oc' : $x = $left + ($right - $left - $width - $pad) / 2; break; |
| 507 | 512 | case 'c' : |
| 508 | 513 | default : |
| 509 | 514 | $x = $left + ($right - $left - $width) / 2; break; |
| @@ -1552,9 +1557,9 @@ | ||
| 1552 | 1557 | /** |
| 1553 | 1558 | * When using the defer_javascript option, this returns the |
| 1554 | 1559 | * Javascript block |
| 1555 | 1560 | */ |
| 1556 | - public function fetchJavascript($cdata = true, $no_namespace = true) | |
| 1561 | + public function fetchJavascript($cdata = true, $no_namespace = true, $nonce = null) | |
| 1557 | 1562 | { |
| 1558 | 1563 | if(!isset(Graph::$javascript)) |
| 1559 | 1564 | return ''; |
| 1560 | 1565 | |
| @@ -1562,8 +1567,10 @@ | ||
| 1562 | 1567 | if($script == '') |
| 1563 | 1568 | return ''; |
| 1564 | 1569 | |
| 1565 | 1570 | $script_attr = ['type' => 'application/ecmascript']; |
| 1571 | + if($nonce !== null) | |
| 1572 | + $script_attr['nonce'] = $nonce; | |
| 1566 | 1573 | $namespace = $this->namespace; |
| 1567 | 1574 | if($no_namespace) |
| 1568 | 1575 | $this->namespace = false; |
| 1569 | 1576 | $js = $this->element('script', $script_attr, null, $script); |