Drupal

D7 To D8 Utilities

New Drupal Modules - 2 March 2018 - 1:34pm

This module provides a host of useful utility functions to make the transition to D8 much easier. Everything follows D8 standards, but is a bit easier to use.

Categories: Drupal

Zoom Conference

New Drupal Modules - 2 March 2018 - 1:21pm

Zoom Conference
===============
Provides basic functionality for creating meetings and registrations for Zoom teleconferences, via their API (v2).

This is the Drupal 8 heir to the Zoom API (https://www.drupal.org/project/zoomapi) module, which implemented version 1 of the API, and did not create any further functionality to utilize it.

Categories: Drupal

Jeff Potts: Quick look at Acquia Reservoir, a Headless Drupal Distribution

Planet Drupal - 2 March 2018 - 1:00pm

Drupal is a very popular open source Web Content Management system. One of its key characteristics is that it owns both the back-end repository where content is stored and the front-end where content is rendered. In CMS parlance this is typically called a “coupled” CMS because the front-end and the back-end are coupled together.

Historically, the coupled nature of Drupal was a benefit most of the time because it facilitated a fast time-to-market. In many cases, customers could just install Drupal, define their content types, install or develop a theme, and they had a web site up-and-running that made it easy for non-technical content editors to manage the content of that web site.

But as architectural styles have shifted to “API-first” and Single Page Applications (SPAs) written in client-side frameworks like Angular and React and with many clients finding themselves distributing content to multiple channels beyond web, having a CMS that wants to own the front-end becomes more of a burden than a benefit, hence the rise of the “headless” or “de-coupled” CMS. Multiple SaaS vendors have sprung up over the last few years, creating a Content-as-a-Service market which I’ve blogged about before.

Drupal has been able to expose its content and other operations via a RESTful API for quite a while. But in those early days it was not quite as simple as it could be. If you have a team, for example, that just wants to model some content types, give their editors a nice interface for managing instances of those types, and then write a front-end that fetches that content via JSON, you still had to know a fair amount about Drupal to get everything working.

Last summer, Acquia, a company that provides enterprise support for Drupal headed up by Drupal founder, Dries Buytaert, released a new distribution of Drupal called Reservoir that implements the “headless CMS” use case. Reservoir is Drupal, but most of the pieces that concern the front-end have been removed. Reservoir also ships with a JSON API module that exposes your content in a standard way.

I was curious to see how well this worked so I grabbed the Reservoir Docker image and fired it up.

The first thing I did was create a few content types. Article is a demo type provided out-of-the-box. I added Job Posting and Team Member, two types you’d find on just about any corporate web site.

My Team Member type is simple. It has a Body field, which is HTML text, and a Headshot field, which is an image. My Job Posting type has a plain text Body field, a Date field for when the job was posted, and a Status field which has a constrained list of values (Open and Closed).

With my types in place I started creating content…

Something that jumped out at me here was that there is no way to search, filter, or sort content. That’s not going to work very well as the number of content items grows. I can hear my Drupal friends saying, “There’s a module for that!”, but that seems like something that should be out-of-the-box.

Next, I jumped over to the API tab and saw that there are RESTful endpoints for each of my content types that allow me to fetch a list of nodes of a given type, specific nodes, and the relationships a node has to other nodes in the repository. POST, PATCH, and DELETE methods are also supported, so this is not just a read-only API.

Reservoir uses OAuth to secure the API, so to actually test it out, I grabbed the “Demo app” client UUID, then went into Postman and did a POST against the /oauth/token endpoint. That returned an access token and a refresh token. I grabbed the access token and stuck it in the authorization header for future requests.

Here’s an example response for a specific “team member” object.

My first observation is that the JSON is pretty verbose for such a simple object. If I were to use this today I’d probably write a Spring Boot app that simplifies the API responses further. As a front-end developer, I’d really prefer for the JSON that comes back to be much more succinct. The front-end may not need to know about the node’s revision history, for example.

Another reason I might want my front-end to call a simplified API layer rather than call Drupal directly is to aggregate multiple calls. For example, in the response above, you’ll notice that the team member’s headshot is returned as part of a relationship. You can’t get the URL to the headshot from the Team Member JSON.

If you follow the field_headshot “related” link, you’ll get the JSON object representing the headshot:

?

The related headshot JSON shown above has the actual URL to the headshot image. It’s not the end of the world to have to make two HTTP calls for every team member, but as a front-end developer, I’d prefer to get a team member object that has exactly what I need in a single response.

One of the things that might help improve this is support for GraphQL. Reservoir says it plans to support GraphQL, but in the version that ships on the Docker image, if you try to enable it, you get a message that it is still under development. There is a GraphQL Drupal module so I’m sure this is coming to Reservoir soon.

Many of my clients are predominantly Java shops–they are often reluctant to adopt technology that would require new additions to their toolchain, like PHP. And they don’t always have an interest in hiring or developing Drupal talent. Containers running highly-specialized Drupal distributions, like Reservoir, could eventually make both of these concerns less of an issue.

In addition to Acquia Reservoir, there is another de-coupled Drupal Distribution called Contenta, so if you like the idea of running headless Drupal, you might take a look at both and see which is a better fit.

Categories: Drupal

Role based Username Login

New Drupal Modules - 2 March 2018 - 12:40pm

This module allows users to login using only user name with the selected Role.

If your application doesn't contains any sensitive data or your user don't have any administrative permissions, configure the role to allow login with user name only then the users having only the configured role can login with their registered user name.

Categories: Drupal

Field Group Table with fields in columns

New Drupal Modules - 2 March 2018 - 8:58am

Extends Field Group module with an option to make a 'Table' group for viewing mode.
Children fields will be displayed in per columns look.

Categories: Drupal

Mediacurrent: Friday 5: 5 Ways to Secure Your Drupal Site

Planet Drupal - 2 March 2018 - 8:23am

Happy Friday Everyone! On the eve of the Drupal Drive-in, happening tomorrow in Charolette North Carolina, we welcome Mark Shropshire to the show to talk about his favorite topic, Drupal Security!
 

Categories: Drupal

Image edit

New Drupal Modules - 2 March 2018 - 4:42am

Module to edit images online.

Categories: Drupal

orkjerns blogg: Updating to Drupal 8.5 with composer

Planet Drupal - 2 March 2018 - 4:03am
Updating to Drupal 8.5 with composer admin Fri, 03/02/2018 - 12:03

If you are like me, you might have already started planning the upgrade to Drupal 8.5, now that the first release candidate is out. It's awesome by the way, among other things, thanks to the incredible work done with layout builder. And if you are more like me, you are managing your sites with composer. Then, depending on the rest of your project, you might (also like me), have encountered some initial problems upgrading to Drupal 8.5

Having hit my fair share of composer oddities with running the Violinist.io composer monitor and upgrade service, I wanted to compile a couple of error messages along with solutions, to the folks struggling with this out there.

Installation request for webflo/drupal-core-require-dev (locked at 8.4.5, required as ~8.4) -> satisfiable by webflo/drupal-core-require-dev[8.4.5].

If you have installed an out of the box version of https://github.com/drupal-composer/drupal-project, this might be an error message you encounter. Full error message, for reference:

./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - Installation request for webflo/drupal-core-require-dev (locked at 8.4.5, required as ~8.4) -> satisfiable by webflo/drupal-core-require-dev[8.4.5]. Installation failed, reverting ./composer.json to its original content.

The reason this fails is that the project you have created is depending on the dev packages for drupal core, which are tied to a specific version of core. So to update core, we also need to update the dev packages for core.

The solution to this is pretty simple:
Open your composer.json file and replace the lines for drupal/core and webflo/drupal-core-require-dev with the following:

"drupal/core": "~8.5" // ...and "webflo/drupal-core-require-dev": "~8.5"

Afterwards you can go ahead and run:

composer update drupal/core webflo/drupal-core-require-dev --with-dependencies Installation request for symfony/config (locked at v3.2.14) -> satisfiable by symfony/config[v3.2.14].

This probably comes from the fact that you also have some other packages depending on this specific Symfony package in your project. Like drush or drupal console. Here is a full error message, for reference:

Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Conclusion: don't install drupal/core 8.5.0-rc1 - Conclusion: don't install drupal/core 8.5.0-beta1 - Conclusion: don't install drupal/core 8.5.0-alpha1 - Conclusion: don't install drupal/core 8.6.x-dev - Conclusion: remove symfony/config v3.2.14 - Installation request for drupal/core ~8.5 -> satisfiable by drupal/core[8.5.0-alpha1, 8.5.0-beta1, 8.5.0-rc1, 8.5.x-dev, 8.6.x-dev]. - Conclusion: don't install symfony/config v3.2.14 - drupal/core 8.5.x-dev requires symfony/dependency-injection ~3.4.0 -> satisfiable by symfony/dependency-injection[3.4.x-dev, v3.4.0, v3.4.0-BETA1, v3.4.0-BETA2, v3.4.0-BETA3, v3.4.0-BETA4, v3.4.0-RC1, v3.4.0-RC2, v3.4.1, v3.4.2, v3.4.3, v3.4.4]. - symfony/dependency-injection 3.4.x-dev conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA3 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA4 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-RC1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-RC2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.3 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.4 conflicts with symfony/config[v3.2.14]. - Installation request for symfony/config (locked at v3.2.14) -> satisfiable by symfony/config[v3.2.14].

The solution here is to indicate you also want to update this package, even if it's not specifically required. So if the failing command was the following:

composer update drupal/core --with-dependencies

Go ahead and change it to this:

composer update drupal/core symfony/config --with-dependencies

If you have other error messages, I would be glad to help out with a solution, and post the result here.

Credits

Thanks to zaporylie for looking into this with me, and to Berdir for pointing out the fact that core is not the package that requires symfony/config.

Let's finish this post with an animated gif of a composer

Categories: Drupal

Wim Leers: API-First Drupal: what's new in 8.5?

Planet Drupal - 2 March 2018 - 3:11am

Now that Drupal 8’s REST API 1 has reached the next level of maturity, I think a concise blog post summarizing the most important API-First Initiative improvements for every minor release is going to help a lot of developers. Drupal 8.5.0 will be released next week and the RC was tagged last week. So, let’s get right to it!

The REST API made a big step forward with the 5th minor release of Drupal 8 — I hope you’ll like these improvements :)

