Подтемы Omega, модернизация и размещение Javascript


Я приступаю к новому проекту и решил использовать Omega в качестве своей базовой темы. У меня есть несколько вопросов, связанных с переопределением html.tpl.php в моей подтеме.

Обычно я использую Modernizr для обнаружения функций HTML5 и обеспечения функциональности HTML5 Shiv. Есть ли какие-либо проблемы с заменой условной заточки HTML5 на всегда включающую Modernizr? Являются ли какие-либо функции несовместимыми с Javascript что предоставляет Omega (например, дополнительные запросы к СМИ)?

Во-вторых, я обычно размещаю Javascript внизу страницы . Будет ли это мешать какому-либо из JS, на которые полагается Omega?

Author: mpdonadio, 2011-10-12

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'), 
);
 1
Author: mpdonadio, 2017-05-23 12:41:25

Вы всегда можете использовать модуль Modernizr Drupal, и я сделаю всю тяжелую работу за вас;)

Один незначительный момент автоматизации, который все еще необходимо завершить, заключается в том, что API модуля должен учитывать НЕ-аргументы, чтобы темы, которые предоставляют свою собственную копию shiv, могли указать API Modernizr, чтобы избежать его включения. Но мы работаем над этим!

 1
Author: Chris Ruppel, 2013-08-29 20:56:39