SlideShare a Scribd company logo
1 of 35
Download to read offline
Темизация - процесс внедрения верстки в CMF/СMS. Иными словами -
процесс приведения внешнего вида сайта в соответствие с макетом.
Что нужно знать:
- HTML, CSS, JS
- Основы PHP или другого бекендового языка
1. Сначала вывод данных, потом стилизация
2. Сначала верстка статических данных согласно дизайну, затем замена
статических данных динамическими
1. Своя тема “с нуля”
2. Наследование от родительской темы
Почитать подробнее: https://www.drupal.org/node/225125
Скачать готовую тему: https://www.drupal.org/project/project_theme
1. .info файл
2. разметка страниц в файлах шаблонов
3. изменение, добавление переменных и
переопределение функций
name required
description
core required
engine
base theme
regions
stylesheets
scripts
php
…
name = Mytheme
description = Tableless, recolorable, multi-column,
fluid width theme.
core = 7.x
engine = phptemplate
base theme = bartik
Почитать подробнее: https://www.drupal.org/node/171205#php
Движок темизации в Drupal - функционал, обеспечивающий
возможность взаимодействия слоя темизации с другими слоями в
Drupal посредством шаблонов. Определяет синтаксис написания кода.
PHPTemplate - стандартный движок темизации начиная с Drupal 4.7
Twig - стандартный движок темизации в Drupal 8
Почитать подробнее: https://www.drupal.
org/project/project_theme_engine
; подключение стилей
stylesheets[all][] = css/style.css
stylesheets[print][] = css/print.css
stylesheets-conditional[lte IE 7][all][] = css/ie7.css
; подключение скриптов
scripts[] = mytheme.js
Доступные условия IE: https://msdn.microsoft.com/en-
us/library/ms537512(v=vs.85).aspx
regions[content] = Content - обязательный регион!
regions[custom_region] = My custom region
regions[sidebar_first] = Sidebar first
regions[page_top] = Page top
regions[page_bottom] = Page bottom
<?php if ($page['custom_region']): ?>
<div id="custom_region"><div class="section">
<?php print render($page['custom_region']); ?
>
</div></div>
<?php endif; ?>
Реестр темы - это некая таблица в базе данных, которая является
частью таблицы кеша Drupal, и в которой Drupal хранит информацию о
доступных функциях темы и ее структуре.
Почитать подробнее: https://www.drupal.org/node/173880#theme-registry
Дебаггинг (отладка) – этап разработки программы, в ходе которого
обнаруживают, локализуют и исправляют баги (ошибки).
Отладка в Drupal - модуль Devel
Основные функции отладки: dpm, dvm, kpr
Синтаксис: <?php dpm($content); ?>
Полезные ссылки:
https://api.drupal.org/api/devel/devel.module/7
http://xandeadx.ru/blog/drupal/304
Theme hook suggestion - это
альтернативный файл шаблона, который мы
создаем, чтобы переопределить вывод какого-
либо блока.
Пример:
node--story.tpl.php
field--story.tpl.php
page--front.tpl.php
https://www.drupal.org/node/1089656
/**
* Implements hook_block_view().
*/
function share_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'mytheme_share':
$variables = array('url' => url(current_path(), array
('absolute' => TRUE)));
$block['content'] = theme('mytheme_share',
$variables);
break;
}
return $block;
}
/**
* Implements hook_theme().
*/
function share_block_theme() {
return array(
'mytheme_share' => array(
'variables' => array(),
'template' => 'mytheme_share',
),
);
}
/**
* Implements hook_preprocess_node().
*/
function mytheme_preprocess_node(&$variables) {
// Add to node template mytheme_share block.
$block = block_load('mytheme_share', 'mytheme_share');
$render_array = _block_get_renderable_array(_block_render_blocks(array($block)));
$variables['content']['mytheme_share'] = $render_array;
$variables['classes_array'][] = 'clearfix';
}
Вывод в шаблоне:
<?php print render($content['mytheme_share']); ?>
Пишем строку в settings.php:
$conf['theme_debug'] = TRUE;
При необходимости подключения из функции:
- drupal_add_js('jQuery(document).ready(function () { alert("Hello!"); });',
array('type' => 'inline', 'scope' => 'footer')
);
- drupal_add_js('misc/collapse.js');
Внешние скрипты:
- drupal_add_js('http://example.com/example.js', 'external');
Drupal_add_js docs https://api.drupal.org/api/drupal/includes%21common.
inc/function/drupal_add_js/7
Не объявлена переменная $
(function () {
$('div.menu-expanded').hide();
$(....);
});
(function ($) {
$(function () {
$('div.menu-expanded').hide();
$(...);
});
}) (jQuery);
jQuery(document).ready(function($){
$('.view-display-id-page .views-row').addClass
('fancy-pants');
});
Drupal.behaviors.infiniteScrollAddClass = {
attach: function (context, settings) {
$('.view-display-id-page .views-row').addClass
('fancy-pants');
}};
Drupal.behaviors.infiniteScrollAddClass = {
attach: function (context, settings) {
// these are the elements loaded in first
$('.view-display-id-page').once(function(){
$(this).find('.views-row').addClass('i-was-here-
first'); });
// everybody
$('.view-display-id-page .views-row').
addClass('fancy-pants');
}};
Managing JS in drupal https://www.drupal.org/node/756722
http://www.amazeelabs.com/en/blog/drupal-behaviors-quick-how
- Drupal general concepts https://www.drupal.org/node/19828
- Drupal 7 Theming Cookbook Karthik Kumar https://www.drupal.
org/node/1849888
- Theming Drupal 7 https://www.drupal.org/theme-guide/6-7
- Documentation https://www.drupal.org/documentation/theme
- Definitive Guide to Drupal 7 Theming http://themery.com/dgd7
- Lullabot.com - Theming Basics For Drupal - video
- Lullabot.com - Advanced Theming For Drupal - video
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal

More Related Content

What's hot

09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворкиRoman Brovko
 
Creating custom module
Creating custom moduleCreating custom module
Creating custom moduleyulia_tsyba
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Nikita Borzykh
 
Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его примененияMedia Gorod
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributionsi20 Group
 
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussiaNikolay Samokhvalov
 
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.Dmytro Danylevskyi
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ruNikolay Samokhvalov
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомAlexander Titov
 
50 оттенков play!
50 оттенков play!50 оттенков play!
50 оттенков play!Andrei Solntsev
 
Drush - незаменимый инструмент друпал разработчика
Drush - незаменимый инструмент друпал разработчикаDrush - незаменимый инструмент друпал разработчика
Drush - незаменимый инструмент друпал разработчикаValentina Borovaya
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиAlbina Tiupa
 
Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Yandex
 
Развертывание и управление CMS Drupal в Microsoft Azure
Развертывание и управление CMS Drupal в Microsoft AzureРазвертывание и управление CMS Drupal в Microsoft Azure
Развертывание и управление CMS Drupal в Microsoft AzureArtur Baranok
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...zfconfua
 

What's hot (19)

Chef
ChefChef
Chef
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Creating custom module
Creating custom moduleCreating custom module
Creating custom module
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
 
Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его применения
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributions
 
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
 
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.
Drush. Ускоряем разработку, облегчаем деплоймент и поддержку сайта.
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектом
 
50 оттенков play!
50 оттенков play!50 оттенков play!
50 оттенков play!
 
Drush - незаменимый инструмент друпал разработчика
Drush - незаменимый инструмент друпал разработчикаDrush - незаменимый инструмент друпал разработчика
Drush - незаменимый инструмент друпал разработчика
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
 
Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"
 
Развертывание и управление CMS Drupal в Microsoft Azure
Развертывание и управление CMS Drupal в Microsoft AzureРазвертывание и управление CMS Drupal в Microsoft Azure
Развертывание и управление CMS Drupal в Microsoft Azure
 
Yulia tsuba
Yulia tsubaYulia tsuba
Yulia tsuba
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
Wordpress Cron
Wordpress CronWordpress Cron
Wordpress Cron
 

Viewers also liked

CI workflow in a web studio
CI workflow in a web studioCI workflow in a web studio
CI workflow in a web studiodeWeb
 
Responsive grids overview
Responsive grids overviewResponsive grids overview
Responsive grids overviewdeWeb
 
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковLviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковdeWeb
 
Get the internship you want
Get the internship you wantGet the internship you want
Get the internship you wantGia Manieri
 
Sistema Solar - Leivis Brayer T
Sistema Solar - Leivis Brayer TSistema Solar - Leivis Brayer T
Sistema Solar - Leivis Brayer Tleivisbt
 
My construction + landscaping projects ( do in spare time )
My construction + landscaping projects ( do in spare time )My construction + landscaping projects ( do in spare time )
My construction + landscaping projects ( do in spare time )Keith Hamilton
 
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWAT
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWATTUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWAT
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWATRichard Owen
 
My Construction + Landscaping Projects ( do in spare time )
My Construction + Landscaping Projects ( do in spare time )My Construction + Landscaping Projects ( do in spare time )
My Construction + Landscaping Projects ( do in spare time )Keith Hamilton
 
My Construction and Landscaping Projects ( do in spare time )
My Construction and Landscaping Projects ( do in spare time )My Construction and Landscaping Projects ( do in spare time )
My Construction and Landscaping Projects ( do in spare time )Keith Hamilton
 
makes my skin radiant
makes my skin radiantmakes my skin radiant
makes my skin radiantmarikyjillam
 
Overview of fozmula 2015 jp
Overview of fozmula 2015 jpOverview of fozmula 2015 jp
Overview of fozmula 2015 jpJohn Petersen
 
Economics project 2014-2015
Economics project 2014-2015Economics project 2014-2015
Economics project 2014-2015Kersty-Jo Zammit
 

Viewers also liked (20)

CI workflow in a web studio
CI workflow in a web studioCI workflow in a web studio
CI workflow in a web studio
 
Responsive grids overview
Responsive grids overviewResponsive grids overview
Responsive grids overview
 
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковLviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
 
Get the internship you want
Get the internship you wantGet the internship you want
Get the internship you want
 
Join us, WE ARE HIRING:)!
Join us, WE ARE HIRING:)!Join us, WE ARE HIRING:)!
Join us, WE ARE HIRING:)!
 
