Обе темы я уже установил под windows, начал было сравнивать, но Друпал работал медленно, потому пришлось искать альтернативные варианты (делать все в virtualBox). Теперь есть виртуальная Убунта (в десктопном варианте) и там залит Друпал с хорошо документированной темой Prius.
Решил сегодня сравнить возможности тем, посмотреть на интерфейсы... и поупражняться с grant, drush... Этот пост - практикумы по материалам, собраным ранее в "Drupal 8 theming -...читаем документацию и примеры Starter Themes"
Drupal 8 theming - смотрим разные видео, читаем документацию и примеры Starter Themes
Defining a theme with an .info.yml file
Theme folder structure
Debugging Twig templates
Debugging compiled Twig templates
Classy themes css selectors
Clearing or rebuilding Drupal's cache drush cache-rebuild
The goal of the theming guide is to provide you with a complete overview of the front-end changes made in Drupal 8 and to get you started with creating a custom Drupal 8 theme.
Поднимаем Vagrant¶
Нетакой уж он и медленный (
alter_000@pb MINGW64 /x/_virtualBox/drupal/drupal-vm (master)
$ vagrant up
Bringing machine 'drupalvm' up with 'virtualbox' provider...
==> drupalvm: Checking if box 'geerlingguy/ubuntu1404' is up to date...
==> drupalvm: Clearing any previously set forwarded ports...
==> drupalvm: Clearing any previously set network interfaces...
==> drupalvm: Preparing network interfaces based on configuration...
drupalvm: Adapter 1: nat
drupalvm: Adapter 2: hostonly
==> drupalvm: Forwarding ports...
drupalvm: 22 (guest) => 2222 (host) (adapter 1)
==> drupalvm: Running 'pre-boot' VM customizations...
==> drupalvm: Booting VM...
==> drupalvm: Waiting for machine to boot. This may take a few minutes...
drupalvm: SSH address: 127.0.0.1:2222
drupalvm: SSH username: vagrant
drupalvm: SSH auth method: private key
==> drupalvm: Machine booted and ready!
==> drupalvm: Checking for guest additions in VM...
==> drupalvm: Setting hostname...
==> drupalvm: Configuring and enabling network interfaces...
==> drupalvm: Mounting shared folders...
drupalvm: /vagrant => X:/_virtualBox/drupal/drupal-vm
drupalvm: /var/www/drupalvm => C:/Users/alter_000/Sites/drupalvm
==> drupalvm: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> drupalvm: flag to force provisioning. Provisioners marked to run always will still run.
alter_000@pb MINGW64 /x/_virtualBox/drupal/drupal-vm (master)
$ vagrant ssh
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.2.0-27-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Mon Apr 11 11:06:11 2016
vagrant@drupalvm:~$ drush --version
Drush Version : 9.0-dev
vagrant@drupalvm:~$
Далее представляем, что мы работаем с удаленным сервером..., поначалу ищем, что синхронизируется с папкой windows , сначала посмотрим в настройках VirualBox (Shared folders)
\\?\X:\_virtualBox\drupal\drupal-vm
vagrant
\\?\C:\Users\alter_000\Sites\drupalvm
var_www_drupalvm
Имее две группы расшаренных папок (созданы вагрантом). Первая - это папка из которой зипускается vagrant, а вторая - сайт... Проверим:
vagrant@drupalvm:~$ pwd
/home/vagrant
vagrant@drupalvm:~$ ls
distribute-0.6.14.tar.gz
vagrant@drupalvm:~$ cd /var/www
vagrant@drupalvm:/var/www$ ls
dashboard drupalvm html
vagrant@drupalvm:/var/www$
vagrant@drupalvm:/var/www/drupalvm/drupal$ ls
autoload.php core modules robots.txt update.php
composer.json example.gitignore profiles sites vendor
composer.lock index.php README.txt themes web.config
vagrant@drupalvm:/var/www/drupalvm/drupal$
vagrant@drupalvm:/var/www/drupalvm/drupal$ ls /vagrant
config.yml example.config.yml LICENSE README.md
docs example.drupal.make.yml mkdocs.yml tests
drupal.make.yml examples provisioning Vagrantfile
vagrant@drupalvm:/var/www/drupalvm/drupal$
пока не ясно, почему путь к папке drupal прописывается в настройках VirtualBox так var_www_drupalvm
####Структура папок
#The (partial) structure of your Drupal installation could look as follows:
|-core
| |-modules
| |-themes
| | |-bartik
| | |-seven
..
..
|-modules
|-themes
| |-contrib
| | |-zen
| | |-basic
| | |-bluemarine
| |-custom
| | |-fluffiness
Все пояснения в документации (ссылка выше)
|-fluffiness.breakpoints.yml
|-fluffiness.info.yml
|-fluffiness.libraries.yml
|-fluffiness.theme
|-config
| |-install
| | |-fluffiness.settings.yml
| |-schema
| | |-fluffiness.schema.yml
|-css
| |-style.css
|-js
| |-fluffiness.js
|-images
| |-buttons.png
|-logo.png
|-screenshot.png
|-templates
| |-maintenance-page.html.twig
| |-node.html.twig
You enable Twig Debugging in sites/default/services.yml (If services.yml does not yet exist; copy default.services.yml and rename it to services.yml.)
Set the debug variable to true:
parameters:
twig.config:
debug: true
Twig - это всего лишь язык-обертка, файлы нужно дин раз прочитать, перевести в .php и записать (в кэш). Я пытался этот кэш стереть при помощи
drush cc
vagrant@drupalvm:/var/www/drupalvm/drupal$ drush cc
Enter a number to choose which cache to clear.
[0] : Cancel
[1] : drush
[2] : theme-registry
[3] : router
[4] : css-js
[5] : module-list
[6] : theme-list
[7] : render
[8] : views
8
'views' cache was cleared. [success]
vagrant@drupalvm:/var/www/drupalvm/drupal$
Но ничего не получилось, пришлось нажать на кнопку:
Go to Configuration -> Performance and then click the Clear all caches button
Подробности здесь Debugging compiled Twig templates
Вот пример вывода дебаггера (точнее: twig-debugger`a)¶
...
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/html.html.twig' -->
...
<header class="navbar navbar-default container" id="navbar" role="banner">
<div class="navbar-header">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'region' -->
<!-- FILE NAME SUGGESTIONS:
* region--navigation.html.twig
x region.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/region.html.twig' -->
<div class="region region-navigation">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'block' -->
<!-- FILE NAME SUGGESTIONS:
* block--bootstrap-branding.html.twig
x block--system-branding-block.html.twig
* block--system.html.twig
* block.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/block/block--system-branding-block.html.twig' -->
<a class="logo navbar-btn pull-left" href="/" title="Home" rel="home">
<img src="/themes/bootstrap/logo.svg" alt="Home">
</a>
<a class="name navbar-brand" href="/" title="Home" rel="home">Drupal</a>
<!-- END OUTPUT from 'themes/bootstrap/templates/block/block--system-branding-block.html.twig' -->
</div>
<!-- END OUTPUT from 'themes/bootstrap/templates/system/region.html.twig' -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'region' -->
<!-- FILE NAME SUGGESTIONS:
* region--navigation-collapsible.html.twig
x region.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/system/region.html.twig' -->
<div class="region region-navigation-collapsible">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'block' -->
<!-- FILE NAME SUGGESTIONS:
* block--bootstrap-main-menu.html.twig
x block--system-menu-block--main.html.twig
* block--system-menu-block.html.twig
* block--system.html.twig
* block.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/block/block--system-menu-block--main.html.twig' -->
<nav role="navigation" aria-labelledby="block-bootstrap-main-menu-menu" id="block-bootstrap-main-menu" class="contextual-region">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'menu__main' -->
<!-- FILE NAME SUGGESTIONS:
x menu--main.html.twig
x menu--main.html.twig
* menu.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/menu/menu--main.html.twig' -->
<ul class="menu nav navbar-nav">
<li>
<a href="/" data-drupal-link-system-path="<front>" class="is-active">Home</a>
</li>
</ul>
<!-- END OUTPUT from 'themes/bootstrap/templates/menu/menu--main.html.twig' -->
</nav>
<!-- END OUTPUT from 'themes/bootstrap/templates/block/block--system-menu-block--main.html.twig' -->
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'block' -->
<!-- FILE NAME SUGGESTIONS:
* block--bootstrap-account-menu.html.twig
x block--system-menu-block--account.html.twig
* block--system-menu-block.html.twig
* block--system.html.twig
* block.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/block/block--system-menu-block--account.html.twig' -->
<nav role="navigation" aria-labelledby="block-bootstrap-account-menu-menu" id="block-bootstrap-account-menu" class="contextual-region">
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'menu__account' -->
<!-- FILE NAME SUGGESTIONS:
x menu--account.html.twig
x menu--account.html.twig
* menu.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/bootstrap/templates/menu/menu--account.html.twig' -->
<ul class="menu nav navbar-nav navbar-right">
<li>
<a href="/user" data-drupal-link-system-path="user">My account</a>
</li>
<li>
<a href="/user/logout" data-drupal-link-system-path="user/logout">Log out</a>
</li>
</ul>
<!-- END OUTPUT from 'themes/bootstrap/templates/menu/menu--account.html.twig' -->
</nav>
<!-- END OUTPUT from 'themes/bootstrap/templates/block/block--system-menu-block--account.html.twig' -->
</div>
<!-- END OUTPUT from 'themes/bootstrap/templates/system/region.html.twig' -->
</div>
</header>
Дебаггер этот ой, как нужен. Вот папка twig-шаблонов из темы bootstrap¶
C:\Users\alter_000\Sites\drupalvm\drupal\themes\bootstrap\templates>tree /f
Структура папок тома Packard Bell
Серийный номер тома: F634-F7A8
C:.
├───block
│ block--bare.html.twig
│ block--local-actions-block.html.twig
│ block--local-tasks-block.html.twig
│ block--page-title-block.html.twig
│ block--search.html.twig
│ block--system-branding-block.html.twig
│ block--system-menu-block--account.html.twig
│ block--system-menu-block--main.html.twig
│ block--system.html.twig
│ block-list.html.twig
│ block.html.twig
│
├───bootstrap
│ bootstrap-carousel.html.twig
│ bootstrap-dropdown.html.twig
│ bootstrap-modal.html.twig
│ bootstrap-panel.html.twig
│ item-list--bootstrap-carousel-indicators.html.twig
│ item-list--dropdown.html.twig
│
├───field
│ field--node--field-image--article.html.twig
│ field-multiple-value-form.html.twig
│ field.html.twig
│
├───file
│ file-link.html.twig
│ file-upload-help.html.twig
│ image-widget.html.twig
│
├───filter
│ filter-tips.html.twig
│
├───input
│ datetime-form.html.twig
│ datetime-wrapper.html.twig
│ form-element-label.html.twig
│ form-element.html.twig
│ input--button--dropdown.html.twig
│ input--button--split.html.twig
│ input--button.html.twig
│ input--form-control.html.twig
│ input.html.twig
│ select.html.twig
│ textarea.html.twig
│
├───menu
│ menu--account.html.twig
│ menu--main.html.twig
│ menu-local-task.html.twig
│ menu-local-tasks.html.twig
│ menu.html.twig
│
├───node
│ node.html.twig
│
├───system
│ breadcrumb.html.twig
│ container.html.twig
│ html.html.twig
│ image.html.twig
│ links.html.twig
│ page-title.html.twig
│ page.html.twig
│ pager.html.twig
│ progress-bar.html.twig
│ region--no-wrapper.html.twig
│ region.html.twig
│ status-messages.html.twig
│ system-themes-page.html.twig
│ table.html.twig
│
└───views
views-exposed-form.html.twig
views-mini-pager.html.twig
views-view-table.html.twig
views-view.html.twig
C:\Users\alter_000\Sites\drupalvm\drupal\themes\bootstrap\templates>
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий