Подтемы Omega, модернизация и размещение Javascript
Я приступаю к новому проекту и решил использовать Omega в качестве своей базовой темы. У меня есть несколько вопросов, связанных с переопределением html.tpl.php в моей подтеме.
Обычно я использую Modernizr для обнаружения функций HTML5 и обеспечения функциональности HTML5 Shiv. Есть ли какие-либо проблемы с заменой условной заточки HTML5 на всегда включающую Modernizr? Являются ли какие-либо функции несовместимыми с Javascript что предоставляет Omega (например, дополнительные запросы к СМИ)?
Во-вторых, я обычно размещаю Javascript внизу страницы . Будет ли это мешать какому-либо из JS, на которые полагается Omega?
2 answers
Сейчас я сделал несколько сайтов на базе Omega, и у меня есть некоторые ответы на эти вопросы.
У меня не возникло никаких проблем с перемещением print $scripts
в righe до закрытия </body>
в html.tpl.php
. Тем не менее, этот вопрос на SO содержит хорошую дискуссию о том, что это может быть устаревшим советом.
У меня также были хорошие результаты при замене заточки HTML5 в html.tpl.php
на
<?php if ($modernizr): ?>
<script src="<?php print $modernizr; ?>"></script>
<?php else: ?>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<?php endif; ?>
И используя это в template_process_html
if (theme_get_setting('mytheme_use_modernizr')) {
$vars["modernizr"] = "/" . path_to_theme() . "/js/modernizr-2.0.6-min.js";
}
, А затем подключаем пользовательскую тему переменная в theme-settings.php
$form['mytheme'] = array(
'#type' => 'fieldset',
'#title' => t('mytheme settings'),
);
$form['mytheme']['mytheme_use_modernizr'] = array(
'#type' => 'checkbox',
'#title' => t('Use Modernizer instead of HTML5 Shiv?'),
'#default_value' => theme_get_setting('mytheme_use_modernizr'),
);
Вы всегда можете использовать модуль Modernizr Drupal, и я сделаю всю тяжелую работу за вас;)
Один незначительный момент автоматизации, который все еще необходимо завершить, заключается в том, что API модуля должен учитывать НЕ-аргументы, чтобы темы, которые предоставляют свою собственную копию shiv, могли указать API Modernizr, чтобы избежать его включения. Но мы работаем над этим!