Mam takie pytanie jak dodać wstawienie js wraz z data-main czyli konfig dla reciurejs
ogólnie wstawienie recuirejs z data-main w head jest takie
Kod PHP:
<script data-main="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/main" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/vendor/require.js"></script>
a jak wstawić jako override do head
Kod PHP:
$doc->addScript();
aby uwzględnić data-main i czy w ogóle jest to możliwe
także jquery nie potrzebuje wprost z joomli, gdyż załatwia to recuirejs poprzez config main (biblioteka pluginów jquery, bootstrap, wow, domReady itp oraz inicjalizację dla wszystkich stron)
przykładowy template:
Kod PHP:
<?php
defined('_JEXEC') or die;
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$user = JFactory::getUser();
$this->language = $doc->language;
$this->direction = $doc->direction;
// Output as HTML5
$doc->setHtml5(true);
$doc->setMetadata('X-UA-Compatible', 'IE=edge');
$doc->setMetaData('viewport', 'width=device-width, initial-scale=1');
$doc->setGenerator('');
unset($doc->_scripts[JURI::root(true) . '/media/system/js/mootools-more.js']);
unset($doc->_scripts[JURI::root(true) . '/media/system/js/mootools-core.js']);
unset($doc->_scripts[JURI::root(true) . '/media/system/js/core.js']);
unset($doc->_scripts[JURI::root(true) . '/media/system/js/modal.js']);
unset($doc->_scripts[JURI::root(true) . '/media/system/js/caption.js']);
unset($doc->_scripts[JURI::root(true) . '/media/jui/js/jquery.min.js']);
unset($doc->_scripts[JURI::root(true) . '/media/jui/js/jquery-noconflict.js']);
unset($doc->_scripts[JURI::root(true) . '/media/jui/js/jquery-migrate.min.js']);
unset($doc->_scripts[JURI::root(true) . '/media/jui/js/bootstrap.min.js']);
$doc->addStyleSheet('https://fonts.googleapis.com/css?family=Lato:400,700%7CSriracha&subset=latin-ext');
$doc->addStyleSheet('templates/' . $this->template . '/css/bootstrap.min.css');
$doc->addStyleSheet('templates/' . $this->template . '/css/style.css');
?>
<!DOCTYPE html>
<html lang="<?php echo $this->language; ?>">
<head>
<jdoc:include type="head" />
<script data-main="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/main" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/vendor/require.js"></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<jdoc:include type="modules" name="menu" />
<jdoc:include type="modules" name="logo" />
<jdoc:include type="modules" name="karuzela" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="footer" />
<jdoc:include type="modules" name="endbody" />
</body>
</html>
takie rozwiązanie jak w template jest otyle złe ze jeśli dam inicjalizację skryptów to zawsze inicjalizacja jest powyżej czyli
Kod HTML:
<script type="text/javascript">
require(['main'], function () {
require(['page/strona']);
});
</script>
<script data-main="/template/xx/js/main" src="/template/xx/js/vendor/require.js"></script>
tymczasowo zrobiłem w ten sposób ze zainstalowałem dodatek "Sourcerer" i tworząc moduły ze skryptem umieszczam w pozycji "endbody" przed </body>
Z kolei "SriptsDown" odpada o ile działa ładnie przenosi skrypty przed </body> jeśli strona nie ma wymuszonego html5 to jest w porządku, natomiast gdy jest ustawiony html5 to z treści robią się krzaczki na stronie.
oraz jak wywalić scrypt JCaption tworzony przez joomle?
Kod HTML:
<script type="text/javascript">
jQuery(window).on('load', function() {
new JCaption('img.caption');
});
</script>