Visiting 2012 is a conference in the center of Copenhagen.

My blog from 2013.

Sessions are:


09:00 – Doors will open
09:15 – Welcome by DrupalDenmark
09:30 – Crash course in Public tenders
10:30 – The power of Panels
11:30 – Drupal Commerce
12:30 – Lunch break
13:30 – Dominate the theme layer
14:30 – Move files around the cloud with storage api
15:30 – Drupal 8: Initiatives and the future
16:30 – Twig in core!
16:45 – End of day 1


10:00 – 80 million germans can’t be wrong
11:00 – Node.js – Real-time web apps with Drupal
12:00 – Displaying external data on the fly with views and ctools
13:00 – Lunch break
14:00 – Device-dependent features in Drupal
15:00 – Agile that works and the tools we love
16:00 – Drupal Ladder
17:00 – Thank you and thanks for this time!

Read on to see my notes. Sessions here.

F10:30 – The power of Panels

Presenter: Troels Lenda (@trogels) works@Reload

Certified Typo3 developer

Comparing Typo3 with Drupal

Winner Typo 3 Drupal
Node X
Section Page X

Panels in Dp makes Dp as strong as Typo3.

Tip 1

Avoid blocks – instead put blocks in Panels Everywhere


Instead of using Panel Pages then use Panel Nodes.

Problem: Difficult to see where sections are

Solution: Use Panels IPE (In place editor)


Panelizer – For getting different layout for Panel Nodes. It detaches a node from master, when node is edited, which is both good and in some cases bad.

Fieldable Panel Panes. Demoed with Carousel

Great starting point

Installation Panopoly.

F11:30 – Drupal Commerce

Presenter: Jakob Torp @googletorp works@RevealIT

Installation: Commerce kickstart 2

Only use UberCart, if you are using D6

F13:30 – Dominate the theme layer

Jesper Wøldiche Rahkonen @woeldiche works@Bysted

– Is just OOCSS or SMACSS

– Code on Github

The Gentle way

Pitfalls: Repeating styling, expensive to maintain

#abc{} Styling by page or Content type

.node{} Using tags as selectors – Problem: styles to markup

h1{} Styling heading by tag – Problem:

The dominant way

Solution: Create Acrh based on design and busines.

Build systems extensible, robust and portable.

Style objects instead of pages and elements.

Submissive markup in 4 easy steps


Find recurrent patterns

Organize in types:

  • structural –
  • visual – round corners, sizes
  • variations – only color is different

Consolidate into fewer patterns into variations of common objects

  • Unity
  • Rules for variations

Define objects and variations from patterns



System example

  • variations
  • styling
  • typography
  • structure
  • grids


Theme Templates

Panels and views

Scary: render arrays

aside class=”$vars[‘classes_array’]”

