From dd96fe49d2bf330f3e729b1ef261c1789347534d Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 23 May 2023 17:12:10 +0200 Subject: [PATCH] wip #5940 @0.5 --- app/Fluidbook/Compiler/Links.php | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/app/Fluidbook/Compiler/Links.php b/app/Fluidbook/Compiler/Links.php index e5c5d1331..49f74d7b7 100644 --- a/app/Fluidbook/Compiler/Links.php +++ b/app/Fluidbook/Compiler/Links.php @@ -4,6 +4,7 @@ namespace App\Fluidbook\Compiler; use App\Fluidbook\Link\Link; use App\Fluidbook\Link\LinksData; +use App\SubForms\Link\Base; use Cubist\Util\Files\Files; use Cubist\Util\Text; use Fluidbook\Tools\Links\AnchorLink; @@ -280,6 +281,9 @@ trait Links $allLinksData = []; $gamifyCoins = []; + $canContainLinksTypes = Base::typesCanContainLinks(); + $assetsDimensions = $this->getFluidbook()->getLinksAssetsDimensions(); + usort($links, array($this, '_sortLinks')); foreach ($links as $linkData) { @@ -309,6 +313,10 @@ trait Links $linksToAdd[] = $link->getRightClone(); } + if (isset($canContainLinksTypes[$linkData['type']])) { + $this->addLinkLinks($linkData, $links, $assetsDimensions, $linksToAdd); + } + foreach ($linksToAdd as $lta) { try { /** @var $lta Link */ @@ -391,4 +399,31 @@ trait Links return $css; } + + protected function addLinkLinks($link, $links, $assetsDimensions, &$linksToAdd) + { + + foreach ($links as $llink) { + if ($llink['page'] !== 'link_uid_' . $link['uid']) { + continue; + } + if (!isset($dim)) { + $dim = $assetsDimensions['uid_' . $link['uid']]['dim']; + $scaleX = $link['width'] / $dim[0]; + $scaleY = $link['height'] / $dim[1]; + } + $llink['page'] = $link['page']; + $llink['attached'] = $link['uid']; + $llink['left'] = $link['left'] + ($llink['left'] * $scaleX); + $llink['top'] = $link['top'] + ($llink['top'] * $scaleY); + $llink['width'] *= $scaleX; + $llink['height'] *= $scaleY; + $instance = Link::getInstance($this->base62(count($linksToAdd)), $llink, $this); + if (is_null($instance) || $instance->ignore()) { + continue; + } + $linksToAdd[] = $instance; + } + + } } -- 2.39.5