Thanks to everyone who contributed!

  1. text fields’ computed processed property exposed #2626924

    No more need to re-implement this in consumers nor work-arounds.

    "body":{ "value":"<p>Hi!</p><script>alert('foo')</script>", "format":"basic_html" }

    "body":{ "value":"<p>Hi!</p><script>alert('foo')</script>", "format":"basic_html", "processed":"<p>Hi!</p>" }
  2. uri field on File gained a computed url property #2825487

    "uri":{"value":"public://cat.png"} ⬇ "uri":{"url":"/files/cat.png","value":"public://cat.png"}

  3. Term POSTing requires non-admin permission #1848686

    administer taxonomy permission ⬇ create terms in %vocabulary% permission

    Analogously for PATCH and DELETE: you need edit terms in %vocabulary% and delete terms in %vocabulary%, respectively.

  4. Vocabulary GETting requires non-admin permission #2808217

    administer taxonomy permission ⬇ access taxonomy overview permission

  5. GET → decode → modify field → encode → PATCH → 403 200 #2824851

    You can now GET a response, modifying the bits you want to change, and then sending exactly that, without needing to remove fields you’re not allowed to modify. Any fields that you’re not allowed to modify can still be sent without resulting in a 403 response, as long as you send exactly the same values. Drupal’s REST API now implements the robustness principle.

  6. 4xx GET responses cacheable: more scalable + faster #2765959

    Valuable for use cases where you have many (for example a million) anonymous consumers hitting the same URL. Because the response is not cacheable, it can also not be cached by a reverse proxy in front of it. Meaning that we’ll have hundreds of thousands of requests hitting origin, which can bring down the origin server.

  7. Comprehensive integration tests + test coverage test coverage

    This massively reduces the risk of REST API regressions/changes/BC breaks making it into a Drupal 8 release. It allows us to improve things faster, because we can be confident that most regressions will be detected. That even includes the support for XML serialization, for the handful of you who are using that! We take backwards compatibility serious.
    Even better: we have test coverage test coverage: tests that ensure we have integration tests for every entity type that Drupal core’s stable modules ship with!
    Details at API-First Drupal — really!. Getting to this point took more than a year and required fixing bugs in many other parts of Drupal!

