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;
$allLinksData = [];
$gamifyCoins = [];
+ $canContainLinksTypes = Base::typesCanContainLinks();
+ $assetsDimensions = $this->getFluidbook()->getLinksAssetsDimensions();
+
usort($links, array($this, '_sortLinks'));
foreach ($links as $linkData) {
$linksToAdd[] = $link->getRightClone();
}
+ if (isset($canContainLinksTypes[$linkData['type']])) {
+ $this->addLinkLinks($linkData, $links, $assetsDimensions, $linksToAdd);
+ }
+
foreach ($linksToAdd as $lta) {
try {
/** @var $lta Link */
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;
+ }
+
+ }
}