Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

Как сделать flash-заставку для joomla-сайта

Больше
9 года 5 мес. назад - 9 года 5 мес. назад #1 от serge
Почерпнул этот код в Сети. С некоторыми изменениями публикую здесь (в изначальном виде не работал так, как должно). Стало быть, если вы хотите предварить посещение своего Joomla-сайта небольшим flash-роликом - сделайте следующее:

1. Открываем index.php используемого joomla-шаблона и перед закрывающим </head> вписываем:

Code:
<?php $session = JFactory::getSession(); $first = $session->get('first', 1); if ($first){ ?> <style type="text/css"> html{ overflow:hidden; } #flash_preview{ position:absolute; z-index:10000; width:100%; background:#fff; } #flash_previewwrap{ position:absolute; top:0; left:0; width:100%; z-index:9999; background:#fff; } #close{ position:absolute; display:block; width:200px; height:50px; line-height:50px; top:20px; z-index:11000; cursor:pointer; color:#fff; font-family:Verdana; background:transparent; font-size:18px; } </style> <script type="text/javascript"> window.addEvent('domready', function() { setTimeout(closeblock, 14000); resizeflash(); window.onresize= resizeflash; }); function resizeflash() { var elwrap = document.getElementById('flash_previewwrap'); var elclose = document.getElementById('close'); var el = document.getElementById('flash_preview'); var w = getClientWidth(); var h = getClientHeight(); var w = getClientWidth(); var fl = document.getElementById('fl'); fl.setAttribute("width", w); fl.setAttribute("height", h); elclose.style.left = (w-elclose.clientWidth)/2+'px'; elwrap.style.left = '0px'; el.style.left = '0px'; elwrap.style.width = w+'px'; elwrap.style.height = h+'px'; el.style.width = w+'px'; el.style.height = h+'px'; } function getClientHeight() { return document.compatMode=='CSS1Compat' ? (document.documentElement.clientHeight):document.body.clientHeight; } function getClientWidth() { return document.compatMode=='CSS1Compat' ? document.documentElement.clientWidth:document.body.clientWidth; } function closeblock() { var b = document.getElementsByTagName('html'); b[0].style.overflow = 'auto'; var elwrap = document.getElementById('flash_previewwrap'); elwrap.style.display = 'none'; } </script> <?php } ?>


2. Теперь находим закрывающий </body> и сразу перед ним вписываем:

Code:
<?php if ($first){ ?> <div id="flash_previewwrap"> <img src="flash/logo.png" id="close" onclick="closeblock();" /> <a href="#" id="close" onclick="closeblock();">Пропустить заставку</a> <div id="flash_preview"> <object id="fl" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="100" width="100"><param name="wmode" value="opaque" /><param name="quality" value="high" /><param name="movie" value="flash/start.swf" /><embed wmode="opaque" height="100%" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="flash/start.swf" type="application/x-shockwave-flash" width="100%"></embed></object> </div></div> <script type="text/javascript"> var elwrap = document.getElementById('flash_preview'); var el = document.getElementById('flash_preview'); var w = getClientWidth(); var h = getClientHeight(); elwrap.style.width = w+'px'; elwrap.style.height = h+'px'; el.style.width = w+'px'; el.style.height = h+'px'; </script> <?php } if ($first){ $session->set('first', 0); } ?>


Заходим на сайт и любуемся. Обратите внимание, что из класса JFactory мы получаем сессию, таким образом - вы увидите флэшку только один раз, когда впервые заходите на сайт. Далее, сколько ни бегать по страничкам, флэшка уже не появится, чтобы увидеть ее снова - придется закрыть браузер, снова его открыть и зайти на сайт:

Code:
<?php $session = JFactory::getSession(); $first = $session->get('first', 1); if ($first){ ?>


Флэш-ролик в любой момент возможно закрыть по кнопке (если не надо - отключите):

Code:
<img src="flash/logo.png" id="close" onclick="closeblock();" />


по ссылке (аналогично):

Code:
<a href="#" id="close" onclick="closeblock();">Пропустить заставку</a>


либо же в js прописываем автозакрытие через, в данном случае, 10 секунд:

Code:
<script type="text/javascript"> window.addEvent('domready', function() { setTimeout(closeblock, 10000); resizeflash(); window.onresize= resizeflash; });

либо так:

Code:
setTimeout("closeblock()", 10000);

А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 9 года 5 мес. назад пользователем serge.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 1
Работает на Kunena форум