Want more nuance and detail? See the REST: top priorities for Drupal 8.5.x issue on drupal.org.

Are you curious what we’re working on for Drupal 8.6? Want to follow along? Click the follow button at REST: top priorities for Drupal 8.6.x — whenever things on the list are completed (or when the list gets longer), a comment gets posted. It’s the best way to follow along closely!2

The other thing that we’re working on for 8.6 besides the REST API is getting the JSON API module polished to core-worthiness. All of the above improvements help JSON API either directly or indirectly! More about that in a future blog post.

Was this helpful? Let me know in the comments!

Thanks to Ted for reviewing a draft of this blog post! And sorry for not changing the title to API First Drupal in 8.5.0: Amazing progress because of tedbow’s work on setInternal properties!!!!!!!!! even though that would’ve been totally accurate :D

For reference, historical data:

  1. This consists of the REST and Serialization modules. ↩︎

  2. ~50 comments per six months — so very little noise. ↩︎

  • API
  • Acquia
  • Drupal
Categories: Drupal

OPTASY: From Drush Clear Cache to... Rebuilding Cache in Drupal 8: What's the Difference?

Planet Drupal - 2 March 2018 - 2:45am
From Drush Clear Cache to... Rebuilding Cache in Drupal 8: What's the Difference? radu.simileanu Fri, 03/02/2018 - 10:45 From "remorsefully clearing all Drupal cache using Drush, to actually... rebuilding them in Drupal 8? Why the change? How will the new “cache-rebuild” concept impact your Drupal development process? All your troubleshooting and site updating sessions?
Categories: Drupal

