From 897af24c623c815e60fd75f31a9ed43d79056dda Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 1 Dec 2022 16:27:49 +0100 Subject: [PATCH] fix #5622 @0:10 --- .idea/php.xml | 9 ++ src/Links/Link.php | 141 +++++++++++--------------------- src/Links/WebVideoLink.php | 2 +- src/Links/WebVideoPopupLink.php | 2 +- 4 files changed, 60 insertions(+), 94 deletions(-) diff --git a/.idea/php.xml b/.idea/php.xml index d8064e8..4f7f19e 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -1,5 +1,14 @@ + + + + + + diff --git a/src/Links/Link.php b/src/Links/Link.php index baa9915..4dcb6b2 100644 --- a/src/Links/Link.php +++ b/src/Links/Link.php @@ -14,8 +14,7 @@ use Fluidbook\Tools\Compiler\Compiler; use Fluidbook\Tools\Compiler\CompilerInterface; use stdClass; -class Link -{ +class Link { protected static string|false $_linksKey; public $left; @@ -81,8 +80,7 @@ class Link * @param CompilerInterface $compiler * @return Link */ - public static function getInstance($id, $init, &$compiler) - { + public static function getInstance($id, $init, &$compiler) { $init = ArrayUtil::asArray($init); $init['scorm'] = self::isScorm($init); @@ -144,8 +142,6 @@ class Link return new TooltipLink($id, $init, $compiler); } return new TextPopupLink($id, $init, $compiler); - case 19: - break; case 20: $compiler->addBookmarkGroup($init); break; @@ -205,13 +201,11 @@ class Link } - public function getSurface() - { + public function getSurface() { return $this->width * $this->height; } - public static function normalizeInlineIntegration($inline) - { + public static function normalizeInlineIntegration($inline) { if ($inline == '1' || $inline === 'true' || $inline === true) { return 'inline'; } else if (!$inline || $inline === 'false') { @@ -220,8 +214,7 @@ class Link return $inline; } - public static function parseExtras($extras, $normalizeKey = false) - { + public static function parseExtras($extras, $normalizeKey = false) { $extras = trim($extras); if ($extras === '') { return []; @@ -248,8 +241,7 @@ class Link return $res; } - public static function parseAnimations($animations) - { + public static function parseAnimations($animations) { $anims = explode('---', $animations); $res = []; @@ -275,8 +267,7 @@ class Link return $res; } - public static function replaceCustomURL($url) - { + public static function replaceCustomURL($url) { $url = trim($url); if (strpos($url, 'custom:') === 0) { $e = explode(':', $url, 2); @@ -286,8 +277,7 @@ class Link return $url; } - public static function getMultimediaInstance($id, $init, &$compiler) - { + public static function getMultimediaInstance($id, $init, &$compiler) { if ($init['alternative'] == '') { return null; } @@ -311,13 +301,11 @@ class Link return null; } - public static function isScorm($linkData) - { + public static function isScorm($linkData) { return (isset($linkData['scorm']) && $linkData['scorm']) || (self::_isScormLink($linkData['to']) || (isset($linkData['alternative']) && self::_isScormLink($linkData['alternative']))); } - protected static function _isScormLink($url) - { + protected static function _isScormLink($url) { if (strpos($url, 'http://') >= 0 || strpos($url, 'https://') > 0) { return false; } @@ -329,8 +317,7 @@ class Link * @param $init array * @param $compiler CompilerInterface */ - public function __construct($id, $init, &$compiler) - { + public function __construct($id, $init, &$compiler) { $this->_init = $init; foreach ($init as $k => $v) { if ($k == 'extra') { @@ -369,21 +356,18 @@ class Link /** * @param int $initialOrder */ - public function setInitialOrder(int $initialOrder): void - { + public function setInitialOrder(int $initialOrder): void { $this->initialOrder = $initialOrder; } /** * @return int */ - public function getInitialOrder(): int - { + public function getInitialOrder(): int { return $this->initialOrder; } - public function getDepth() - { + public function getDepth() { if ($this->zindex == -1 || null === $this->zindex || !$this->zindex) { return $this->defaultZIndex; } @@ -393,8 +377,7 @@ class Link return $this->zindex; } - public function getTooltipAttribute($t = null) - { + public function getTooltipAttribute($t = null) { if (null === $t) { $t = $this->getTooltip(); } @@ -408,16 +391,15 @@ class Link } } - public function overlapDoublePage() - { + public function overlapDoublePage() { // $this->page is normally an integer but it can also be a string (eg. background / aftersearch) - if (!is_int($this->page)) return false; + if (!is_int($this->page)) + return false; return ($this->page % 2 == 0 && $this->left + $this->width > $this->compiler->getWidth()); } - public function getRightClone() - { + public function getRightClone() { $res = clone $this; $res->page++; $res->left -= $this->compiler->getWidth(); @@ -427,18 +409,15 @@ class Link return $res; } - public function init() - { + public function init() { } - public function getDefaultTooltip() - { + public function getDefaultTooltip() { return false; } - public function getTooltip() - { + public function getTooltip() { if ($this->infobulle === null || !$this->infobulle) { if ($this->getDefaultTooltip() === false) { return ''; @@ -448,14 +427,12 @@ class Link return $this->infobulle; } - public function getHTMLContainer() - { + public function getHTMLContainer() { $addContent = $this->getAdditionnalContent(); return '
' . $this->getHTMLContent() . '
'; } - public function getHTMLContainerClass() - { + public function getHTMLContainerClass() { $res = trim('link ' . $this->class); if ((int)$this->page % 2 == 1) { $res .= ' odd'; @@ -467,13 +444,11 @@ class Link return $res; } - public function getHTMLContent() - { + public function getHTMLContent() { return ''; } - public function getAdditionnalContent() - { + public function getAdditionnalContent() { $res = ''; if ($this->role !== '') { $res .= ' role="' . $this->role . '"'; @@ -496,8 +471,7 @@ class Link } - public function getClasses() - { + public function getClasses() { $res = array(); if (isset($this->image_rollover) && $this->image_rollover != 'none') { @@ -506,23 +480,19 @@ class Link return $res; } - public function copyExternalFile($file, $video = false) - { + public function copyExternalFile($file, $video = false) { $this->compiler->copyLinkFile($file, 'data/links/', $video); } - public function copyExternalDir($dir, $dest = 'data/links') - { + public function copyExternalDir($dir, $dest = 'data/links') { $this->compiler->copyLinkDir($dir, $dest); } - public function unzipFile($file, $moveAssets = false) - { + public function unzipFile($file, $moveAssets = false) { return $this->compiler->unzipFile($file, $moveAssets); } - public function getCssScale() - { + public function getCssScale() { if (is_int($this->page)) { return $this->compiler->getLinkScale(); } else { @@ -530,24 +500,20 @@ class Link } } - public function getCSSZIndex() - { + public function getCSSZIndex() { $zindex = $this->getAddZIndex() + (($this->getDepth() + 1) * 10000) - min(9999, max(1, round(9999 * (($this->width * $this->height) / $this->compiler->getBookSurface())))); return 'z-index:' . $zindex . ';'; } - public function getAddZIndex() - { + public function getAddZIndex() { return $this->addzindex; } - public function moveOnEvenPage() - { + public function moveOnEvenPage() { return false; } - public function getCSSContainer() - { + public function getCSSContainer() { if ($this->moveOnEvenPage()) { $this->page--; $this->left += $this->compiler->getWidth(); @@ -577,18 +543,15 @@ class Link return $css; } - public function getCSS() - { + public function getCSS() { return ''; } - public function keep() - { + public function keep() { return false; } - public static function getUniversalLocation($loc, $css = false) - { + public static function getUniversalLocation($loc, $css = false) { $datas = parse_url($loc); if ((isset($datas['scheme']) && !is_null($datas['scheme'])) || strpos($loc, '#') === 0) { @@ -602,9 +565,10 @@ class Link } } - public function isOutsidePage() - { - if ($this->top > $this->compiler->getSetting('height')) { + public function isOutsidePage() { + $height = isset($this->compiler->getSetting('pagesDimensions')[$this->page][1]) ?: $this->compiler->getSetting('height'); + + if ($this->top > $height) { return true; } if ($this->left > $this->compiler->getSetting('width')) { @@ -612,18 +576,15 @@ class Link } } - public function ignore() - { + public function ignore() { return false; } - public function getConfigZIP($d) - { + public function getConfigZIP($d) { return $this->compiler->getConfigZIP($d); } - public function getConfigHTML($d, $html) - { + public function getConfigHTML($d, $html) { $c = file_get_contents($this->compiler->working_path($html)); $res = array('width' => $this->video_width, 'height' => $this->video_height); if (stristr($c, '
')) { @@ -638,8 +599,7 @@ class Link return array_merge($res, $r); } - public function getConfigOAM($d) - { + public function getConfigOAM($d) { $x = simplexml_load_string(file_get_contents($d . '/config.xml')); $config = (string)$x->oamfile['src']; $config = str_replace('/Assets', '', $d . '/' . $config); @@ -667,8 +627,7 @@ class Link /** * @throws \SodiumException */ - public static function decryptLink($link) - { + public static function decryptLink($link) { $array = false; if (is_array($link)) { $array = true; @@ -693,8 +652,7 @@ class Link return ArrayUtil::asArray($link); } - public static function decryptLinks($links) - { + public static function decryptLinks($links) { $res = []; foreach ($links as $key => $link) { $res[$key] = self::decryptLink($link); @@ -702,8 +660,7 @@ class Link return $res; } - public static function _getLinkKey() - { + public static function _getLinkKey() { if (self::$_linksKey === null) { self::$_linksKey = base64_decode('o2p2yYGI8yMEHf+Y5/e6NdTINbbXg3NIo8BODgdhPxI='); } diff --git a/src/Links/WebVideoLink.php b/src/Links/WebVideoLink.php index d93dec6..240fbc5 100644 --- a/src/Links/WebVideoLink.php +++ b/src/Links/WebVideoLink.php @@ -2,7 +2,7 @@ namespace Fluidbook\Tools\Links; -class WebVideoLink extends videoLink +class WebVideoLink extends VideoLink { public static function getVideoAttributes($data, $w = null, $h = null, $compiler = null) diff --git a/src/Links/WebVideoPopupLink.php b/src/Links/WebVideoPopupLink.php index 89e0d51..9323c03 100644 --- a/src/Links/WebVideoPopupLink.php +++ b/src/Links/WebVideoPopupLink.php @@ -24,7 +24,7 @@ class WebVideoPopupLink extends VideoPopupLink public function getAdditionnalContent() { $this->video_auto_start = true; // Videos should always autoplay - return ' data-video="' . rawurlencode(webVideoLink::makeVideoTag($this, 1280, 720, $this->compiler)) . '" '; + return ' data-video="' . rawurlencode(WebVideoLink::makeVideoTag($this, 1280, 720, $this->compiler)) . '" '; } } -- 2.39.5