Доброго времени суток уважаемые!
Учусь делать собственные темы для Drupal 7. Столкнулся со следующим вопросом: как добиться полного контроля над HTML-кодом? На прилагаемом скриншоте, мы видим множество файлов, подключаемых по умолчанию. Для пользователей, имеющих доступ к панели управления сайтом, список подключаемых скриптов меня в принципе не очень интересует, но для НЕ авторизованных пользователей, данный список хотелось бы сократить до минимума, в крайнем случае, оставить только подключение дефолтной JQuery (из комплекта Drupal) и подключить CSS/JS самой темы.
В какую копать, как правильно поотключать всё не относящиеся к тебе JS/CSS и пр. файлы?
В целом, хотелось бы добиться возможности создавать полностью свою тему, которая бы содержала только нужные мне классы/скрипты/css/заголовки/теги и всё прочее, что Drupal 7 по умолчанию включает в тему.
Возможно есть какая-то готовая, максимально пустая тема, в которой всё это "добро" отключено по умолчанию, или же подобного эффекта можно добиться подключением/отключением/настройкой каких либо модулей?
P.S. Я понимаю, что RDF-информация и всё прочее, что Drupal включает в содержимое страницы - крайне полезная информация, но хотелось бы начинать работу с того, что бы включать нужное, вместо отключения не нужного.
Вложение | Размер |
---|---|
20140728191646.png | 85.6 КБ |
Комментарии
Выйти из учётной записи пробовали?
Да, это список со "второго браузера", где пользователь НЕ авторизован.
Возможно, это имеет какое-то значение...
Попробуйте выйти во всех браузерах и очистить кэш браузера. Выводятся только те стили и скрипты, которые необходимы конкретному пользователю для работы с конкретной страницей.
Как вариант включите "Оптимизация пропускной способности" на странице /admin/config/development/performance
Чо за хардкорный перфекционизм? Чем Вам помешали js и css от модулей. Отключите и кое-что на сайте работать не будет. Тем более можно сжать все эти файлы кешем, их станет меньше.
css системные позволяют отключать темы arctica(tundra), omega, можно и в hook_css_alter убрать "ненужные"
а вот js отключать не нужно
https://www.drupal.org/project/mothership Посмотрите
Да ненужные CSS от модулей можно прямо в .info файле темы отрубить.
Писал ответ и на самом
интересном месте"сохранить", провайдер решил отключить мне интернет...Спасибо, решение с отключением "CSS-мусора" - найдено!
Спасибо, обязательно посмотрю!
Собственно, возможно кому-то ещё пригодится... Я выяснил причину появления "CSS-мусора" в коде. Одной из причин его появления является подключение соответствующих CSS-файлов в коде стандартных модулей, таких например как модуль Node. Если Вам по какой-то причине нужно удалить данные ссылки со страницы, можно воспользоваться хуком
theme_css_alter(&$css) { } в файле template.php Вашей темы.
whiesam, спасибо за помощь!
Остался единственный вопрос, остающийся для меня не до конца понятным:
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"mytheme","theme_token":"dQ757fgPO8H1nF6r5WbtE97Rst3Xpvub3M0qHX_iIv0","js":{"misc\/jquery.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/themes\/mytheme\/js\/jquery.bxslider.min.js":1,"sites\/all\/themes\/mytheme\/js\/user.js":1},"css":{"sites\/all\/themes\/mytheme\/css\/bootstrap.min.css":1,"sites\/all\/themes\/mytheme\/css\/bxslider\/jquery.bxslider.css":1,"sites\/all\/themes\/mytheme\/css\/template.css":1}}});
//--><!]]>
За что отвечает этот код?
Это вы где такое вычитали?
Подавляющее число разрабов контриба тупо в hook_init() грузят стили и всё
RDF выключается на странице модулей. В системных модулях /admin/modules
Благодарю за ответ, но приведенный мной код - это не RDF, это JS-код генерируемый одним из системных модулей Drupal'а (судя по всему).
судя по всему его убирать ну никак нельзя
есть модуль https://www.drupal.org/project/advagg специально для тебя - он позволит тебе сделать один css и один js файл и потом перенести это все "ненужное" вниз
А не проще в админке друпала /admin/config/development/performance Объединение и сжатие файлов CSS и Объединение файлов JavaScript, а их вывод с "вверху" на низ страницы перенести одну строку в шаблоне html.tpl.php ?
<?php print $styles; ?>
<?php print $scripts; ?>
IMHO ставить модули по "каждому чиху" - совсем не drupal-way
тогда ответь мне на вопрос: сколько в твоем случае в исходном коде будет подключено js файлов и сколько css?
там кстати на странице модуля есть описание того, что он делает, можно было бы и прочитать
Теоретически один js и один css, но практически их несколько. Но уже на порядок меньшее количество, чем без этого. +цсс сжимается.
Дело вкуса. Но 250КБ модуля - навевают мысли что не такой он уж и "легкий" будет. Понятно, что должно с ним работать быстрее, но вариант "полезть руками в шаблон" - тоже альтернатива. Причем, думается мне - что запросов к БД в этом случае будет меньше, чем при использовании дополнительного модуля. Практически все ЦМС любят в БД лазить "слишком часто и слишком много"
теоретически будет три или больше - http://drup.by/snippets/umenshenie-kolichestva-css-i-javascript-faylov-p...
Тем более что кто-то уже советовал это выше.
Вообще мне кажется, что автор темы, по крайней мере, должен объяснить, почему он выбрал drupal, если его не устраивает чистота кода этой CMS.
Может в таком случае стоит писать свою систему управления содержимым?
Не совсем понял, в каком ключе его "нельзя убирать"? Если речь идёт о том, что его нельзя отключить - я нашел способ его отключения...
Но, я не могу понять, зачем этот кусок кода нужен и как в итоге может повлиять на работу сайта его отключение?
Вопрос количества JS/CSS файлов, меня собственно уже не беспокоит, при большом желании можно склеить все файлы в один "вручную" и подключить эти два файла. Остался только вопрос касательно последнего куска кода.
-----
Автора темы вполне устраивает чистота кода этой системы, но полное отсутствие вменяемой возможности добиться оптимизации кода шаблона, по мнению автора - было бы, как минимум странным, особенно для CMS, которой уже 14 лет от роду. Но, как выяснилось впоследствии такая возможность есть и вполне себе легко реализуется (о чем я писал выше).
Возможно, в некоторых случаях этот шаг будет оправданным действием. Идеальных систем управления содержимым не бывает. Но, лично я для себя нашел гораздо более короткий путь решения данного вопроса, о чем собственно и написал в одном из предыдущих сообщений. Нужно будет провести опрос, сколько людей уже написано свою CMS после (не) удачной попытки кастомизации набора подключаемых CSS-файлов шаблона Drupal... думаю, многим будет интересно.
Относительно количества файлов (JS/CSS) в целом, меня беспокоило не столько само их количество (физически), сколько желание написать нужные стили самому, взамен переписывания (переопределения) ненужных стилей, а так же желание понять, какими возможностями и/или ограничениями обладает система в данной конкретной области, что бы в будущем, при возникновении того или иного вопроса, связанного с разработкой шаблона для Drupal, не ощущать каких-то пробелов в элементарных вопросах (знаниях), таких например как "как отключить лишний CSS?".
Уважаемые коллеги! Убедительно прошу вас, обратить внимание на мой финальный мой вопрос данной темы. Вопрос заключается в следующем:
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"mytheme","theme_token":"dQ757fgPO8H1nF6r5WbtE97Rst3Xpvub3M0qHX_iIv0","js":{"misc\/jquery.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/themes\/mytheme\/js\/jquery.bxslider.min.js":1,"sites\/all\/themes\/mytheme\/js\/user.js":1},"css":{"sites\/all\/themes\/mytheme\/css\/bootstrap.min.css":1,"sites\/all\/themes\/mytheme\/css\/bxslider\/jquery.bxslider.css":1,"sites\/all\/themes\/mytheme\/css\/template.css":1}}});
//--><!]]>
Этот код является одним из "стандартных" кусков кода, генерируемых Drupal 7. Если отключить данный кусок кода, на что может повлиять его отключение и какого изначальное назначение данного кода? Спасибо.
тут либо опытным путем установишь либо все же у гугла спросишь, что такое Drupal.settings ?
Думаю, пока что половина землекопа написали свою CMS из-за неудачной попытки кастомизации CSS