Pitching night Mures Startups
Pitching night Mures StartupsPitching night Mures Startups
Pitching night Mures Startups
 
Sistema Solar - Leivis Brayer T
Sistema Solar - Leivis Brayer TSistema Solar - Leivis Brayer T
Sistema Solar - Leivis Brayer T
 
My construction + landscaping projects ( do in spare time )
My construction + landscaping projects ( do in spare time )My construction + landscaping projects ( do in spare time )
My construction + landscaping projects ( do in spare time )
 
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWAT
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWATTUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWAT
TUGAS IPS KELAS AL FATIH KELOMPOK RICHARD BUMI SHALAWAT
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
My Construction + Landscaping Projects ( do in spare time )
My Construction + Landscaping Projects ( do in spare time )My Construction + Landscaping Projects ( do in spare time )
My Construction + Landscaping Projects ( do in spare time )
 
My Construction and Landscaping Projects ( do in spare time )
My Construction and Landscaping Projects ( do in spare time )My Construction and Landscaping Projects ( do in spare time )
My Construction and Landscaping Projects ( do in spare time )
 
Grammaeng
GrammaengGrammaeng
Grammaeng
 
makes my skin radiant
makes my skin radiantmakes my skin radiant
makes my skin radiant
 
Overview of fozmula 2015 jp
Overview of fozmula 2015 jpOverview of fozmula 2015 jp
Overview of fozmula 2015 jp
 