jms_serializer

New Drupal Modules - 1 March 2018 - 11:30pm

This is a module which wraps the JMS/Serializer into drupal. For now, it's only available for Drupal 8.

For any fixes, requests or bug, please refer to the original source at GitHub.
https://github.com/SyneticNL/drupal8-jms-serializer

Patches and issue requests will only be followed, fixed there.

Categories: Drupal

myamazon

New Drupal Modules - 1 March 2018 - 12:46pm

INTRODUCTION
------------

Purpose of this project is to make an amazon affiliate module which is simple and less complicated.
This module automatically imports amazon products to the drupal with keyword search. Please see 'How to use'
area for more information.

INSTALLATION
------------

Install as usual, see
Download the module and upload to the modules folder and make it active.

How to use
------------

There are three steps to follow.

Categories: Drupal

Commerce Webform Order

New Drupal Modules - 1 March 2018 - 11:36am
Categories: Drupal

Hook 42: Hook 42 in the Windy City!

Planet Drupal - 1 March 2018 - 9:37am

We are excited to have Adam Bergstein joining our team as Vice President of Engineering! Better yet? He’ll be speaking at the upcoming Midwest Drupal Camp in Chicago about his journey from engineer to technical leader.

MidCamp is March 8th - 11th, 2018 at DePaul University Lincoln Park Campus, Chicago.

Categories: Drupal

Acquia Developer Center Blog: The Web Is Changing: Introducing Experience Express

Planet Drupal - 1 March 2018 - 8:17am

At no point in the history of digital content has there ever been such a dizzying proliferation of devices in our lives, and experiences we encounter and consume. Long the most critical element of an organization’s digital presence, the website is increasingly treated as just a single facet in a kaleidoscope of content channels and form factors. Many of today’s users, in the course of acquiring content or data, never touch a desktop web browser at all.

Tags: acquia drupal planet
Categories: Drupal

ClamAV Queue

New Drupal Modules - 1 March 2018 - 7:20am
Use case

This module is intended for the very specific case where a site is using all of these modules:

  • clamav
  • file_entity
  • plupload
  • multiform

(Note: All these modules are listed as dependencies for this reason.)

Categories: Drupal

Deeson: Talking security at DrupalCamp London 2018

Planet Drupal - 1 March 2018 - 5:48am

We’re strong believers that contributing to open source and sharing what we’ve learnt benefits both our agency and the wider community. It’s one of the reasons we offer our team paid conference tickets and support for public speaking.

In particular, we've been key supporters of the European Drupal community since 2007, with the largest team of Acquia certified developers in Europe. We're proud to be in the top 30 of companies contributing to the project globally.

On 3rd March 2018, I’ll be speaking at DrupalCamp London – an event which our own Tim Deeson helped co-found in 2013. It brings together Drupal developers of all levels and from all over Europe to engage in learning and discussion about the project.

Effortless security updates for your Drupal sites.

The title of my session is Warden - Helping Drupal Agencies Sleep at Night. It’s critical to keep your sites up to date with the latest security releases. But it’s a time consuming task to check each site manually. We built Warden to solve this problem.

Warden is an open source solution that allows in-house development teams and agencies to keep track of the status of multiple Drupal sites hosted on different platforms. I’ll explain how Warden makes managing the security of all your sites much more manageable.

