Лекция для студентов НТУ ХПИ. Рассматривает основы работы с полями (nodes) в Drupal 7 - рассмотрен вопрос использования существующих поелй, их настройка, программная работа с полями,
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Web-программирование
Лекция #4. Каскадные таблицы стилей
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция для студентов НТУ ХПИ. Рассматривает основы работы с полями (nodes) в Drupal 7 - рассмотрен вопрос использования существующих поелй, их настройка, программная работа с полями,
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Web-программирование
Лекция #4. Каскадные таблицы стилей
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Исай Руслан выступил с темой “Entity. Возрождение легенды” на Drupal Cafe #18
Видео с презентации вы сможете увидеть, перейдя по ссылке https://youtu.be/JkXuirPcBPE?list=PLtUZRIj1OWYzCGb3OCYMVYqnrJ-EpH0Ot
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
Курс "Промышленное программирование на Java". Набор лекций 1. "Сборка и компоновка приложения".
Сборка проекта. Apache Maven. Компоновка и верхнеуровневый дизайн приложения. Depencency Injection. Spring Framework. Spring Boot. Обзор популярных утилитарных библиотек. Логгинг, slf4j, log4j.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
В докладе расcказывается о сущностях в Drupal 7, какие это дает преимущества разработчику а также освещаются некоторые удобные методы для работы с сущностями в Drupal.
Автор: Дмитрий Сторожук
http://Itech4web.com
Лекция #3. Введение в языки разметки web-страницЯковенко Кирилл
Web-программирование
Лекция #3. Введение в языки разметки web-страниц
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Исай Руслан выступил с темой “Entity. Возрождение легенды” на Drupal Cafe #18
Видео с презентации вы сможете увидеть, перейдя по ссылке https://youtu.be/JkXuirPcBPE?list=PLtUZRIj1OWYzCGb3OCYMVYqnrJ-EpH0Ot
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
Курс "Промышленное программирование на Java". Набор лекций 1. "Сборка и компоновка приложения".
Сборка проекта. Apache Maven. Компоновка и верхнеуровневый дизайн приложения. Depencency Injection. Spring Framework. Spring Boot. Обзор популярных утилитарных библиотек. Логгинг, slf4j, log4j.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
В докладе расcказывается о сущностях в Drupal 7, какие это дает преимущества разработчику а также освещаются некоторые удобные методы для работы с сущностями в Drupal.
Автор: Дмитрий Сторожук
http://Itech4web.com
Лекция #3. Введение в языки разметки web-страницЯковенко Кирилл
Web-программирование
Лекция #3. Введение в языки разметки web-страниц
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Bionic University. Разработка с использованием CMS/CMF Drupal. Быстрый старт....Alex Barkov
BIONIC University запрошує на зустріч з активними діячами української Drupal спільноти.
Подробиці та форма реєстрації за посиланням: http://goo.gl/hVcbQV
Спікери та експерти:
Олександр Барков, керівник DEWEB Studio
Євген Курко, організатор конференції UA Mobile
У рамках зустрічі відбудеться презентація нової програми напряму TECH Skills @ BU - «Розробка з CMS/CMF Drupal. Швидкий старт».
Основы создания сайта. Часть вторая. Обзор CMS. Выбор CMS под нужды бизнеса. ARTW
Слайды к блоку курса "Интернет-маркетинг в Зоне Действия".
Вторая часть посвящена выбору системы управления сайтом. Рассматривается вопрос необходимости CMS либо альтернативные решения SAAS, генераторы статичных страниц, конструкторы сайтов, а также дополнительный онлайн-инструментарий.
Советы по выбору CMS. Разница между коммерческими, opensource и самописными системами. Рейтинги CMS.
Drupal: система для быстрой и комфортной разработки web-сайтовAlex Barkov
On October 30th, 2013 Alexander Barkov and Andrew Yun on behalf of the deWeb studio and Ukrainian Drupal community made a speech for the students and youth of Software Engineering club IT-master in the hall of the Academic Council "KPI". They talked about the benefits of using CMS / CMF Drupal, - the basic system, based on which we build our projects.
http://deweb.com.ua/blog/speech-students-community-it-master-kpi
Презентация к вебинару по CMS WordPressЕвгений Холин
1. История создания и развития CMS WordPress
2. Причины популярности CMS WordPress
3. Структура CMS WordPress
1. Плагины для WP
2. Темы для WP
3. Иерархия в темах
4. Фреймворки для WordPress
4. Краткий обзор API CMS WordPress
5. Основные достоинства и недостатки WordPress
6. Перспективы разработчика для WordPress, область применения CMS
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
Доклад осветит вопросы устройства REST API для веб-приложений и мобильных клиентов, от которых требуется высокая производительность.
Проектирование высокопроизводительных REST API.
- Кто должен участвовать в проектировании.
- Как узнать, что оптимизировать.
- Как измерять производительность REST API.
Паттерны и антипаттерны.
- Почему pagination - это плохо, и на что лучше заменить.
- Проблема N+1 и как с ней бороться.
- Бесполезные данные - как обнаружить и уничтожить.
- Как не ломать кэширование на клиенте.
- Эффективная работа с интерфейсами "мастер-детали".
Кэширование.
- Три слоя кэширования.
- Самый быстрый запрос - тот, которого не было. Как увеличить их количество.
- Экономия трафика.
- Исключение ненужных вычислений.
- Подходы к инвалидации кэша.
Приемы оптимизации работы с API на клиенте.
- Параллельные запросы.
- Эффективный разбор данных.
- In-memory DB на клиенте.
- Стратегии кэширования на клиенте.
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupaldeWeb
Презентация Deweb “От front-end разработки к темизации в Drupal” затрагивает нюансы и базовые основы работы с темизацией в Drupal.
Deweb presentation "From front-end development to the theming in Drupal" is about the nuances and basics of working with theming in Drupal.
Автор - Дмитрий Бородаенко (Debian Project, ex-SaM Solutions Dept6 head). Краткий вводный курс по пакетированию программного обеспечения средствами Debian/Ubuntu. Прочитан в апреле 2012 года для сотрудников отдела Linux & Embedded SaM Solutions. Публикуется по договоренности с лектором.
Видео: http://bit.ly/13Tw24s
Занимаясь разработкой интерфейсов, мы постоянно разбираемся как и что устроено. Вы задумывались, сколько времени у вас уходит на то, чтобы найти нужный фрагмент кода, который отвечает за компонент на странице? В своем докладе я покажу как это можно сделать за один клик, а так же раскрою технические детали.
Seminarul Internaţional „Implementarea tehnologiei IR (repozitorii instituţionale): Sistemul DSpace”, 14-15 aprilie 2011. Chişinău, Ambasada Regală a Norvegiei în România, Asociaţia Bibliotecarilor din Republica Moldova, Consorţiul REM, Programul EIFL-OA, Biblioteca Ştiinţifică a Academiei de Studii Economice din Moldova. Instructor: Kuzma KUDIM, Institutul Sisteme Software al Academiei de Ştiinţe din Kiev, Ucraina.
How can you be confident that your code is well-tested? For me, the criteria are straightforward: you feel comfortable deploying it automatically to production on a Friday evening, and the release pipeline stays as green as an evergreen tree. In this talk, I'll share some approaches that I am following to hit both targets for Node.js apps (APIs BFFs, etc)
Node.js BFFs - our way to the better/micro frontendsEugene Fidelin
To be able to implement new features in as little time as possible, we migrated our
monolithic Java-based frontends towards smaller Node.js BFFs (backend-for-frontend, BFF
pattern - create separate backend services to be consumed by specific frontend
applications).
Now we are close to the next step in our journey and adopt Micro-frontends architecture to
build our web apps as a composition of even smaller features which are owned by
independent teams
The burden of maintenance, keeping things consistent, secure and up-to-date grows with the number of services and libs owned by the teams.
At Marktplaats/Adevinta Benelux we work hard on improving developer experience of our frontend platform so less time is spent on housekeeping and developers can focus all their efforts on product development and nothing else.
Node.js BFFs: our way to better/micro frontendsEugene Fidelin
About 2 years ago Marktplaats.nl started to build a new platform. We migrated from huge Java-based frontends towards smaller Node.js BFFs (backend-for-frontends). We are close to the next step and adapt a micro-frontends approach.
Here I would like to share the outcomes of this quest: what architecture solutions are made, how does Marktplaats.nl run and scale so many BFFs in production, how we grew as a team, educated frontend-developers to write backend code and what were our biggest challenges.
Practical advices how to achieve persistence in Redis. Detailed overview of all cons and pros of RDB snapshots and AOF logging. Tips and tricks for proper persistence configuration with Redis pools and master/slave replication.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Eugene Fidelin
Presentation about using Features module for Drupal.
Made for DrupalCamp Donetsk 2011
Video: http://www.youtube.com/watch?feature=player_embedded&v=3nLlrEYFwgA
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Работа с материалами (nodes) в Drupal 7
1. Работа с материалами (node) в Drupal 7
Материал (node) — основная единица контента в Drupal
Каждый материал в системе имеет собственную страницу с
адресом вида node/номер_материала. (node/17)
2. Типы материалов (node types) в Drupal 7
Материал могут быть различных типов
– по-умолчанию доступны Page и Article (/admin/structure/types)
3. Типы материалов (node types) в Drupal 7
Типы материалов добавляются
– модулями (например Forum, Blog)
– вручную (/admin/structure/types/add)
4. Создание новых материалов (node) в Drupal 7
Drupal cоздает форму для добавления/редактирования
материалов каждого типа
– /node/add/<название типа>
5. Как материалы храняться в БД Drupal 7
Таблица node — базовая информация о всех нодах
nid - первичный ключ таблицы
vid - связка с таблицей node_revision, идентификатор текущей версии ноды
type - связка с таблицей node_type, тип материала данной ноды
language - связка с таблицей languages, текущий язык материала
title - заголовок ноды
uid - идентификатор пользователя-собственника ноды, как правило тот, кто ее создал
status - флаг, определяющий опубликована ли нода
created - unix timestamp времени создания ноды
changed - unix timestamp времени последнего обновления ноды
comment - флаг, определяющий позволено ли коментировать данную ноду
promote - флаг, определяющий выведена ли нода на главную страницу сайта
sticky - флаг, определяющий нужно ли закреплять ноду вверху списков
tnid - идентификатор набора переводов для данной ноды
translate - флаг, определяющий должен ли быть обновлен перевод для данной ноды
Таблица node_revisions — информация о каждой
сохраненной версии ноды
nid - какой ноде принадлежит данная версия
vid - первичный ключ таблицы
uid - идентификатор пользователя, создавшего данную версию ноды
title - заголовок данной версии ноды
log - запись лога, описывающая изменения в данной версии по сравнению с предыдущей
timestamp - unix timestamp времени создания версии ноды
status - флаг, определяющий, была ли опубликована нода в данной версии
comment - флаг, определяющий, разрешалось ли комментировать ноду в данной версии
promote - флаг, определяющий, выводилась ли нода на главную страницу сайта в данной версии
sticky - флаг, определяющий, закреплялась ли нода вверху списков в данной версии
6. Как материалы храняться в БД Drupal 7
Таблица field_data_body — значения поля body ноды
entity_type - тип сущности. В нашем случае всегда будет = 'node'.
bundle - тип материала.
deleted - флаг, показывающий было ли это поле удалено
entity_id - связка с сущностью. В нашем случае, с полем nid из таблицы 'node'.
revision_id - связка с версией сущности, В нашем случае, с полем мid из таблицы 'node_revisions'.
language - язык поля
delta - порядковый номер, используется для полей, принимающих множество значений
body_value - собственно, значение поля
body_summary - краткое значение поля, тизер
body_format - связка с таблицей filter_format, формат ввода для данного поля
Таблица url_alias — синонимы (aliases) системных путей
Drupal
pid - первичный ключ таблицы
source - системный путь Drupal, для которого задаем алиас (например, node/1)
alias - сам алиас (например company/about)
language - язык, для которого задается алиас
7. Создание новых материалов в БД Drupal 7
node_save() - создание новой ноды и сохранение в БД
– $new_node = new StdClass();
$new_node->type = 'page';
$new_node->title = 'Новый заголовок';
$new_node->status = 1;
$new_node->promote = 1;
$new_node->comment = 2;
$new_node->sticky = 0;
$new_node->language = 'ru'; //если нет языков - LANGUAGE_NONE
$new_node->body[$node->language]['0']['value'] = 'Содержимое';
$new_node->body[$node->language]['0']['summary'] = 'Анонс';
$new_node->body[$node->language]['0']['format'] = 'full_html';
$new_node->uid = 1;
$node->path = array('alias' => 'url/goes/here');
node_save($new_node);
// узнаем какой ID присвоился созданной ноде
$nid = $new_node->nid;
8. Редактирование, удаление материалов в БД Drupal 7
node_load() и node_save() - загрузка и обновление ноды
– $node = node_load(17); //указываем nid нужной ноды
//теперь в $node храниться вся информация о ноде
//загруженная из БД
//меняем нужные значения
$node->title = 'Обновили заголовок';
$node->status = 0;
$node->body[$node->language]['0']['value'] = 'Новое';
$node->body[$node->language]['0']['summary'] = 'Новое';
$node->body[$node->language]['0']['format'] = 'full_html';
node_save($node);
node_delete() - удаление ноды
– node_delete(17); //указываем nid нужной ноды
9. Вывод и отображение материалов в БД Drupal 7
node_view() - рендеринг содержимого ноды
– $node = node_load(17); //указываем nid нужной ноды
//указываем какой вид отображения
//полный 'full' или анонс 'teaser'
//указываем какой язык нужен (необязательно)
//если NULL — береться текущий язык сайта
$rendered_node = node_view($node, 'full', NULL);
//полученный массив преобразуем в HTML
print drupal_render($rendered_node);
10. Хуки для работы с материалами в БД Drupal 7
Создание новой ноды (вызов node_save() с данными новой
ноды)
– hook_node_presave() - для изменения ноды перед сохранением
– hook_node_insert() - для изменения новой ноды перед вставкой
– function mymodule_node_insert($node) {
if ($node->type == 'mytype') {
$node->path['alias'] = 'mytype/' . $node->nid;
}
}
Редактирование существующей ноды (вызов node_save() с
данными существующей ноды)
– hook_node_presave() - для изменения ноды перед сохранением
– hook_node_update() - для сущесвующей новой ноды перед
обновлением
– function mymodule_node_update($node) {
if ($node->type == 'mytype') {
$node->title = trim($node->title);
}
11. Хуки для работы с материалами в БД Drupal 7
Загрузка данных ноды (вызов node_load())
– hook_node_load() - для добавления своих данных или изменения
существующих
– function mymodule_node_load($nodes, $types) {
foreach ($nodes as $node) {
$node->mynewfield = 'node nid = '. $node->nid;
}
}
Отображение ноды (вызов node_view())
– hook_node_view() - для добавления содержимого к выводу
– hook_node_view_alter() - для изменения содержимого к выводу
– function mymodule_node_view($node, $view_mode, $langcode) {
if ($view_mode == 'full') {
$node->content['mycontent'] = array(
'#markup' => 'My node content',
'#weight' => 10,
);
}
}
12. Хуки для работы с материалами в БД Drupal 7
Удаление ноды (вызов node_delete())
– hook_node_delete() - для удаления собственных данных связанных
с нодой (нода еще существует в БД)
– function mymodule_node_delete($node) {
db_delete('mytable')
->condition('nid', $node->nid)
->execute();
}
Подготовка ноды к редактированию (отображение формы
добавления/редактирования ноды)
– hook_node_prepare() - для изменения данных выводимых на форме
– function mymodule_node_prepare($node) {
if (!isset($node->comment)) {
$node->comment = 2;
}
}
13. Расширенные возможности
Понятие “сущности” (entity) как более высокого уровня
абстрации над материалом
Работа с ревизиями материалов
Работа с мультиязычными материалами
Работа с дополнительными полями материалов (отдельная
лекция)
Работа с шаблонами материалов (отдельная лекция)
14. Ссылки на подробную информацию
http://api.drupal.org/api/drupal/modules!node!
node.api.php/group/node_api_hooks/7
http://api.drupal.org/api/drupal/modules!node!node.module/7
15. Контакты
Фиделин Евгений
Компания QArea
Email: eugene.fidelin@gmail.com
Skype: eugene.fidelin