Install an existing Laravel project

Submitted by christophe on Thu, 06/07/2017 - 10:01

A quick todo list for setting up a freshly cloned project.

Install the dependencies with Composer.

# cd in your project directory
composer install
composer dumpautoload -o

Check if the values in config/app.php meets your needs, depending where (staging, dev, ...) and how (php -S, artisan, vm with a domain, ...) you are running it.


CKEditor Media Embed wrapper for Drupal 7

Submitted by christophe on Thu, 29/06/2017 - 08:47
Looks like most of my Drupal 7 clients are sharing the enthusiasm for CKEditor Media Embed and didn't want to wait for a Drupal 8 upgrade of their site, so here is a wrapper module for that. There are probably way better implementations, like the one that was done for Drupal 8, but I wanted to have something quickly ready with close to zero maintenance. Also, it had to rely on the Wysiwyg module and not the CKEditor standalone module.

Migrating SQL in Drupal 8 with Migrate Tools and Migrate Plus

Submitted by christophe on Tue, 13/06/2017 - 22:21
Migrate API is awesome, and if you plan some custom migration, a few contributed modules does the heavy lifting for you. This article should be regarded as a list of steps to follow to achieve a simple migration from another SQL data source than Drupal. So we will not go in deep into the explanations of the Migrate theory, for this subject, refer to the documentation of the Migrate API. Also, we will finish with some debugging techniques and a first shot of a bash script for rerolling a migration from scratch in case of configuration change.

React and Drupal 8 with JSON API 2/3

Submitted by christophe on Tue, 30/05/2017 - 22:37
The first post of this serie focused on setting up easily a multilingual Drupal and React environment for a museum Audioguide web app. This one describes the steps to achieve a MVP that displays a list and a detail page of Audio contents, so we have the opportunity to cover several basic concepts under React : Components (add from a package repository, inherit, compose, create), Routes (default route and wildcard), Fetch to consume Rest, Localization via React Intl

React and Drupal 8 with JSON API 1/3

Submitted by christophe on Tue, 16/05/2017 - 22:30
The goal of this serie of posts is to achieve quickly a simple museum Audioguide web app based on a React isomorphic boilerplate with a Drupal 8 backend that uses the latest standards. The web app will be fully decoupled by being hosted on another domain than the Drupal one. As a real world case, we want it to be fully multilingual. This is the first post of a serie of 3. This first one focuses on having a Drupal and React setup that meets our requirements. The second one will define a MVP that will just fetch the audioguides list and a detail view (GET operation), the last one will then add extra features like getting user feedback (POST operation).

Update a project installed via composer_manager or drush to a CI based Composer template under Drupal VM

Submitted by christophe on Tue, 18/04/2017 - 12:24

If you have to go for a Drupal core update from a previous install based on composer_manager or drush (both deprecated), consider installing something robust, Composer friendly, that excludes vendor and core for a lightweight repository and enables CI and automation tools like Phing, Behat, PHPUnit, CodeSniffer, ...

If you don't have Drupal VM installed, head to the documentation.

Drupal 8 custom Google Maps and automatic geocoding with Composer, Drupal Console and Drush

Submitted by christophe on Mon, 09/01/2017 - 18:20
The scope of this article is to illustrate the responsibilities of several tools and techniques used in the Drupal ecosystem (Composer, Drupal Console, Drush, Configuration management) to achieve quickly a simple custom Google Maps use case: an Address field will be defined on a content type. We want the address to be geocoded automatically for each node on save to display a Google Map. The display of the map will be achieved by a custom module to allow further extension.