Drupal - создание инсталляционных профайлов - Иван Абраменко, CimpleODrupalSib
DrupalCafe проводится при поддержке DrupalJedi (http://drupaljedi.com/) и i20Group (http://i20.biz/)
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Удовлетворяет ли JavaScript реалиям сегодняшнего дня? Может быть стоит посмотреть альтернативы? В докладе рассказывается, какие ещё языки можно использовать во фронтенде, и стоит ли их использовать.
Данная тема познакомит Вас с особенностями Form API в Drupal 7. Расскажет о нововведениях и интересных приемах, которые могут пригодится как начинающему так и опытному программисту.
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)Ontico
TypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
For more than 2 years we were using dry-rb libraries (and a bit of Trailblazer) in production.
I have about 10 years of Ruby on Rails experience and within all this time nothing changed in "official" ROR approach of managing and organising codebase. We still have fat models, somebody even have business logic in them.
In my speech I tried to show when this approach does not work, how we came to this, how we managed to implement dry-rb in existing projects and how it finally helps us
Drupal - создание инсталляционных профайлов - Иван Абраменко, CimpleODrupalSib
DrupalCafe проводится при поддержке DrupalJedi (http://drupaljedi.com/) и i20Group (http://i20.biz/)
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Удовлетворяет ли JavaScript реалиям сегодняшнего дня? Может быть стоит посмотреть альтернативы? В докладе рассказывается, какие ещё языки можно использовать во фронтенде, и стоит ли их использовать.
Данная тема познакомит Вас с особенностями Form API в Drupal 7. Расскажет о нововведениях и интересных приемах, которые могут пригодится как начинающему так и опытному программисту.
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)Ontico
TypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
For more than 2 years we were using dry-rb libraries (and a bit of Trailblazer) in production.
I have about 10 years of Ruby on Rails experience and within all this time nothing changed in "official" ROR approach of managing and organising codebase. We still have fat models, somebody even have business logic in them.
In my speech I tried to show when this approach does not work, how we came to this, how we managed to implement dry-rb in existing projects and how it finally helps us
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — проблемы и решения.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
2. Render API
Render API
Что такое Render API
Концепция Render Arrays
Преимущества подхода
Ключевые свойства
Работа функций render(), drupal_render()
и drupal_render_children()
Рендеринг страницы
Render API и темизация
2
18. Render API
Ключевые свойства
#cache: настройки кэширования
элемента
Возможность кэширования отдельных частей
страницы
Свойства:
keys / cid – ключ кэша
granularity – кэш по роли, юзеру, странице
expire – время жизни
bin – хранилище (таблица cache по умолчанию)
18
19. Render API
Ключевые свойства
#states – условия изменения состояния
состояния - enabled/disabled,
visible/invisible, …
условия - empty/filled, checked, value …
19
27. Render API
Этапы работы drupal_render()
- #access и #pinted
- загрузка свойств поумолчанию (если указан #type)
- #pre_render
- #theme
- #theme_wrappers
27
28. Render API
Этапы работы drupal_render()
- #post_render
- #states
- #attached
- #cache
- Возвращает
#prefix.$output.#suffix
28
29. Render API
Рендеринг страницы
- Все элементы страницы собраны в
рендер массиве
- Можно изменить страницу с помощью
двух хуков hook_page_build() - дает
возможность добавить элементы на
страницу
- hook_page_alter() - дает возможность
изменить уже существующие элементы
29
30. Render API и темизация
- Для обработки рендер-массивов
в шаблоне нужно использовать
drupal_render()/render().
- hide()/show() - управляют
видимостью элемента в рендермассиве.
30
Render API
31. Render API
Render API и темизация
<!-- node.tpl.php -->
<div class="content"<?php print $content_attributes;?>>
<?php
// We hide the comments and links now so that we can render them
later.
hide($content['comments']);
hide($content['links']);
print render($content);
?>
</div>
<?php print render($content['links']); ?>
<?php print render($content['comments']); ?>
31
32. Render API
Render API и темизация
- В Drupal 7 есть два вида
передачи данных в функцию
темизации
properties-as-variable
element-as-variable
32
33. Render API
Render API и темизация
function mymodule_theme() {
return array(
//properties-as-variable
'mymodule_items' => array(
'variables' => array(
'items' => array(),
'title' => ''
)
)
);
}
33
34. Render API
Render API и темизация
properties-as-variable
function theme_mymodule_items($vars)
{
$items = $vars['items'];
$title =
$vars['title'];
}
34
35. Render API
Render API и темизация
function mymodule_theme() {
return array(
//element-as-variable
'mymodule_element' => array(
'render_element' => 'items'
)
);
}
35
36. Render API
Render API и темизация
element-as-variable
function theme_mymodule_element($vars){
$element = $vars['item'];
$items = $element['items'];
$title =
$element['title'];
}
36
37. Render API
Вывод
Render API - позволяет сделать код
- быстрым (благодаря #cache),
- прозрачным и понятным
(благодаря концепции рендермассивов)
- удобным (благодаря #states,
#attached)
37