SlideShare a Scribd company logo
DRUPAL as a framework
Samuel Solís
@estoyausente
linkedin.com/in/samuelsolisfuentes
Drupal as a framework Samuel Solís | @estoyausente
What is DRUPAL?
Drupal as framework Samuel Solís | @estoyausente
CMSs Frameworks
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
CMSs Frameworks
¿CMF?
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
Drupal inside
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
diff drupal7 drupal8
- PAC (presentation-abstraction-control)!
+ MVC!
+ Orient-Object code!
+ PHP standards!
+ Symfony2 component!
+ Twig!
+ Build-in web services!
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
PAC
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
Drupal7’s PAC
http://dsheiko.com/
Drupal as a framework Samuel Solís | @estoyausente
Drupal as framework Samuel Solís | @estoyausente
http://dsheiko.com/
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
! block_example/!
├── block_example.info
├── block_example.install
├── block_example.module
└── block_example.test
tree block_example
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
function block_example_block_info() {!
$blocks['example_configurable_text'] = !!
array(!
'info' => t('Example),!
'cache' => DRUPAL_CACHE_PER_ROLE,!
);!
return $blocks;!
} !
vi block_example.module
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
function block_example_block_configure($delta =
'') {!
$form = array();!
if ($delta == ‘example_configurable_text’){!
$form['block_example_string'] = array(!
'#type' => ‘textfield',!
'#title' => t('Block contents’),!
'#size' => 60,!
'#description' => t('This text example'),!
'#default_value' =>
variable_get('block_example_string', t('Some
example content.’)),!
); !
}
return $form;!
}
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
function block_example_block_save($delta =
'', $edit = array()) {!
if ($delta == ‘example_configurable_text’){!
! variable_set(‘block_example_string’,!
! $edit[‘block_example_string’]);!
}!
}!
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
function block_example_block_view($delta =
'') {
switch ($delta) {!
case ‘example_configurable_text':!
$block['subject'] = t('Title');
$block['content'] =
block_example_contents();!
break; !
}!
return $block;!
}!
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
function block_example_contents() {
return variable_get(‘block_example_string’);!
}!
Drupal as a framework Samuel Solís | @estoyausente
Drupal as a framework
Drupal as framework Samuel Solís | @estoyausente
Drupal8’s MVC
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
block_example/
├── block_example.info.yml
├── block_example.module
├── block_example.routing.yml
└── lib
└── Drupal
└── block_example
├── Controller
│   └── BlockExampleController.php
├── Plugin
│   └── Block
│   ├── ExampleConfigurableTextBlock.php
│   ├── ExampleEmptyBlock.php
│   └── ExampleUppercaseBlock.php
└── Tests
├── BlockExampleMenuTest.php
└── BlockExampleTest.php
tree block_example
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
block_example/
├── block_example.info.yml
├── block_example.module
├── block_example.routing.yml
└── lib
└── Drupal
└── block_example
├── Controller
│   └── BlockExampleController.php
├── Plugin
│   └── Block
│   ├── ExampleConfigurableTextBlock.php
│   ├── ExampleEmptyBlock.php
│   └── ExampleUppercaseBlock.php
└── Tests
├── BlockExampleMenuTest.php
└── BlockExampleTest.php
tree block_example
Drupal as a framework Samuel Solís | @estoyausente
PSR 0
Drupal for devs Samuel Solís | @estoyausente
function block_example_menu_link_defaults() {
$links['block_example'] = array(
'link_title' => 'Block Example’,
'route_name' => ‘block_example.description',
);
return $links;
}
vi block_example.module
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
block_example.description:
path: ‘examples/block_example’
defaults:
_content:
'Drupalblock_exampleController
BlockExampleController::description'
requirements:
_access: 'TRUE'
vi block_example.routing.yml
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
namespace Drupalblock_exampleController;
class BlockExampleController {
public function description() {
$build = array(
'#markup' => t(‘Descripion'),
);
return $build;
}
}
vi BlockExampleController.php
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
namespace Drupalblock_examplePluginBlock;
use DrupalblockAnnotationBlock;
use DrupalblockBlockBase;
use DrupalCoreAnnotationTranslation;
vi BlockExampleConfigurableText.php
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
class ExampleConfigurableTextBlock extends
BlockBase {
!
public function defaultConfiguration() {
return array(
'block_example_string' => t(‘Default'),
);
}
!
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
public function blockForm($form, &$form_state)
{
$form['block_example_string_text'] = array(
'#type' => ‘textfield',
'#title' => t('Block contents’),
'#size' => 60,
'#description' => t(‘Description'),
'#default_value' =>
$this->configuration[‘block_example_string'],
);
return $form;
}
!
!
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
public function blockSubmit($form, &
$form_state) {
$this->configuration['block_example_string']
= $form_state[‘values']
['block_example_string_text'];
}
Drupal as a framework Samuel Solís | @estoyausente
Drupal for devs Samuel Solís | @estoyausente
public function build() {
return array(
'#type' => ‘markup',
'#markup' =>
$this->configuration[‘block_example_string'],
);
}
!
}//end class
Drupal as a framework Samuel Solís | @estoyausente
Drupal as a framework
Drupal as framework Samuel Solís | @estoyausente
Drush
Drupal as a framework Samuel Solís | @estoyausente
Samuel Solís
@estoyausente

More Related Content

What's hot (8)

KEY
$.Template
Dave Furfero
 
PPT
Top 5 Non-Obvious Drupal Modules
ghing
 
PDF
A better CSS: Sass and Less - CC FE & UX
JWORKS powered by Ordina
 
PPTX
Drupal 7 — Circle theme
Kirill Borzov
 
PDF
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Samuel Solís Fuentes
 
PDF
What we can learn from WordPress as a developer
Chandra Maharzan
 
PDF
Decoupling Your HTML, CSS & JavaScript
Tomislav Mesić
 
PPT
My sql presentation
Nikhil Jain
 
$.Template
Dave Furfero
 
Top 5 Non-Obvious Drupal Modules
ghing
 
A better CSS: Sass and Less - CC FE & UX
JWORKS powered by Ordina
 
Drupal 7 — Circle theme
Kirill Borzov
 
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Samuel Solís Fuentes
 
What we can learn from WordPress as a developer
Chandra Maharzan
 
Decoupling Your HTML, CSS & JavaScript
Tomislav Mesić
 
My sql presentation
Nikhil Jain
 

Similar to Drupal as a framework (20)

ODP
PHPNW Drupal as a Framework
digital006
 
PDF
October 2014 - USG Rock Eagle - Drupal 101
Eric Sembrat
 
PPTX
An Introduction to Drupal & How to Use It by Sanket Jain
Innoraft
 
PDF
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Ryan Weaver
 
PDF
Drupal 8 Deep Dive: Plugin System
Acquia
 
PDF
Introduction to drupal
Pedro Cambra
 
PDF
Drupal Recipe
hernanibf
 
PPTX
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi
 
PPTX
Why Enterprises Choose Drupal for Futuristic Web App Development?
Helios Solutions
 
PDF
Showcasing drupal
Opevel
 
PDF
Create a Symfony Application from a Drupal Perspective
Acquia
 
PDF
DruStack- a mobile-friendly web content management system (cms
Wong Hoi Sing Edison
 
PDF
drustack a mobile-friendly web content management system (cms)
Wong Hoi Sing Edison
 
ODP
Introduction to Drupal 7
Gerald Villorente
 
PDF
Drupal 101 V-0.1
Gerald Villorente
 
PPTX
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
Bryan Ollendyke
 
PDF
DCWW Introduction to Drupal - November 13, 2012
Kristin Jolda (Wehmueller)
 
PPT
Drupal101
Rachel Vacek
 
PDF
Drupal as a Programmer-Friendly CMS at ConFoo
Suzanne Dergacheva
 
PDF
Drupal vs. Wordpress
Roshani Kothari
 
PHPNW Drupal as a Framework
digital006
 
October 2014 - USG Rock Eagle - Drupal 101
Eric Sembrat
 
An Introduction to Drupal & How to Use It by Sanket Jain
Innoraft
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Ryan Weaver
 
Drupal 8 Deep Dive: Plugin System
Acquia
 
Introduction to drupal
Pedro Cambra
 
Drupal Recipe
hernanibf
 
Ran Mizrahi - Symfony2 meets Drupal8
Ran Mizrahi
 
Why Enterprises Choose Drupal for Futuristic Web App Development?
Helios Solutions
 
Showcasing drupal
Opevel
 
Create a Symfony Application from a Drupal Perspective
Acquia
 
DruStack- a mobile-friendly web content management system (cms
Wong Hoi Sing Edison
 
drustack a mobile-friendly web content management system (cms)
Wong Hoi Sing Edison
 
Introduction to Drupal 7
Gerald Villorente
 
Drupal 101 V-0.1
Gerald Villorente
 
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
Bryan Ollendyke
 
DCWW Introduction to Drupal - November 13, 2012
Kristin Jolda (Wehmueller)
 
Drupal101
Rachel Vacek
 
Drupal as a Programmer-Friendly CMS at ConFoo
Suzanne Dergacheva
 
Drupal vs. Wordpress
Roshani Kothari
 
Ad

More from Samuel Solís Fuentes (17)

PDF
Beyond coding. How management experience made me a better developer
Samuel Solís Fuentes
 
PDF
El necesario mal del Legacy Code (Drupal Iberia 2024)
Samuel Solís Fuentes
 
PDF
De managers y developers
Samuel Solís Fuentes
 
PDF
Hábitos y consejos para sobrevivir a un trabajo sedentario
Samuel Solís Fuentes
 
PDF
Querying solr
Samuel Solís Fuentes
 
PDF
Las tripas de un sistema solr
Samuel Solís Fuentes
 
PDF
D8 Form api
Samuel Solís Fuentes
 
PDF
Mejorar tu código mejorando tu comunicación
Samuel Solís Fuentes
 
PDF
Custom entities in d8
Samuel Solís Fuentes
 
PDF
Drupal8 simplepage v2
Samuel Solís Fuentes
 
PDF
Como arreglar este desastre
Samuel Solís Fuentes
 
PDF
Drupal y rails. Nuestra experiencia
Samuel Solís Fuentes
 
PDF
Mejorar tu código hablando con el cliente
Samuel Solís Fuentes
 
PDF
Taller de introducción al desarrollo de módulos
Samuel Solís Fuentes
 
PDF
Más limpio que un jaspe.
Samuel Solís Fuentes
 
PDF
Arquitectura de información en drupal
Samuel Solís Fuentes
 
PDF
Drupal para desarrolladores
Samuel Solís Fuentes
 
Beyond coding. How management experience made me a better developer
Samuel Solís Fuentes
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
Samuel Solís Fuentes
 
De managers y developers
Samuel Solís Fuentes
 
Hábitos y consejos para sobrevivir a un trabajo sedentario
Samuel Solís Fuentes
 
Querying solr
Samuel Solís Fuentes
 
Las tripas de un sistema solr
Samuel Solís Fuentes
 
Mejorar tu código mejorando tu comunicación
Samuel Solís Fuentes
 
Custom entities in d8
Samuel Solís Fuentes
 
Drupal8 simplepage v2
Samuel Solís Fuentes
 
Como arreglar este desastre
Samuel Solís Fuentes
 
Drupal y rails. Nuestra experiencia
Samuel Solís Fuentes
 
Mejorar tu código hablando con el cliente
Samuel Solís Fuentes
 
Taller de introducción al desarrollo de módulos
Samuel Solís Fuentes
 
Más limpio que un jaspe.
Samuel Solís Fuentes
 
Arquitectura de información en drupal
Samuel Solís Fuentes
 
Drupal para desarrolladores
Samuel Solís Fuentes
 
Ad

Recently uploaded (20)

PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 

Drupal as a framework

  • 1. DRUPAL as a framework Samuel Solís @estoyausente linkedin.com/in/samuelsolisfuentes
  • 2. Drupal as a framework Samuel Solís | @estoyausente What is DRUPAL?
  • 3. Drupal as framework Samuel Solís | @estoyausente CMSs Frameworks Drupal as a framework Samuel Solís | @estoyausente
  • 4. Drupal as framework Samuel Solís | @estoyausente CMSs Frameworks ¿CMF? Drupal as a framework Samuel Solís | @estoyausente
  • 5. Drupal as framework Samuel Solís | @estoyausente Drupal inside Drupal as a framework Samuel Solís | @estoyausente
  • 6. Drupal as framework Samuel Solís | @estoyausente diff drupal7 drupal8 - PAC (presentation-abstraction-control)! + MVC! + Orient-Object code! + PHP standards! + Symfony2 component! + Twig! + Build-in web services! Drupal as a framework Samuel Solís | @estoyausente
  • 7. Drupal as framework Samuel Solís | @estoyausente PAC Drupal as a framework Samuel Solís | @estoyausente
  • 8. Drupal as framework Samuel Solís | @estoyausente Drupal7’s PAC http://dsheiko.com/ Drupal as a framework Samuel Solís | @estoyausente
  • 9. Drupal as framework Samuel Solís | @estoyausente http://dsheiko.com/ Drupal as a framework Samuel Solís | @estoyausente
  • 10. Drupal for devs Samuel Solís | @estoyausente ! block_example/! ├── block_example.info ├── block_example.install ├── block_example.module └── block_example.test tree block_example Drupal as a framework Samuel Solís | @estoyausente
  • 11. Drupal for devs Samuel Solís | @estoyausente function block_example_block_info() {! $blocks['example_configurable_text'] = !! array(! 'info' => t('Example),! 'cache' => DRUPAL_CACHE_PER_ROLE,! );! return $blocks;! } ! vi block_example.module Drupal as a framework Samuel Solís | @estoyausente
  • 12. Drupal for devs Samuel Solís | @estoyausente function block_example_block_configure($delta = '') {! $form = array();! if ($delta == ‘example_configurable_text’){! $form['block_example_string'] = array(! '#type' => ‘textfield',! '#title' => t('Block contents’),! '#size' => 60,! '#description' => t('This text example'),! '#default_value' => variable_get('block_example_string', t('Some example content.’)),! ); ! } return $form;! } Drupal as a framework Samuel Solís | @estoyausente
  • 13. Drupal for devs Samuel Solís | @estoyausente function block_example_block_save($delta = '', $edit = array()) {! if ($delta == ‘example_configurable_text’){! ! variable_set(‘block_example_string’,! ! $edit[‘block_example_string’]);! }! }! Drupal as a framework Samuel Solís | @estoyausente
  • 14. Drupal for devs Samuel Solís | @estoyausente function block_example_block_view($delta = '') { switch ($delta) {! case ‘example_configurable_text':! $block['subject'] = t('Title'); $block['content'] = block_example_contents();! break; ! }! return $block;! }! Drupal as a framework Samuel Solís | @estoyausente
  • 15. Drupal for devs Samuel Solís | @estoyausente function block_example_contents() { return variable_get(‘block_example_string’);! }! Drupal as a framework Samuel Solís | @estoyausente
  • 17. Drupal as framework Samuel Solís | @estoyausente Drupal8’s MVC Drupal as a framework Samuel Solís | @estoyausente
  • 18. Drupal for devs Samuel Solís | @estoyausente block_example/ ├── block_example.info.yml ├── block_example.module ├── block_example.routing.yml └── lib └── Drupal └── block_example ├── Controller │   └── BlockExampleController.php ├── Plugin │   └── Block │   ├── ExampleConfigurableTextBlock.php │   ├── ExampleEmptyBlock.php │   └── ExampleUppercaseBlock.php └── Tests ├── BlockExampleMenuTest.php └── BlockExampleTest.php tree block_example Drupal as a framework Samuel Solís | @estoyausente
  • 19. Drupal for devs Samuel Solís | @estoyausente block_example/ ├── block_example.info.yml ├── block_example.module ├── block_example.routing.yml └── lib └── Drupal └── block_example ├── Controller │   └── BlockExampleController.php ├── Plugin │   └── Block │   ├── ExampleConfigurableTextBlock.php │   ├── ExampleEmptyBlock.php │   └── ExampleUppercaseBlock.php └── Tests ├── BlockExampleMenuTest.php └── BlockExampleTest.php tree block_example Drupal as a framework Samuel Solís | @estoyausente PSR 0
  • 20. Drupal for devs Samuel Solís | @estoyausente function block_example_menu_link_defaults() { $links['block_example'] = array( 'link_title' => 'Block Example’, 'route_name' => ‘block_example.description', ); return $links; } vi block_example.module Drupal as a framework Samuel Solís | @estoyausente
  • 21. Drupal for devs Samuel Solís | @estoyausente block_example.description: path: ‘examples/block_example’ defaults: _content: 'Drupalblock_exampleController BlockExampleController::description' requirements: _access: 'TRUE' vi block_example.routing.yml Drupal as a framework Samuel Solís | @estoyausente
  • 22. Drupal for devs Samuel Solís | @estoyausente namespace Drupalblock_exampleController; class BlockExampleController { public function description() { $build = array( '#markup' => t(‘Descripion'), ); return $build; } } vi BlockExampleController.php Drupal as a framework Samuel Solís | @estoyausente
  • 23. Drupal for devs Samuel Solís | @estoyausente namespace Drupalblock_examplePluginBlock; use DrupalblockAnnotationBlock; use DrupalblockBlockBase; use DrupalCoreAnnotationTranslation; vi BlockExampleConfigurableText.php Drupal as a framework Samuel Solís | @estoyausente
  • 24. Drupal for devs Samuel Solís | @estoyausente class ExampleConfigurableTextBlock extends BlockBase { ! public function defaultConfiguration() { return array( 'block_example_string' => t(‘Default'), ); } ! Drupal as a framework Samuel Solís | @estoyausente
  • 25. Drupal for devs Samuel Solís | @estoyausente public function blockForm($form, &$form_state) { $form['block_example_string_text'] = array( '#type' => ‘textfield', '#title' => t('Block contents’), '#size' => 60, '#description' => t(‘Description'), '#default_value' => $this->configuration[‘block_example_string'], ); return $form; } ! ! Drupal as a framework Samuel Solís | @estoyausente
  • 26. Drupal for devs Samuel Solís | @estoyausente public function blockSubmit($form, & $form_state) { $this->configuration['block_example_string'] = $form_state[‘values'] ['block_example_string_text']; } Drupal as a framework Samuel Solís | @estoyausente
  • 27. Drupal for devs Samuel Solís | @estoyausente public function build() { return array( '#type' => ‘markup', '#markup' => $this->configuration[‘block_example_string'], ); } ! }//end class Drupal as a framework Samuel Solís | @estoyausente
  • 29. Drupal as framework Samuel Solís | @estoyausente Drush Drupal as a framework Samuel Solís | @estoyausente