Economics project 2014-2015
Economics project 2014-2015Economics project 2014-2015
Economics project 2014-2015
 
islamic book amharic
islamic book amharicislamic book amharic
islamic book amharic
 
Arctic monkeys
Arctic monkeysArctic monkeys
Arctic monkeys
 
teleflora
teleflorateleflora
teleflora
 
Luc resume
Luc resumeLuc resume
Luc resume
 

Similar to Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal

DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...Viktor Likin
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Alex Barkov
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсDigital-агентство Мэйк
 
Trening modul2-webinar11
Trening modul2-webinar11Trening modul2-webinar11
Trening modul2-webinar11olgaoov
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalSPB
 
Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"zabej
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word pressvovasik
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Andriy Yun
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011camp_drupal_ua
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 
Development and deployment freedom - MODX Meetup Minsk
Development and deployment freedom - MODX Meetup MinskDevelopment and deployment freedom - MODX Meetup Minsk
Development and deployment freedom - MODX Meetup MinskMODX Беларусь
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 

Similar to Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal (20)

DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейс
 
Trening modul2-webinar11
Trening modul2-webinar11Trening modul2-webinar11
Trening modul2-webinar11
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
 
Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
Drupal as service.
Drupal as service.Drupal as service.
Drupal as service.
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
Development and deployment freedom - MODX Meetup Minsk
Development and deployment freedom - MODX Meetup MinskDevelopment and deployment freedom - MODX Meetup Minsk
Development and deployment freedom - MODX Meetup Minsk
 
Drupal Do
Drupal DoDrupal Do
Drupal Do
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 

Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. Темизация - процесс внедрения верстки в CMF/СMS. Иными словами - процесс приведения внешнего вида сайта в соответствие с макетом. Что нужно знать: - HTML, CSS, JS - Основы PHP или другого бекендового языка
  • 6. 1. Сначала вывод данных, потом стилизация 2. Сначала верстка статических данных согласно дизайну, затем замена статических данных динамическими
  • 7. 1. Своя тема “с нуля” 2. Наследование от родительской темы Почитать подробнее: https://www.drupal.org/node/225125 Скачать готовую тему: https://www.drupal.org/project/project_theme
  • 8. 1. .info файл 2. разметка страниц в файлах шаблонов 3. изменение, добавление переменных и переопределение функций
  • 9.
  • 10.
  • 11.
  • 12. name required description core required engine base theme regions stylesheets scripts php … name = Mytheme description = Tableless, recolorable, multi-column, fluid width theme. core = 7.x engine = phptemplate base theme = bartik Почитать подробнее: https://www.drupal.org/node/171205#php
  • 13. Движок темизации в Drupal - функционал, обеспечивающий возможность взаимодействия слоя темизации с другими слоями в Drupal посредством шаблонов. Определяет синтаксис написания кода. PHPTemplate - стандартный движок темизации начиная с Drupal 4.7 Twig - стандартный движок темизации в Drupal 8 Почитать подробнее: https://www.drupal. org/project/project_theme_engine
  • 14. ; подключение стилей stylesheets[all][] = css/style.css stylesheets[print][] = css/print.css stylesheets-conditional[lte IE 7][all][] = css/ie7.css ; подключение скриптов scripts[] = mytheme.js Доступные условия IE: https://msdn.microsoft.com/en- us/library/ms537512(v=vs.85).aspx
  • 15.
  • 16. regions[content] = Content - обязательный регион! regions[custom_region] = My custom region regions[sidebar_first] = Sidebar first regions[page_top] = Page top regions[page_bottom] = Page bottom <?php if ($page['custom_region']): ?> <div id="custom_region"><div class="section"> <?php print render($page['custom_region']); ? > </div></div> <?php endif; ?>
  • 17.
  • 18.
  • 19. Реестр темы - это некая таблица в базе данных, которая является частью таблицы кеша Drupal, и в которой Drupal хранит информацию о доступных функциях темы и ее структуре. Почитать подробнее: https://www.drupal.org/node/173880#theme-registry
  • 20.
  • 21.
  • 22.
  • 23. Дебаггинг (отладка) – этап разработки программы, в ходе которого обнаруживают, локализуют и исправляют баги (ошибки). Отладка в Drupal - модуль Devel Основные функции отладки: dpm, dvm, kpr Синтаксис: <?php dpm($content); ?> Полезные ссылки: https://api.drupal.org/api/devel/devel.module/7 http://xandeadx.ru/blog/drupal/304
  • 24.
  • 25.
  • 26.
  • 27. Theme hook suggestion - это альтернативный файл шаблона, который мы создаем, чтобы переопределить вывод какого- либо блока. Пример: node--story.tpl.php field--story.tpl.php page--front.tpl.php https://www.drupal.org/node/1089656
  • 28. /** * Implements hook_block_view(). */ function share_block_view($delta = '') { $block = array(); switch ($delta) { case 'mytheme_share': $variables = array('url' => url(current_path(), array ('absolute' => TRUE))); $block['content'] = theme('mytheme_share', $variables); break; } return $block; } /** * Implements hook_theme(). */ function share_block_theme() { return array( 'mytheme_share' => array( 'variables' => array(), 'template' => 'mytheme_share', ), ); }
  • 29. /** * Implements hook_preprocess_node(). */ function mytheme_preprocess_node(&$variables) { // Add to node template mytheme_share block. $block = block_load('mytheme_share', 'mytheme_share'); $render_array = _block_get_renderable_array(_block_render_blocks(array($block))); $variables['content']['mytheme_share'] = $render_array; $variables['classes_array'][] = 'clearfix'; } Вывод в шаблоне: <?php print render($content['mytheme_share']); ?>
  • 30. Пишем строку в settings.php: $conf['theme_debug'] = TRUE;
  • 31. При необходимости подключения из функции: - drupal_add_js('jQuery(document).ready(function () { alert("Hello!"); });', array('type' => 'inline', 'scope' => 'footer') ); - drupal_add_js('misc/collapse.js'); Внешние скрипты: - drupal_add_js('http://example.com/example.js', 'external'); Drupal_add_js docs https://api.drupal.org/api/drupal/includes%21common. inc/function/drupal_add_js/7
  • 32. Не объявлена переменная $ (function () { $('div.menu-expanded').hide(); $(....); }); (function ($) { $(function () { $('div.menu-expanded').hide(); $(...); }); }) (jQuery);
  • 33. jQuery(document).ready(function($){ $('.view-display-id-page .views-row').addClass ('fancy-pants'); }); Drupal.behaviors.infiniteScrollAddClass = { attach: function (context, settings) { $('.view-display-id-page .views-row').addClass ('fancy-pants'); }}; Drupal.behaviors.infiniteScrollAddClass = { attach: function (context, settings) { // these are the elements loaded in first $('.view-display-id-page').once(function(){ $(this).find('.views-row').addClass('i-was-here- first'); }); // everybody $('.view-display-id-page .views-row'). addClass('fancy-pants'); }}; Managing JS in drupal https://www.drupal.org/node/756722 http://www.amazeelabs.com/en/blog/drupal-behaviors-quick-how
  • 34. - Drupal general concepts https://www.drupal.org/node/19828 - Drupal 7 Theming Cookbook Karthik Kumar https://www.drupal. org/node/1849888 - Theming Drupal 7 https://www.drupal.org/theme-guide/6-7 - Documentation https://www.drupal.org/documentation/theme - Definitive Guide to Drupal 7 Theming http://themery.com/dgd7 - Lullabot.com - Theming Basics For Drupal - video - Lullabot.com - Advanced Theming For Drupal - video