SlideShare a Scribd company logo
S 
Hooks, tokens, rules, 
elements, plugins 
Developing for Drupal the “right” way 
“I know a way” (c) Saul Berrenson
Who am I? 
S Head of Web-development for Axel Springer Russia 
S Author of 20+ contrib modules 
S Maintainer of several other contrib modules 
S Module application reviewer 
S Recently a father to a cute daughter Anastasia
Plan first, code second 
S You should know the code flow before writing anything 
S Plan for flexible and light architecture 
S Think about exposed APIs your module would need
Utilize Drupal’s best parts 
S Drupal is really good in text filtering, but only server-side 
(PHP code) 
S Paste Format uses Drupal text filtering features to filter 
the pasted text (and you rule what actually gets filtered 
and what stays in your content)
Tokens 
S Expose your module information to other modules 
S Examples 
S HybridAuth and uLogin modules use it to expose social 
information
Rules 
S Rules are ruling 
S Power and flexibility 
S Examples 
S HybridAuth and uLogin 
S Yandex Webmaster Original Texts
Views Bulk Operations 
S Batch API 
S Queue 
S Very useful for content manipulations 
S You just need to code the actual changes
Elements 
S Easy to reuse in any renderable array 
S #properties to control your element 
S Study drupal_render() to understand the rendering flow 
S ‘#pre_render’ is really powerful
Plugins 
S Views, Panels use it – and you should 
S Flexible architecture 
S Eases maintenance and support (Image Editor) 
S Allows other developers to extend your module 
S Drupal 8 does the same
What a plugin is? 
S Array of properties utilized by another module 
S Properties may be function callbacks
S 
Most popular content 
Module design example
Most popular content 
S Always fresh statistics 
S By day, week, month 
S By content section on our site 
S No load on our servers 
S Is there a module for that?
https://www.drupal.org/sandbox/chyvakoff/2370095
Thank you! 
andrew.berezovsky@gmail.com

More Related Content

What's hot

What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)
Ingo Schommer
 
Embulk makes Japan visible
Embulk makes Japan visibleEmbulk makes Japan visible
Embulk makes Japan visible
Kai Sasaki
 
Introduction of Open Source Job Board with Drupal CMS
Introduction of Open Source Job Board with Drupal CMSIntroduction of Open Source Job Board with Drupal CMS
Introduction of Open Source Job Board with Drupal CMS
Sammy Fung
 
Restlet Framework NG
Restlet Framework NGRestlet Framework NG
Restlet Framework NG
Jerome Louvel
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
David Voyles
 
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
Restlet
 

What's hot (6)

What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)What's new in Silverstripe 4? (StripeCon APAC 2016)
What's new in Silverstripe 4? (StripeCon APAC 2016)
 
Embulk makes Japan visible
Embulk makes Japan visibleEmbulk makes Japan visible
Embulk makes Japan visible
 
Introduction of Open Source Job Board with Drupal CMS
Introduction of Open Source Job Board with Drupal CMSIntroduction of Open Source Job Board with Drupal CMS
Introduction of Open Source Job Board with Drupal CMS
 
Restlet Framework NG
Restlet Framework NGRestlet Framework NG
Restlet Framework NG
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
 

Similar to Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Березовский

DCWW Introduction to Drupal - November 13, 2012
DCWW Introduction to Drupal - November 13, 2012DCWW Introduction to Drupal - November 13, 2012
DCWW Introduction to Drupal - November 13, 2012
Kristin Jolda (Wehmueller)
 
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
cNguyn506241
 
Decoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for DevelopersDecoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for Developers
Acquia
 
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SFTed Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
MLconf
 
Graph database in sv meetup
Graph database in sv meetupGraph database in sv meetup
Graph database in sv meetup
Joshua Bae
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
Jim Jones
 
conTEXT -- Lightweight Text Analytics using Linked Data
conTEXT -- Lightweight Text Analytics using Linked DataconTEXT -- Lightweight Text Analytics using Linked Data
conTEXT -- Lightweight Text Analytics using Linked Data
Ali Khalili
 
Semantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalSemantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in Drupal
Thom Bunting
 
Drupal and the Semantic Web - ESIP Webinar
Drupal and the Semantic Web - ESIP WebinarDrupal and the Semantic Web - ESIP Webinar
Drupal and the Semantic Web - ESIP Webinar
scorlosquet
 
Ruby On Rails Siddhesh
Ruby On Rails SiddheshRuby On Rails Siddhesh
Ruby On Rails Siddhesh
Siddhesh Bhobe
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
shanmukhareddy dasi
 
Web components
Web componentsWeb components
Web components
OpenSense Labs
 
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Exove
 
Ultimate Skills Checklist for Your First Front-End Developer Job
Ultimate Skills Checklist for Your First Front-End Developer JobUltimate Skills Checklist for Your First Front-End Developer Job
Ultimate Skills Checklist for Your First Front-End Developer Job
Brenna Van Norman
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
Jay Epstein
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
Jay Epstein
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
Tee Malapela
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
 
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
Gezim Sejdiu
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
guest4faf46
 

Similar to Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Березовский (20)

DCWW Introduction to Drupal - November 13, 2012
DCWW Introduction to Drupal - November 13, 2012DCWW Introduction to Drupal - November 13, 2012
DCWW Introduction to Drupal - November 13, 2012
 
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
 
Decoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for DevelopersDecoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for Developers
 
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SFTed Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
Ted Willke, Senior Principal Engineer & GM, Datacenter Group, Intel at MLconf SF
 
Graph database in sv meetup
Graph database in sv meetupGraph database in sv meetup
Graph database in sv meetup
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
conTEXT -- Lightweight Text Analytics using Linked Data
conTEXT -- Lightweight Text Analytics using Linked DataconTEXT -- Lightweight Text Analytics using Linked Data
conTEXT -- Lightweight Text Analytics using Linked Data
 
Semantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalSemantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in Drupal
 
Drupal and the Semantic Web - ESIP Webinar
Drupal and the Semantic Web - ESIP WebinarDrupal and the Semantic Web - ESIP Webinar
Drupal and the Semantic Web - ESIP Webinar
 
Ruby On Rails Siddhesh
Ruby On Rails SiddheshRuby On Rails Siddhesh
Ruby On Rails Siddhesh
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Web components
Web componentsWeb components
Web components
 
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
Building a Node.JS accelerator for your headless Drupal backend - DrupalCamp ...
 
Ultimate Skills Checklist for Your First Front-End Developer Job
Ultimate Skills Checklist for Your First Front-End Developer JobUltimate Skills Checklist for Your First Front-End Developer Job
Ultimate Skills Checklist for Your First Front-End Developer Job
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 

More from DrupalCamp MSK

Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковСоздание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковDrupalCamp MSK
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим Валуев
DrupalCamp MSK
 
Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...
DrupalCamp MSK
 
AngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей БерезовскийAngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей Березовский
DrupalCamp MSK
 
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий КолтунОт фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
DrupalCamp MSK
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
DrupalCamp MSK
 
Freelancers Unite! - Martin Mayer
Freelancers Unite! - Martin MayerFreelancers Unite! - Martin Mayer
Freelancers Unite! - Martin Mayer
DrupalCamp MSK
 
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
DrupalCamp MSK
 
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь ЛукяновОблачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
DrupalCamp MSK
 
Создание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковСоздание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковDrupalCamp MSK
 
Ilyin drupal-solr 0
Ilyin drupal-solr 0Ilyin drupal-solr 0
Ilyin drupal-solr 0
DrupalCamp MSK
 
Направление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений ЮртаевНаправление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений Юртаев
DrupalCamp MSK
 
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийОпыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийDrupalCamp MSK
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
DrupalCamp MSK
 

More from DrupalCamp MSK (15)

Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей ТокмаковСоздание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
Создание каталога на D7 и фасетный поиск по нему - Андрей Токмаков
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим Валуев
 
Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...Открытые данные, как инструмент создания собственных коммерческих приложений ...
Открытые данные, как инструмент создания собственных коммерческих приложений ...
 
AngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей БерезовскийAngularJS & Drupal - Андрей Березовский
AngularJS & Drupal - Андрей Березовский
 
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий КолтунОт фрилансера до веб-студии за 5 шагов - Геннадий Колтун
От фрилансера до веб-студии за 5 шагов - Геннадий Колтун
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
 
Freelancers Unite! - Martin Mayer
Freelancers Unite! - Martin MayerFreelancers Unite! - Martin Mayer
Freelancers Unite! - Martin Mayer
 
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...Ask not only what your Drupal can do for you, ask what you can do for your Dr...
Ask not only what your Drupal can do for you, ask what you can do for your Dr...
 
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь ЛукяновОблачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
Облачные технологии, которые упрощают жизнь разработчикам - Игорь Лукянов
 
Создание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав НовиковСоздание первого ИТ-кооператива в России - Станислав Новиков
Создание первого ИТ-кооператива в России - Станислав Новиков
 
Ilyin drupal-solr 0
Ilyin drupal-solr 0Ilyin drupal-solr 0
Ilyin drupal-solr 0
 
Направление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений ЮртаевНаправление: Вектор - Евгений Юртаев
Направление: Вектор - Евгений Юртаев
 
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр ЛозовицкийОпыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
Опыт Drupal разработчика на бирже oDesk - Петр Лозовицкий
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
 

Recently uploaded

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

Хуки, токены, рулсы, плагины - пишем "правильный" код под Друпал - Андрей Березовский

  • 1. S Hooks, tokens, rules, elements, plugins Developing for Drupal the “right” way “I know a way” (c) Saul Berrenson
  • 2. Who am I? S Head of Web-development for Axel Springer Russia S Author of 20+ contrib modules S Maintainer of several other contrib modules S Module application reviewer S Recently a father to a cute daughter Anastasia
  • 3. Plan first, code second S You should know the code flow before writing anything S Plan for flexible and light architecture S Think about exposed APIs your module would need
  • 4. Utilize Drupal’s best parts S Drupal is really good in text filtering, but only server-side (PHP code) S Paste Format uses Drupal text filtering features to filter the pasted text (and you rule what actually gets filtered and what stays in your content)
  • 5. Tokens S Expose your module information to other modules S Examples S HybridAuth and uLogin modules use it to expose social information
  • 6. Rules S Rules are ruling S Power and flexibility S Examples S HybridAuth and uLogin S Yandex Webmaster Original Texts
  • 7. Views Bulk Operations S Batch API S Queue S Very useful for content manipulations S You just need to code the actual changes
  • 8. Elements S Easy to reuse in any renderable array S #properties to control your element S Study drupal_render() to understand the rendering flow S ‘#pre_render’ is really powerful
  • 9. Plugins S Views, Panels use it – and you should S Flexible architecture S Eases maintenance and support (Image Editor) S Allows other developers to extend your module S Drupal 8 does the same
  • 10. What a plugin is? S Array of properties utilized by another module S Properties may be function callbacks
  • 11. S Most popular content Module design example
  • 12. Most popular content S Always fresh statistics S By day, week, month S By content section on our site S No load on our servers S Is there a module for that?
  • 13.