function mytheme_preprocess_page ($vars){





Domination Tools

Fireworks stencils

F14:30 – Move files around the cloud with storage api

Presenter: Jonathan Brown – author of Module: Storage API


Enable: Storage, Core Bridge, Audit


Which file go into which class?

  • Containers – DB, file system, Amazon S3, etc
  • Classes – can contain several containers. Running cron will propagate files to S3, too.

Image or File field settings: Upload destination: Storage Class – Everything

Does not yet work with media field or entity.

Great for syncing content to clouds in different continents.

F15:30 – Drupal 8: Initiatives and the future

Presenter: Bálint Kléri @BalintKleri works@Wunderkraut

D8: September 2013

  • Mobile
  • Multilingual (D8MI)
  • Blocks and Layouts (SCOTCH)
  • Views
  • Designers and Frontend
  • Developers
  • Configuration Management


Responsive admin theme


Edit – settings properties put in right column.

Spark: D7 installation – inplace editing



Blocks and layouts

D7: Logo, Page title are not in regions.

D8: Everything should be a block and know its context.


Page manager and Panels in core

Plugin system for core – a specific task – e.g. a module covering several blocks.


Designers and Frontend


For Developers

Web Services – code from Symfony

Configuration Management

Copying cfg between environments

Read more

S10:00 – 80 million germans can’t be wrong

Aske Ertmann & Christian Jul Jensen
2000: Multi lang, scripting, Image generation,
2002: Extensions (D: Modules),

  • Workspaces
  • Search engine
  • Speaking urls
  • Flexible API


  • New application foundation: Flow3
  • Template Fluid (as Twig)
  • Rewritten CMS: Neos

Fronend libs:

  • Create.js
  • Aloha, Hallo //Inline editor
  • RequireJS //is all requirements loaded?
  • EmberJS, VIE
  • jQuery + UI, Chosen, CodeMirror

ContentTypes, but only in code.

S11:00 – Node.js – Real-time web apps with Drupal

Mikkel Høgh works@revealit
Site: Lektier online.
Problem: Everyone is waiting…
Had to increase poll rating from 10 sec – not good – can’t scale
PHP is waiting for databases and webservices most of the time
Solution: Let clients communite outside server

  • Isomorphic code //same code on server and client
  • Client is statefull

Drupal module: WebService: Query d7 database. Enable node.js to query D7
Configure zones with domains.
Sample: DNode
WebSocket – persistent connection between client and server.
On Letion-online: Client asking server who’s online?

S12:00 – Displaying external data on the fly with views and ctools

Lars Stade Linnet @lslinnet works@wunderkraut
Fetching REST data
Rest Server:
Getting Data
Class: DrupalConsAPIRequest – a view plugin?
function build() for creating request
function execute() for getting data
Can now be used in Views.
Ctools tells PageManager how to use DrupalConsAPIRequest
Plugin to CTools. Can be used for Tokens, entities and fields.
remote entities

S14:00 – Device-dependent features in Drupal

Morten Fangel works@mediehuset ingeniøren
Device detection.

  • Regular expressions
  • Module Browscap
  • WURFL (capabilities)
  • DeviceAtlas (capabilities)

Drupal Module: Mobile tools, but not production ready (3.x). 2.x is dead.
Drupal Module: Mobile Switch. Only themes.
How does Varnish know what to cache? Use Cache groups?
So now – start over – not in Drupal.
Android is a pain to detect – mobile or tablet?
Using Regular expressions: Mobile or not.
Send device group to Drupal w. custom hearder
Change theme w. hook_custom_theme
What will we do @ingdk?
Use responsive design.
But still remove some blocks on the frontpage.

  • Responsive (fluid): fit width
  • Adaptive: 5 sizes
  • RESS = Reponsive Server-Side

S15:00 – Agile that works and the tools we love

Rasmus Luckow-Nielsen @rasmusluckow works@reload
Devs bad at estimating
Cust bad at specs
Scrum good at get a dialogue
Demand time from product owner (PO)
PO must be empowered
… we must assist PO
Which product to walk away from?
External or undefined dependency – not good at fixed price.
Min size: 2-3 month for 2 people.
PO appreciate we figure out things as we go along.
Fixed: budget, deadline, quality. Scope is variable.
Custs hate to pay for meetings

  • Daily scrum
  • Sprint planning – short and focused. Plan in advance.
  • UserStory estimation
  • Velocity calcuælation
  • SprintReport

Definition of Done

Cust – vaigue idea – Analysis – common understanding
WireFrames, UserStories – our spec – will evolve
Map UserStories to WireFrames
Get all known things in the backlog and estimate

  • Balsamiq – Wireframes?
  • Jira + Greenhopper – Scrum
  • Bonfire – Exploratory testing

Book: Kanban and Scrum – making the most of both


S16:00 – Drupal Ladder

Addison Berry @add1sun works@Lullabot,
Core is not they. Not enough people
No of core contributers: D7: 900
Percentage of contributers: 0,1 %
Organizing sprints 18 – 20 CET wednesday
Use IRC to ask questions and find tickets, that match.

The End


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: