fe_page extenden für eigenes Modul?
Hallo zusammen, ich habe mir einen pre-Loader zusammengebaut.
Problem: ich muss hierzu auf die fe_page einwirken und möchte aber (eigentlich) das picture-sizing verwenden.
Der aktuelle Stand sieht wie folgt aus:
Ich lade mir über den parseTemplate-Hook ein geändertes fe_page-Template und über den generatePage-Hook mein einstellbares Modul rein.
config.php:
Code:
$GLOBALS['TL_HOOKS']['generatePage'][] = array('ModBBPreLoader', 'myGeneratePage');
$GLOBALS['TL_HOOKS']['parseTemplate'][] = array('TemplateOverride', 'parseTemplate');
TemplateOverride.php:
Code:
if ($objTemplate->getName() == 'fe_page') {$objTemplate->setName('fe_page_preload');
ModBBPreLoader.php:
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');class ModBBPreLoader extends Frontend{public function myGeneratePage(\PageModel $objPage, \LayoutModel $objLayout, \PageRegular $objPageRegular){$preloadit = Database::getInstance()->query('SELECT addPreload,preloader_color_bgr,preloader_color_1,preloader_color_2,img_preload,preloader_size FROM tl_page WHERE id = '.$GLOBALS['objPage']->rootId.'');$preload = $preloadit->fetchAllAssoc();$color_bgr='#'.$preload[0]['preloader_color_bgr'];$color_1='#'.$preload[0]['preloader_color_1'];$color_2='#'.$preload[0]['preloader_color_2'];if (empty($preload[0]['preloader_size'][0]) AND empty($preload[0]['preloader_size'][1])){$img_Size_id = $preload[0]['preloader_size'][2];}$objpreFile = FilesModel::findByUuid($preload[0]['img_preload']);$getSize = \Picture::create($objpreFile->path, $preload[0]['preloader_size'])->getTemplateData();$GLOBALS['TL_PAGE']['PreLoad'] = $objpreFile->path;$GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/bb_LoadEffect/assets/script/BBLoader.js';$GLOBALS['TL_HEAD'][] = '<style>#bbLoader{ position:fixed; left:0; top:0; right:0; bottom:0; background:'.$color_bgr.'; z-index:100}.bbloader-second,.bbloader-wrap,.bbloader-wrap img{position:absolute;left:0;top:0;bottom:0;right:0;margin:auto}.bbloader-second,.bbloader-wrap{height:200px;width:200px}.bbloader-wrap img{height:'.$getSize['img']['height'].'px;width:'.$pre_width = $getSize['img']['width'].'px}.bbloader-second{ border:7px double; border-radius:50%; border-color:'.$color_1.' '.$color_2.'; animation:bbloader-spin 570ms infinite linear; -o-animation:bbloader-spin 570ms infinite linear; -ms-animation:bbloader-spin 570ms infinite linear; -webkit-animation:bbloader-spin 570ms infinite linear; -moz-animation:bbloader-spin 570ms infinite linear}@keyframes bbloader-spin{100%{transform:rotate(360deg)}}@-o-keyframes bbloader-spin{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes bbloader-spin{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes bbloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes bbloader-spin{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}</style>'; }}
fe_page_preload:
Code:
....
<?= $this->mootools ?>
<?php if ($GLOBALS['TL_PAGE']['PreLoad']): ?>
<div id="bbLoader">
<div class="bbloader-wrap">
<img src="<?php echo $GLOBALS['TL_PAGE']['PreLoad']; ?>">
<?php echo $GLOBALS['TL_PAGE']['bb_height']; ?>
<div class="bbloader-second"></div>
</div>
</div>
<?php endif; ?>
</body>
</html>
Das Ziel:
Ich möchte ein Template erstellen, welches ich in die fe_page im vor dem schließenden body-Tag inserten kann.
Ich stehe da ein bisschen auf dem Schlauch, da es mir über die globals und den Weg über die fe_page direkt etwas seltsam erscheint.
Hat jemand evtl. einen Denkanstoß?
mfg
Hauge