Каждая страница моего сайта состоит из:
В коде страница выглядит так:
<?php
require_once('header.php');
load_header('title', 'meta description'); // loads also MENU
?>
// Unique content of the page
<?php
// footer settings
$load_contact_info = true;
// load footer
require_once('footer.php');
load_footer($load_contact_info);
?>
На тех же страницах я хотел бы загрузить дополнительный контент (например, больше библиотек JS) в footer.php
(прямо перед закрывающим тегом тела):
<?php
function load_footer($load_contact_info = false) {
?>
<footer>
<?php if ($load_contact_info) { ?>
<div id="contact-us">
// contact info
</div>
<?php } ?>
<div id="inner-footer">
// more generic footer content
</div>
</footer>
<script src="<?php echo($url); ?>js/vendor/jquery.js"></script>
// I want to load more UNIQUE JS content here at SOME pages
</body>
</html>
<?php } ?>
Как лучше загружать дополнительные библиотеки в нижний колонтитул? Должен ли я продлить footer.php
с более if-yes-load-more, как это:
if ($google_maps_api) {
// map settings
echo "<script src=\"https://maps.googleapis.com/maps/api/js?callback=initMap\" async defer></script>";
}
if ($other_api) {
echo "<script src=\"https://example.com/other-api/\" async defer></script>";
}
Или есть другие возможности сделать это лучше?
Загрузка дополнительных библиотек не должна быть задачей нижнего колонтитула. Нижний колонтитул отображает нижний колонтитул. Вы должны создать новый файл php и назвать его что-то вроде «handle_js.php»
function print_script_tag($src, $options) {
echo "<script src=\"" . $src . "\" " . $options . "></script>\n";
}
function print_all_script_tags_for_url($url) {
if($url === 'example') {
print_script_tag('library.js','async');
}
}
и в вашем файле нижнего колонтитула
</footer>
print_scripts($url);
</body>
Я не проверял код.
Других решений пока нет …