Я изучал эту проблему раньше. Вот проблема, которую вы хотите прочитать . Сначала это кажется сумасшедшим, но на самом деле для этого есть веские причины.
Итог: воспринимайте Panels Flexible Layouts как инструмент для создания прототипов . Используйте его, чтобы опробовать и составить проекты идей по разработке, постановке, пользовательскому тестированию и т. Д., А затем, когда у вас будет подписан идеальный макет, внедрите его для производства с чистым, четким, оптимизированным вручную HTML в качестве пользовательского макета Panels (подробнее на тех, что ниже).
Вот краткое изложение того, почему это так, исходя из той проблемы, с которой я связан:
- Для вывода HTML-панелей нужна вся эта сумасшедшая разметка, чтобы можно было разместить самые сумасшедшие гибкие макеты, какие только можно захотеть создать - подумайте о множестве вложенных флюидов и фиксированных областей рядом.
- Ничего автоматически сгенерированного не будет достаточно для пуристов HTML, поэтому ребята из Panels не пытались порадовать их функцией гибких макетов . Так что нет алгоритма оптимизатора HTML, который пытался бы сократить HTML-код, сгенерированный вашим макетом, до минимума, потому что, как бы хорошо он ни был, он все равно не был бы лучшим стандартом HTML.
- Что-то, о чем они не упоминают: если бы существовал такой оптимизатор, некоторые изменения в макете привели бы к исчезновению теперь лишних элементов div и классов. Если вы повесили CSS на них, вам нужно будет переписывать свой CSS в большинстве случаев, когда вы вносите небольшие изменения в гибкий макет Panels. Это означает, что если бы они попытались (и не смогли) превратить Panels Flexible Layouts в лучший инструмент производства стандартов, они бы также ослабили его как инструмент для создания прототипов.
- Вы можете получить чистый, худой вывод HTML панелей . Ожидаемый рабочий процесс, чтение между строк, я считаю, что-то вроде этого:
- Вы используете Гибкие макеты Panels во время ранней разработки, испытывая идеи.
- После того, как вы остановились на конкретном макете, если вам нужен чистый HTML, вы реализуете его с помощью пользовательского макета, используя только точное количество разметки HTML, которое требуется макету, только с правильными классами, семантикой и т. Д. Для вашего сайта (инструкции ниже). ).
Поначалу мне это не нравилось, но, подумав, думаю, это имеет смысл. Вместо того, чтобы пытаться сделать невозможное и создать один инструмент, который идеально подходит как для прототипирования, так и для наилучших стандартов в производственном контексте, - которые оба имеют совершенно разные потребности и могут привести только к компромиссу, который не совсем подходит для них - они Мы использовали один инструмент, который идеально подходит для создания прототипов, и другой отдельный инструмент (нестандартные макеты), который идеально подходит для бережливого производства.
Это означает, что вы можете получить лучшее от обоих, затратив немного больше усилий на реализацию вашего окончательного макета в качестве шаблона, основанного на лучших стандартах HTML - но пуристу HTML все равно понадобится выполнить эту небольшую дополнительную работу, чтобы получить их выход идеален.
Как создавать собственные макеты панелей? В документации есть подробное руководство о том, как это сделать . Вот краткое краткое изложение:
- Скопируйте существующий макет из,
/sites/all/modules/panels/plugins/layouts
чтобы стать/sites/all/themes/[your_theme_name]/layouts/[new_unique_layout_machine_name]
- Переименуйте файлы в новой копии, чтобы соответствовать их новому имени папки. Обратите внимание, что
.tpl.php
файл должен иметь дефисы вместо подчеркивания.
- Добавить строку в информационный файл темы:
plugins[panels][layouts] = layouts
это сообщает Panels о том, что у вас есть пользовательские макеты в этой теме и где они находятся (замените строку, layouts
если это не путь от вашей темы к вашей папке пользовательских макетов)
Отредактируйте файлы с помощью вашего идеального, гладкого, минимального, семантического HTML-кода с лучшими стандартами.
- Не забудьте также обновить
.inc
файл информацией о вашем макете, такой как имя, категории, имена файлов и т. Д.
theme
в файле .inc должно совпадать с .tpl.php
именем файла без расширения. Любые подчеркивания, которые вы вводите здесь в theme
значение, будут преобразованы в дефисы.
- Также рассмотрите возможность редактирования
.png
иконки, чтобы лучше отразить фактический макет.
- Очистить кеш. Ваш новый макет отображается в виде панели в виде параметра с именем, категорией и т. Д., Указанными в
.inc
файле. Используй это.