Skip to main content
Темплейты для Drupal

Drupal тема Omega 4 #2 Подготовка сервера и окружения. Создание своей подтемы.

Чтобы Omega 4 показала все свои возможности, нам понадобится drush и ruby на сервере. Про установку сервера LAMP на gnu/linux системах подробно рассказано тут. Повторяться не будем, сразу перейдем к омеге.

Если вы по какой-то причине не поставили drush - ставим (все описанные действия выполняются через консаль, Alt + Ctrl + T):

$ sudo apt-get install drush

Установка Omega 4

Теперь идем в директорию с вашим сайтом, например cd www/site.dev/www и ставим Omega 4.
drush dl omega
drush en omega
drush cc all

Сбросить кеш - обязательное действие! После этого в drush появятся нужные нам команды для работы с омегой. Установка Bundler и Ruby

$ sudo apt-get install bundler
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  libruby1.9.1 libyaml-0-2 ruby ruby-dev ruby-net-http-persistent ruby-thor
  ruby1.9.1 ruby1.9.1-dev rubygems-integration
Suggested packages:
  ri ruby1.9.1-examples ri1.9.1 graphviz ruby-switch
The following NEW packages will be installed:
  bundler libruby1.9.1 libyaml-0-2 ruby ruby-dev ruby-net-http-persistent
  ruby-thor ruby1.9.1 ruby1.9.1-dev rubygems-integration
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 3 860 kB of archives.
After this operation, 18,0 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Создание своей подтемы на базе Omega 4

Переходим в папку с темами и запускаем мастер создания подтемы:

cd sites/all/themes
drush owiz
Please enter the name of the new sub-theme [Omega Subtheme]: Sherskova
Please enter a machine-readable name for your new theme [sherskova]:
Please choose a base theme for your new theme
 [0]  :  Cancel
 [1]  :  books (Subtheme of Omega) - Please provide a description for your theme.
 [2]  :  Ohm (Subtheme of Omega) - Omega based demonstration theme. Serves as a best-practice reference for the Omega documentation. Ohm will be
         constantly updated as best practice evolves so shouldn't be used in production.
 [3]  :  Omega - A powerful HTML5 base theme framework utilizing tools like
         Sass, Compass, Grunt, Bower, Ruby Version Manager, Bundler and more.
3
Please choose a starterkit for your new theme
 [0]  :  Cancel
 [1]  :  Default: Comes with a well organized Sass setup with heavy use of partials. (Provided by Omega)
1
Please choose a destination. This is where your sub-theme will be placed [sites/all/themes]: // здесь ничего не меняем, просто нажимаем enter, тема будет лежать в папке sites/all/themes.
Do you want to keep the starterkit's readme files? (y/n): y
Do you want to enable your new theme? (y/n): y
Do you want to make your new theme the default theme? (y/n): y
Do you want to download the libraries defined in libraries.make now? (y/n): y
Make new site in the current directory? (y/n): y
Beginning to build libraries.make.                                   [ok]
selectivizr downloaded from https://github.com/fubhy/selectivizr/archive/master.zip.     [ok]
html5shiv downloaded from https://github.com/fubhy/html5shiv/archive/master.zip.                                         [ok]
respond downloaded from https://github.com/fubhy/respond/archive/master.zip.                                             [ok]
matchmedia downloaded from https://github.com/fubhy/matchmedia/archive/master.zip.                                [ok]
pie downloaded from https://github.com/fubhy/pie/archive/master.zip. [ok]
You have successfully created the theme Sherskova (sherskova) in sites/all/themes.  [success]

После этих манипуляций наша подтема для Omega 4 готова. Осталось только ее оживить. Переходим в папку с темой (в моем примере - это тема sherskova, у вас, разумеется, своя):

cd sites/all/themes/sherskova
drush omega-guard
Which theme do you want to run Guard for?
 [0]  :  Cancel
 [1]  :  books (Subtheme of Omega) - Please provide a description for your theme.
 [2]  :  Ohm (Subtheme of Omega) - Omega based demonstration theme. Serves as a best-practice reference for the
         Omega documentation. Ohm will be constantly updated as best practice evolves so shouldn't be used in
         production.
 [3]  :  Omega - A powerful HTML5 base theme framework utilizing tools like Sass, Compass, Grunt, Bower, Ruby
         Version Manager, Bundler and more.
 [4]  :  Sherskova (Subtheme of Omega) - Please provide a description for your theme.
4

There was a problem with your setup:                        [error]
Resolving dependencies...
Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.

Как видно - еще не все готово для работы. В папке с темой есть файлик - Gemfile, в котором перечислены все нужные gem's. Надо их установить. Запускаем bundle install и все что нужно скачивается и ставится:

bundle install
Fetching gem metadata from https://rubygems.org/..........
Installing addressable (2.3.5)
Installing chunky_png (1.2.8)
Installing fssm (0.2.10)
Installing sass (3.2.9)
Installing compass (0.12.2)
Installing breakpoint (2.0.5)
Installing timers (1.1.0)
Installing celluloid (0.15.2)
Installing coderay (1.1.0)
Installing compass-blend-modes (0.0.2)
Installing color-schemer (0.2.5)
Installing compass-normalize (1.4.3)
Installing compass-rgbapng (0.2.1)
Installing compass-validator (3.0.1)
Installing css_parser (1.3.4)
Installing eventmachine (1.0.3)
Installing http_parser.rb (0.5.3)
Installing em-websocket (0.5.0)
Installing ffi (1.9.0)
Installing formatador (0.2.4)
Installing rb-fsevent (0.9.3)
Installing rb-inotify (0.9.0)
Installing listen (2.2.0)
Installing lumberjack (1.0.4)
Installing method_source (0.8.2)
Installing slop (3.4.7)
Installing pry (0.9.12.3)
Installing thor (0.18.1)
Installing guard (2.2.4)
Installing guard-compass (1.0.0)
Installing multi_json (1.8.2)
Installing guard-livereload (2.0.0)
Installing guard-shell (0.5.2)
Installing oily_png (1.1.0)
Installing rb-fchange (0.0.6)
Installing sass-globbing (1.1.0)
Installing sassy-strings (0.3.1)
Installing singularitygs (1.0.8)
Installing susy (1.0.9)
Installing toolkit (1.3.3)
Installing yajl-ruby (1.1.0)
Using bundler (1.3.5)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

Все! Теперь наша тема полностью готова к работе и весь богатый функционал базовой темы Omega 4 нам доступен. Снова пишем в консоли drush omega-guard. Это запускает компилятор, генерирующий из sass файлов css.

3

Comments

darkdim's picture
darkdim

drush omega-guard - не всегда работает.
Я бы еще обратил внимание на "compass help". Запуск компилятора "compass watch", или "bundle exec compass watch"

Мария Шерскова's picture
Мария Шерскова

drush cc drush - и все работает. Хотя, конечно, дополнительные варианты не помешают :)

animan's picture
animan

Отличная статься, спаибо. А у вас на сайте какая тема используется?