Drupal

CRM Core Customs

New Drupal Modules - 14 November 2019 - 9:03am
CRM Core Customs

Customizations for CRM Core module

Relationship Ui Autocomplete

By default appends field's "Father name" value, or any other field's value that you can configure in module's administration page, next to "Contact name" that appears in Relationship Ui autocomplete forms, for better contact identification.

Important! Fow nor you need to create that field manually in your preferred CRM Core contact type (i.e. Individual).

Categories: Drupal

Easy quiz

New Drupal Modules - 14 November 2019 - 6:26am

The port of the Quiz module to Drupal 8 is not yet clear.

The Easy quiz module is aimed to help educational institutions who want to have online quiz facility in their websites.

This module provides a way to create Quizzes using entities. Quizzes can be multiple choice question/ answer setup where registered users can submit their answers and see the results.

Some of the features are:-

Categories: Drupal

Commerce Bambora Europe

New Drupal Modules - 14 November 2019 - 3:11am

This module integrates Bambora Europe API (Bambora Payform, Paybyway) with Drupal Commerce, providing an off-site payment method. E-commerce site owners may configure e-payments (online banks) via Bambora using this module.

Currently supported banks include (as per Bambora Europe API):

Categories: Drupal

Rabbit hole href link alter

New Drupal Modules - 14 November 2019 - 12:41am

Add-on module for the wonderful rabbit_hole module, modifying all links to the rabbit_hole'd entity accordingly to the rabbit_hole settings:

Implemented link behaviours: Access denied:

No implementation yet. Eventually remove the link entirely? Discuss use-cases in this issue: [#TODO]

Show page:

No change required.

Page not found:

No implementation yet. Eventually remove the link entirely? Discuss use-cases in this issue: [#TODO]

Categories: Drupal

Flood IP Exception

New Drupal Modules - 13 November 2019 - 10:52pm
Categories: Drupal

heykarthikwithu: Drupal core SimpleTest module is deprecated

Planet Drupal - 13 November 2019 - 9:44pm
Drupal core SimpleTest module is deprecated

The SimpleTest module has been deprecated in Drupal 8, and will be removed in Drupal 9. Production sites should never have SimpleTest module installed since it is a tool for development only.

karthikkumardk Thursday, 14 November 2019 - 11:14:32 IST
Categories: Drupal

Gumlet

New Drupal Modules - 13 November 2019 - 9:01pm
Categories: Drupal

myDropWizard.com: What happens when the Drupal Security Team marks a module as unsupported?

Planet Drupal - 13 November 2019 - 6:44pm

You may have noticed that today the Drupal Security Team marked 16 modules as unsupported, due to the module maintainer not fixing a reported security vulnerability after a sufficiently long period of time.

Among those modules, there were a few very popular ones like Admininistration Views and Nodequeue, which have have reported ~118k and ~40k sites using them, respectively.

Everytime a popular module is unsupported, there's a certain amount of panic and uncertainty, so I wanted to address that in this article, both for the Drupal community at large and for our customers in particular, because we promise to deploy security updates the same day they are released.

Read more to see our perspective!

Categories: Drupal

PreviousNext: PreviousNext's Open Source Contribution Policies and Initiatives for the Drupal Community

Planet Drupal - 13 November 2019 - 6:03pm

PreviousNext builds open source digital platforms for large scale customers, primarily based on Drupal and hosted using Kubernetes, two of the world’s biggest open source projects. With our business reliant on the success of these open source projects, our company is committed to contributing where we can in relation to our relatively small size. We get a lot of questions about how we do this, so are happy to share our policies so that other organisations might adopt similar approaches.

by Owen Lansbury / 14 November 2019

We learned early on in the formation of PreviousNext that developers who are passionate and engaged in open source projects usually make great team members, so wanted to create a work environment where they could sustain this involvement. 

The first step was to determine how much billable work on client projects our developers needed to achieve in order for PreviousNext to be profitable and sustainable. The figure we settled on was 80%, or 32 hrs per week of billable hours of a full time week as the baseline. Team members then self manage their availability to fulfil their billable hours and can direct up to 20% of their remaining paid availability to code contribution or other community volunteering activities. 

From a project management perspective, our team members are not allowed to be scheduled on billable work more than 80% of their time, which is then factored into our Agile sprint planning and communicated to clients. If certain team members contribute more billable hours in a given week, this just accelerates how many tickets we can complete in a Sprint.

If individual team members aren’t involved or interested in contribution, we expect their billable hours rate to be higher in line with more traditional companies. We don’t mandate that team members use their 20% time for contribution, but find that the majority do due to the benefits it gives them outside their roles. 

These benefits include:

  • Learning and maintaining best-practice development skills based on peer review by other talented developers in the global community.
  • Developing leadership and communication skills with diverse and distributed co-contributors from many different cultures and backgrounds.
  • Staying close to and often being at the forefront of new initiatives in Drupal, whether it be as a core code contributor or maintaining key modules that get used by hundreds of thousands of people. For example, the Video Embed Field that Sam Becker co-maintains is used on 123,487 websites and has been downloaded a staggering 1,697,895 times at the time of publishing. That's some useful code!  
  • Developing close working relationships with many experienced and talented developers outside PreviousNext. In addition to providing mentoring and training for our team, these relationships pay dividends when we can open communication channels with people responsible for specific code within the Drupal ecosystem.
  • Building their own profiles within the community and being considered trusted developers in their own right by demonstrating a proven track record. After all, it's demonstrated work rather than the CV that matters most. This often leads to being selected to provide expert talks at conferences and obviously makes them highly desirable employees should they ever move on from PreviousNext.
  • If our team members do get selected as speakers at international Drupal events, PreviousNext funds their full attendance costs and treats their time away as normal paid hours.
  • Working on non-client work on issues that interest them, such as emerging technologies, proof of concepts, or just an itch they need to scratch. We never direct team members that they should be working on specific issues in their contribution time.

All of these individual benefits provide clear advantages to PreviousNext as a company, ensuring our team maintains an extremely high degree of experience and elevating our company’s profile through Drupal’s contribution credit system. This has resulted in PreviousNext being consistently ranked in the top 5 companies globally that contribute code to Drupal off the back of over 1,000 hours of annual code contribution.

In addition to this 20% contribution time, we also ensure that most new modules we author or patch during client projects are open sourced. Our clients are aware that billable time during sprints will go towards this and that they will also receive contribution credit on Drupal.org as the sponsor of the contributions. The benefits to clients of this approach include:

  • Open sourced modules they use and contribute to will be maintained by many other people in the Drupal community. This ensures a higher degree of code stability and security and means that if PreviousNext ceases to be engaged the modules can continue to be maintained either by a new vendor, their internal team or the community at large.
  • Clients can point to their own contribution credits as evidence of being committed Drupal community supporters in their own right. This can be used as a key element in recruitment if they start hiring their own internal Drupal developers.

Beyond code contributions, PreviousNext provides paid time to volunteer on organising Drupal events, sit on community committees, run free training sessions and organise code sprints. This is then backed by our financial contributions to sponsoring events and the Drupal Association itself.

None of this is rocket science, but as a company reliant on open source software we view these contribution policies and initiatives as a key pillar in ensuring PreviousNext's market profile is maintained and the Drupal ecosystem for our business to operate in remains healthy. 

We're always happy to share insights into how your own organisation might adopt similar approaches, so please get in touch if you'd like to know more.

Tagged Drupal Community, Core contribution
Categories: Drupal

Workspace moderation

New Drupal Modules - 13 November 2019 - 9:51am

Provides a way to moderate a living workspace.

Work in progress.

Categories: Drupal

Media Library Extend

New Drupal Modules - 13 November 2019 - 7:55am
Synopsis

The Media Library Extend module is an API module that provides plugins and configuration that allow other modules to integrate with Drupal core's Media Library.

Installation

Install as you would normally install a contributed Drupal module.

Requirements

This module requires the Media Library module (experimantal in Drupal 8.7.0, stable in Drupal 8.8.0)

Categories: Drupal

JSON:API Search API

New Drupal Modules - 13 November 2019 - 7:45am

This module adds JSON:API resources that allows you to query your Search API indexes using the JSON:API spec.

Categories: Drupal

Media Library Youtube

New Drupal Modules - 13 November 2019 - 7:31am
Synopsis

The Media Library Youtube module provides a plugin for Media Library Extend that integrates with the Youtube API to list a channel's videos and create media entities from them.

Installation

Install as you would normally install a contributed Drupal module.

Categories: Drupal

What links here

New Drupal Modules - 13 November 2019 - 5:59am
Summary

This module provides a sortable report of what node entities link to the currently viewed node. It does so by retaining a manifest of references in a whatlinkshere table and allows you to also see which field the reference occurs in.

Data is added/updated/removed on entity CRUD and field delete operations.

A Drupal console command is also available to scan all or individual nodes.

Categories: Drupal

Manifesto: Making Drupal easier for beginners

Planet Drupal - 13 November 2019 - 4:18am

Drupal is doing well.    The past few years (since Drupal 8 has been released), has seen the stability, power and (most importantly) the usage of Drupal increase. This is thanks to the hard work of all the organisations who support and enhance the CMS on a daily basis, whether that’s dedicating their time to. Continue reading...

The post Making Drupal easier for beginners appeared first on Manifesto.

Categories: Drupal

Google Trends

New Drupal Modules - 13 November 2019 - 1:23am

Trending Searches to see what the world is looking for. This module block holds the top searches on the basis of current trending!

Installation

  • Place the google trends module into modules directory.
  • Enable this module by navigating to: Administration > Extend
  • Setup `Google Search Engine ID` & `Google API key` into the module configuration page.
Categories: Drupal

Lullabot: Common max-age Pitfalls When Working with Drupal's Page Cache

Planet Drupal - 13 November 2019 - 12:18am

If you build sites with Drupal, you’ve probably heard at some point that Drupal 8’s caching system is great. So you probably think that it shouldn’t be a big deal to have a time-based piece of content in a Drupal page that's visited by millions of visitors, and still have a reasonable caching system behind it, right? Let’s figure it out in this article.

Categories: Drupal

PreviousNext: Updating to Drupal 8.8.0 Beta with Composer

Planet Drupal - 12 November 2019 - 8:46pm

PreviousNext continue to be major contributors to the development and promotion of Drupal 8. As participants of the Drupal 8.8.0 Beta Testing Program, we thought it would be useful to document the steps we took to update one of our sites on Drupal 8.7 to the latest 8.8.0 beta.

Every site is different, so your mileage may vary, but it may save you some time.

by Kim Pepper / 13 November 2019

Drupal 8.8 is a big release, with a number of new features added, and APIs deprecated to pave the way to a Drupal 9.0 release. Thankfully, the upgrade process was fairly straightforward in our case.

Upgrade PathAuto

First step was to deal with The Path Alias core subsystem has been moved to the "path_alias" module This meant some classes were moved to different namespaces. In order to make things smoother, we installed the latest version of pathauto module and clear the caches.

composer require drupal/pathauto:^1.6@beta
drush cr

Core Dev Composer Package

We use the same developer tools for testing as Drupal core, and we want to switch to the new core composer packages, so first we remove the old one.

composer remove --dev webflo/drupal-core-require-dev

Update Patches

We sometimes need to patch core using cweagans/composer-patches. In the case of this site, we are using a patch from ckeditor_stylesheets cache busting: use system.css_js_query_string which needed to be re-rolled for Drupal 8.8.x. We re-rolled the patch, then updated the link in the extra/patches section.

Update Drupal Core and Friends

In our first attempt, composer could not install due to a version conflict with some symfony packages (symfony/findersymfony/filesystem and symfony/debug). These are transient dependencies (we don't require them explicitly). Our solution was to explicitly require them (temporarily) with versions that Drupal core is compatible with, then remove them afterwards.

First require new Drupal core and dependencies:

composer require --update-with-dependencies \
  drupal/core:^8.8@beta \
  symfony/finder:^3.4 \
  symfony/filesystem:^3.4

Second, require new core-dev package and dependencies:

composer require --dev --update-with-dependencies \
  drupal/core-dev:^8.8@beta \
  symfony/debug:^3.4

Lastly, remove the temporary required dependencies:

composer remove -n \
  symfony/finder \
  symfony/filesystem \
  symfony/debug

Update the Database and Export Config

Now our code is updated, we need to update the database schema, then re-export our config. We use drush_cmi_tools, so your commands may be different, e.g. just a drush config-export instead of drush cexy.

drush updb
drush cr
drush cexy

Settings.php

We also need to update our settings.php file now that The sync directory is defined in $settings and not $config_directories.

This is a trivial change from:

$config_directories['sync'] = 'foo/bar';to:$settings['config_sync_directory'] = 'foo/bar';

Final Touches

In order to make sure our code is compatible with Drupal 9, we check for any custom code that is using deprecated APIs using the excellent PHPStan and Matt Glaman's mglaman/phpstan-drupal. (Alternatively you can use Drupal Check.)

 We were using an older version that was incompatible with "nette/bootstrap":">=3" so needed to remove that from the conflict section and do the remove/require dance once again.

composer remove --dev \
  phpstan/phpstan-deprecation-rules \
  mglaman/phpstan-drupal

composer require --dev --update-with-dependencies \
  phpstan/phpstan-deprecation-rules:^0.11.2 \
  mglaman/phpstan-drupal:^0.11.12

And that's it! Altogether not too painful once the composer dependencies were all sorted out. As we are testing the beta, some of these issues may be addressed in future betas and RCs.

I hope you found this useful! Got a better solution? Let us know in the comments!

Tagged Drupal Beta Testing
Categories: Drupal

PreviousNext: Updating to Drupal 8.8.0 Beta with Composer

Planet Drupal - 12 November 2019 - 8:46pm

PreviousNext continue to be major contributors to the development and promotion of Drupal 8. As participants of the Drupal 8.8.0 Beta Testing Program, we thought it would be useful to document the steps we took to update one of our sites on Drupal 8.7 to the latest 8.8.0 beta.

Every site is different, so your mileage may vary, but it may save you some time.

by Kim Pepper / 13 November 2019

Drupal 8.8 is a big release, with a number of new features added, and APIs deprecated to pave the way to a Drupal 9.0 release. Thankfully, the upgrade process was fairly straightforward in our case.

Upgrade PathAuto

First step was to deal with The Path Alias core subsystem has been moved to the "path_alias" module This meant some classes were moved to different namespaces. In order to make things smoother, we installed the latest version of pathauto module and clear the caches.

composer require drupal/pathauto:^1.6@beta
drush cr

Core Dev Composer Package

We use the same developer tools for testing as Drupal core, and we want to switch to the new core composer packages, so first we remove the old one.

composer remove --dev webflo/drupal-core-require-dev

Update Patches

We sometimes need to patch core using cweagans/composer-patches. In the case of this site, we are using a patch from ckeditor_stylesheets cache busting: use system.css_js_query_string which needed to be re-rolled for Drupal 8.8.x. We re-rolled the patch, then updated the link in the extra/patches section.

Update Drupal Core and Friends

In our first attempt, composer could not install due to a version conflict with some symfony packages (symfony/findersymfony/filesystem and symfony/debug). These are transient dependencies (we don't require them explicitly). Our solution was to explicitly require them (temporarily) with versions that Drupal core is compatible with, then remove them afterwards.

First require new Drupal core and dependencies:

composer require --update-with-dependencies \
  drupal/core:^8.8@beta \
  symfony/finder:^3.4 \
  symfony/filesystem:^3.4

Second, require new core-dev package and dependencies:

composer require --dev --update-with-dependencies \
  drupal/core-dev:^8.8@beta \
  symfony/debug:^3.4

Lastly, remove the temporary required dependencies:

composer remove -n \
  symfony/finder \
  symfony/filesystem \
  symfony/debug

Update the Database and Export Config

Now our code is updated, we need to update the database schema, then re-export our config. We use drush_cmi_tools, so your commands may be different, e.g. just a drush config-export instead of drush cexy.

drush updb
drush cr
drush cexy

Settings.php

We also need to update our settings.php file now that The sync directory is defined in $settings and not $config_directories.

This is a trivial change from:

$config_directories['sync'] = 'foo/bar';to:$settings['config_sync_directory'] = 'foo/bar';

Final Touches

In order to make sure our code is compatible with Drupal 9, we check for any custom code that is using deprecated APIs using the excellent PHPStan and Matt Glaman's mglaman/phpstan-drupal. (Alternatively you can use Drupal Check.)

 We were using an older version that was incompatible with "nette/bootstrap":">=3" so needed to remove that from the conflict section and do the remove/require dance once again.

composer remove --dev \
  phpstan/phpstan-deprecation-rules \
  mglaman/phpstan-drupal

composer require --dev --update-with-dependencies \
  phpstan/phpstan-deprecation-rules:^0.11.2 \
  mglaman/phpstan-drupal:^0.11.12

And that's it! Altogether not too painful once the composer dependencies were all sorted out. As we are testing the beta, some of these issues may be addressed in future betas and RCs.

I hope you found this useful! Got a better solution? Let us know in the comments!

Tagged Drupal Beta Testing
Categories: Drupal

JD Does Development: Docksal gets a Training

Planet Drupal - 12 November 2019 - 3:19pm
Docksal gets a Training jflynn Tue, 11/12/2019 - 17:19

In July of last year I started a new job as a developer with a new agency. During my first week, in between meetings, HR trainings, and all the other fun things that happen during onboarding, I was introduced to the preferred local development environment that was being used on most of the projects.

It was lightweight, based on Docker, it ran easily, and it was extremely easy to configure. Prior to this, I had bounced around from local setup to local setup. My local dev environment resume included such hits as MAMP, WAMP, Acquia Dev Desktop, Kalabox, VAMPD, DrupalVM, Vagrant, ScotchBox, VirtualBox, native LAMP stacks, and everything in between. All of them had their strengths and weaknesses, but none of them really had that spark that really hooked me.

Enter Docksal.

When I first started using Docksal, I thought it was just like any other setup, and to a point, it is. It creates a reusable environment that can be shared across multiple developers and setup to mimic a hosting provider to a certain point, but the two things that really grabbed me were how easy it was to get started and how fast it was compared to other systems. Docksal has one key, killer feature in my opinionated mind, and that’s the fact that the entire application is written in Bash. The primary binary (which may or may not be the name of my upcoming one-man, off-Broadway, off-any stage show) begins with #! /usr/bin/env bash and runs on any system that has the bash executable, which encompasses Linux (of course), macOS, and now Windows thanks to WSL and the ability to add Ubuntu.

One thing that was missing, though, was a training guide. It has AMAZING documentation, available at https://docs.docksal.io, including a great getting started walkthrough, but for someone just starting out using it who might not have guidance and support from people they work with, it might take a little getting used to.

If you know me, you know that I enjoy talking at conferences. I’ve given over two dozen presentations at several types of events from local meetup groups to national level conferences. If you don’t know me, you just learned something new about me. Since I enjoy talking in front of people so much, the next logical step was to find something I’m familiar with and make a training of it. Turns out, I’m familiar with Docksal.

I submitted my pitch for a training to NEDCamp, the New England Drupal Camp, and they accepted it. Since I now had a reason to write a training, I began writing a training. Initially, I started with a very high-level outline, and eventually built a framework for my training. Thanks to the nature of open source, I was able to use many of the features that https://docs.docksal.io already had in order to make my training seem a little familiar to current users and easily accessible to new users.

The first go at this training will be at NEDCamp 2019 on Friday, November 22nd. This will be the first time a dedicated training spot has been used to train on Docksal, and I'm extremely excited to see how it goes and how to improve. After that training, I will make my handbook available online, eventually to be merged into the Docksal Github repo as part of the documentation. I have had help from numerous people in building this training, especially from the Docksal maintainers, Sean Dietrich, Leonid Makarov, Alexei Chekiulaev; folks who have reviewed what I've written so far, Dwayne McDaniel and Wes Ruvalcaba; and people who have challenged me to learn more about Docksal, whose numbers are too high to list them all.

If you're interested in learning how to use Docksal or what it's all about, consider attending my training at NEDCamp on November 22nd. You can find all the details on the NEDCamp training page, and if you can't make it, be sure to watch for the handbook to be released soon.

Since I'm still working on the finishing touches, why not take the time to let me know what you would like to get out of this type of training or what you wish you would have known when learning how to use Docksal or a similar product in the comments and where you feel extra attention should be placed.

Category Development Tags Drupal Planet Docksal Drupal NEDCamp Comments
Categories: Drupal

Pages

Subscribe to As If Productions aggregator - Drupal