It's been a breathless past several weeks in Migrateland - with the core committers as a whole focused on trimming the criticals list for Drupal 8 to zero, Angie "webchick" Byron has given quality time to help the Migrate team get unblocked, triggering a flurry of activity. All along I've meant to post a status update, but things have been moving so fast it's been "well, after this next commit..." Let's review where we stand at the moment, as of September 18, 2015.Upgrade path
From the initial decision to replace the traditional update-in-place (update.php) approach to major version upgrades with a migration-based (import into a fresh site) approach, it was made clear that the initial Drupal 8 release would not be blocked on the upgrade path. If the upgrade path was not "ready", Drupal 8.0.0 would release without it and be available for building new sites only. The plan was as Drupal 8 approached RC status the decision would be made over migration support in 8.0.0. That decision has been reached and published. By all means go ahead and read the official policy as well, but tl;dr: the migrate API and the Drupal 6 upgrade path (and possibly the Drupal 7 upgrade path as well) should be part of the Drupal 8.0.0 release, but marked as "Experimental".
In this blog post I will try provide an example on how you could make your modules extandable within Drupal 7.
This is a very simple module that displays buttons with labels from your custom plugins on http://localhost/my-module/plugin page and with the configuration form here: http://localhost/admin/config/development/my-module.
Hopefully this is going to be a very useful tutorial for you and help you to make your modules extendable.
First lets create a custom module with the following structure:
In this brief tutorial I will show you how to setup and configure Mailchimp for a multilingual Drupal 7 website and succed in translating the Signup form field labels.
Sometimes, I find that working with Drupal requires a strict recipe-like approach in order to reach the desired outcome - and perhaps avoid going insane. In other words, the order in which you perform each step is important.Tags:
This is your long awaited update from the Documentation Working Group (DocWG) on what has been happening in Drupal Documentation in the last month or so.
Because this is posted in the Core group as well as Documentation, comments are disabled. If you have comments or suggestions, please see the DocWG home page for how to contact us.Docs at Drupalcon Barcelona Session on documentation
The three members of the DocWG will meet in Barcelona and you are welcome to join the meeting if you are interested in Drupal documentation.Sprint
There will be a documentation sprint on Drupal 8 documentation and the D8 User Guide. Please sign up for the sprint!. DocWG members will be present at the sprint.Drupal 8 User Guide
The Drupal 8 User Guide is progressing at a steady pace, although the level of involvement has dropped a little bit over the last month. The User Guide sprint in Barcelona will surely boost the activity. Helping with this is a great way to get started with documentation and to learn a bit about Drupal 8 while you're at it. The focus right now is on writing a first draft of each of the topics in the guide, and work is also underway to figure out a final home for the new guide in https://www.drupal.org/node/2522024. Join https://groups.drupal.org/documentation for announcements.Future content improvements drupal.org
The Documentation Working Group has been working together with the Drupal Association to identify the priorities for improving documentation tools on drupal.org. These are some of the future improvements we pointed out as important:
- The ability to become a maintainer of a documentation section on drupal.org (including receiveing notifications).
- Break down the large book hierarchy in more manageable sections.
- Removing comments from below documentation page and place it in a tab.
- Linking documents with projects
For more information on the work being done on content strategy for Drupal.org check the video at https://events.drupal.org/losangeles2015/sessions/content-strategy-drupa...Documentation Updates
Over the last month some 700 documentation pages were edited. These were the top contributors:
- Francewhoa (54 revisions)
- lolandese (36 revisions)
- latikas (28 revisions)
- thomas_rz (27 revisions)
- tvn (25 revisions)
Many thanks to everyone that helps improving the community docs on drupal.org.Documentation Priorities
The Current documentation priorities page is always a good place to look to figure out what to work on, and has been updated recently. If you're new to contributing to documentation, these projects may seem a bit overwhelming -- so why not try out a New contributor task to get started?
DrupalCon News: Local Drupal organization offers two-day beginner Drupal training session in Barcelona
Drupal.cat, the local Drupal Association in Catalonia, is offering a free two-day Drupal training session for beginners in September, just a few days before DrupalCon hits Barcelona. Taking advantage of the Drupal fever that will be in town, the local organization seeks to promote Drupal in Spain and make more people aware of it as a viable CMS tool. Trainings will be in Spanish and Catalan.
The event is specifically geared to the local community interested in creating their own web site or in getting trained with new skills in the ever-growing IT & communications field.
In the simplest sentence, Docker allows to package software in an image that can run anywhere. Like virtual machines, Docker guarantees that the software that comes with the image will always run the same, regardless of the underlying environment.
Now, lets run Drupal in Docker!
Google's Chrome browser includes DevTools, a built-in feature similar to Firebug.
DevTools is really helpful for debugging CSS problems ... on a desktop computer. However, DevTools is no use on a mobile device.
In this tutorial, I'm going show you how to use the Chrome Canary browser to debug CSS on your Android phone. Chrome Canary is a version of the normal Chrome browser, but modified specifically for developers.
We’re making a new site based on Drupal 8. This site needs to display addresses, and some quick research leads us to the Address module. However, after downloading and trying to enable Address, we get the following message: Address requires the commerceguys/addressing library.
In the old days a requirement like this would be satisfied by manually downloading and extracting the library into sites/all/libraries/addressing. Nowadays that's no longer possible, PHP libraries must be installed using Composer.Read on to find out what is Composer and how to use it
Corresponding Entity References (CER) is a very useful module if you have two entity references that talk to each other. If you update one entity reference, CER does all the work to make sure the other entity reference reflects that update. It makes it easy to quickly associate entity references without having to edit two entities.
In this example, I will make two content types: Timeline and Timeline Event. I want to associate the two content types with each other. To do this, I will make a field on each content type that will be an entity reference field. Using CER, I will connect these two fields.
Thanks to CER, when I create a new Timeline Event, I just have to select the Timeline that I want associated and presto, the Timeline Event will show up on the Timeline. If I edit or delete the Timeline Event, then the changes will be reflected on the Timeline. If I edit the Timeline, the changes will be reflected in Timeline Event.
CER a great way to save time and make sure all your content is consistent.Let’s get started!
First, the module depends on other modules. Make sure CTools, Entity API, and Elements modules are downloaded to your site.
The module is located here:
I downloaded and used version 7.x-3.x-dev.
First, I need to download the module and enable it. I can do this in my terminal by using drush and these two commands:
- drush dl cer-7.x-3.x-dev (or drush @[yoursite] dl cer-7.x-3.x-dev )
- drush en cer (or drush @[yoursite] en cer)
Now I need to make the fields on the two content types that I want to correspond to each other. I am going to connect the Timeline to the Timeline Event.
I need to add the field on the Timeline Event content type. I am naming this field Associated Timeline.
I need to make sure that Associated Timeline is a Field Type: Entity Reference. Now I navigate to Entity Selection and Target Bundles. Since Timeline Event is only going to talk to Timeline, I only need to select Timeline.
There are more setting options to choose from, such as the number of values and default value.
Now I need to go to the Timeline content type. This is the content type that I want to tie to Timeline Event.
I need to add a new field to Timeline. This field will also be an entity reference. I will name this field Associated Timeline Events.
For the field’s settings, I navigate to Entity Selection and Target Bundles. This time, I select Timeline Event.
I am going to set the number of values of Unlimited so I can associate more than one Timeline Event to a Timeline.
Now I have my two fields on my two content types, and both fields can target bundles from the content type they want to talk to. In other words, Timeline can choose from Timeline Events, and Timeline Events can choose from Timeline.Let's set up the Corresponding Entity References.
To set up the Corresponding Entity References I will navigate to Configuration, select Content authoring, and then select Corresponding Entity References.
Then I click Add Preset.
I will select one of the options - Associated Timeline or Associated Timeline Event - I created for the Left Field and the other field for the Right Field. If I select bidirectional, it does not matter which field I place in the Left Field and Right Field. I also need to make sure the preset is Enabled.
Bidirectional means I can make the change on either content type and it will change the other content type.
If I do not choose bidirectional - then the Left Field will reflect changes, but the Right Field will not reflect these changes. In other words, if I set the Associated Timeline Event field as the Left Field and the the Associated Timeline field as the Right Field, the Timeline Event will change but the Timeline Event will not populate on the Timeline. Not sure why anyone would choose this, but hey, it's an option.
Once I hit save, I am redirected here. Good to go!Now let's test it out.
First, I need to create my Timeline. The Timeline is called “A Short History of The Internet.” I want to create 3 separate Timeline Events and attached them to the Timeline.
I need to fill out the fields in the new Timeline. Since no Timeline Events exist yet, I cannot associate the two entity references yet.
Now I will create my Timeline Event. I need to associate the event with the timeline.
Now if I navigate back to the new Timeline, the new Timeline is magically populated and associated on the new Timeline Event node.
When I edit the Timeline node, the Associated Timeline Event field is now filled in!
Sweet, now I have Timeline Event that is associated to my Timeline. Let’s add a couple more events.
Let’s see the magic of the module in action. When I create a new Timeline Event, associate it with the Timeline then the timeline associated magically updates. On the content page, the Timeline will be marked as updated.
If you go to edit the Timeline, we can see the three new Timeline Events.Displaying all the the fields
Great, but… I want to show all the fields of the content, not just the titles.
Now I need to go to the manage display of the timeline content type and set the Associated Timeline Events field Format to Rendered Entity. The “Rendered as” needs to match the view mode I want displayed for the Timeline Event.
Now all the Timeline Event fields are showing up on the Timeline.Some errors/bugs/problems I have discovered and how to get around them.
- There are problems I ran into with pushing the settings up in Features. Do not include any CER presets in Features, instead recreate the CER preset on each environment. Also you might need to uninstall and reinstall the module per environment. If you encounter a problem where not all the CER fields show up (including Left Field, Right Field, Enabled, Bidirectional and Weight) reinstalling the module will fix it.
- I cannot automatically order the Entity Reference fields. They will be ordered in the way that they are created. I can manually switch their order by dragging them. If I want to automatically order the Entity Reference fields based on some entity field such as a date, a view will need to be created.
The CER module is a great way to make sure you only have to edit connecting content once. The module keeps your content consistent and clear, and that is always a great thing.
Now I present a cat sneezing.Lindsay Gaudinier Topics: Services:
One of our members had a problem. They wanted to display a large number of images inside a Panel.
The images were all uploaded to a node and they were displaying vertically.
Our recommendation was to use Views. This allows you to take much greater control over how the images are displayed.
A client asked us to move his site and update it at the same time, since there isn't much content and given the content does not change a lot, we decided to try something else. Normally we build all of our sites in Drupal, but this time we opted to use Grav.
Continue your Drupal 8 practical experience by creating a custom module. Sounds simple, but is it?
We all have been in situations when there are crazy crunch times before a release. Folks are working long, hard hours. Frequent last minute builds are done to fix issues and put in functionality. New bugs are then found. Project Managers are at their wits end. Teammates are brought in from other projects to ‘help’ at the last minute, putting those projects under stress. There are status meetings every 15 minutes or so. Customers end up unsatisfied. This is not good for the health of the project or everyone involved. It leads to increased risks and issues.
When people are setting up an e-commerce store, it's common to use PayPal.
Love it or hate, many of us have PayPal accounts and it's the first way that many of try to accept money.
However, your account may well be showing your personal name rather than your business name. It looks so much more professional to pay "OSTraining" rather than "Steve Burge".
In this video, Topher shows you how to solve this problem by upgrading from PayPal Personal to Business.
Drupal 8 is (almost) here and if you are a developer, it is time to start learning Drupal 8 module development. Module development in Drupal 8 represents a major shift from Drupal 7. This is the first tutorial in a series where I’ll be going through the process of learning Drupal 8 development. The module that we create in this tutorial is as simple as it can be and is aimed at helping you get a feel for the module structure, creating a basic controller, routes, menu items and custom blocks.