This session is for you if you:

  • have a large number of sites hosted with multiple hosting companies that you need to keep track of.
  • have sites that may need security updates but you don’t have the time to investigate.
  • wish there was a central dashboard reporting which of your sites needed security updates applied.

I’ll demonstrate how Warden works and show you how easy it is to see which sites need security updates, saving your team time to focus on other important work. I’ll also discuss best practice for site security and the importance of making sure that all your developers are aware of it.

Come and talk to us.

Quite a few of us from the development team will be at DrupalCamp London this year. Look out for our Technical Director John Ennew, and ask him about job opportunities at Deeson. We’re currently hiring for several roles across the tech chapter, including developers at all levels and development managers.

There are lots of reasons we’re a great agency to work for, including:

  • Flexible and remote working.
  • Paid time to contribute to open source.
  • Transparent pay scales and a fair pay guarantee.
  • £500 annual personal budget for hardware, software or accessories.
  • Mandatory 5 week paid sabbatical every 5 years.

Check out our careers page for more, and don’t forget to follow us on Twitter @deesonlabs for updates throughout DrupalCamp London. We’ll see you back here next week with our highlights!

Categories: Drupal

Specbee: Why Is Drupal CMS a Key To Success For Enterprise Websites In 2018?

Planet Drupal - 1 March 2018 - 5:20am

Do you know how much enterprise companies spend on their website annually? What makes their website great? I mean there is obviously the high traffic, better bounce rates and over the top numbers, but is that all?

Categories: Drupal

Multisite Solr Search

New Drupal Modules - 1 March 2018 - 4:35am

This module helps in searching the data from multisites using search_api_solr.
The backend uses, like the popular Apache Solr Search Integration module, Apache Solr servers for indexing and searching content.

Requirements
Requirements are:

The Search API module
Search API Solr

The module creates a block that has a form with autocomplete field searching the data from selected solr server.
The different sites should be configured with the same core to fetch the results.

Categories: Drupal

Drupal Europe: It’s your turn

Planet Drupal - 1 March 2018 - 3:16am

We are organizing the biggest Drupal event in Europe in 2018 with a group of community volunteers in collaboration with the Drupal eV (German Drupal Association) and the Drupal Europe Foundation. We’d like to update you on our progress and turn to you for input.

Mark your calendars for September 10–14, 2018 when Drupal Europe will be held in the beautiful Darmstadtium in Darmstadt, Germany. This is a great venue for the conference and only a 20 minutes’ drive from Frankfurt Airport. We just had our second walkthrough last week discussing details with the venue and were impressed.

Photo by Baddy Breidert @baddysonjaBuy your Early Supporter ticket now!

We are now selling Early supporter tickets for 380 EUR (including VAT). Only 300 of these tickets are available, and only for a limited time. Buy now at https://www.drupaleurope.org/#tickets

A new logo

Thanks to all designers we worked with who came up with such great ideas for our branding! We are delighted to release our final logo proudly crafted by sixeleven. Drupal Europe stickers (pictured here) will be available at various Drupal events where our team shows up in the coming months.

Latest on the conference schedule

We are continually looking at how to structure the biggest Drupal event in Europe, and based on exploratory discussions with community members, we believe we are on the right track.

First of all we strongly believe contribution is at the heart of the Drupal project. Figures show that over 44% of Drupal contributors are in Europe. Therefore, in our programme we want to give you more time to contribute by making both Monday and Friday contribution days (formerly called sprints). Mentors will be available on both days to help those new to Drupal contribution.

We are structuring the rest of the event between Tuesday and Thursday on the successful summit model that has worked well at the start of DrupalCons and other regional events. Topics will include government, education, publishing, technology, and community. We are looking for sponsors for each to make possible to put them on.

And the great news is that your single Drupal Europe ticket will give you access to all these workshops, panels and discussions.

We want to hear from you

Although we have plenty of ideas, we realize that this is your conference.

DrupalCON Amsterdam Group photo

Please help us understand you, our audience, better by completing our survey. It should only take 8 minutes or so and still give us lots of valuable insight. While not all questions are mandatory, we added a few open questions to get to know you better.

Thank you, and please share our survey with all your Drupal friends and colleagues to help us make Drupal Europe a success.

See you in September!

Categories: Drupal

Pages

Subscribe to As If Productions aggregator - Drupal