Speeding up development with a boilerplate Drupal website?

Drupal - Open Source Content Platform - Sat, 03/10/2018 - 16:38

Hi all, I am pretty new to Drupal development. I am in Web development for a while now (approx ten years) and I am trying to optimize my work cycle.

I have projects coming in pretty frequently with similar specs: the common sitemap is homepage, products overview (with some filtering), products detail, contact page, legal pages and in some case blog with articles.

Those are pretty standard specs but for each site there is considerable amount of work that has to be repeated (especially in the drupal back office / backend let'say) that I would like to avoid.

I am wondering if there is a way to create a "boilerplate Drupal project" in a separate repository with those pages I need pretty much for every new website and when a new website has to be created I could "clone" or "import" that boilerplate website and take it from there.

Again I am pretty new to Drupal so I might not be aware of many tools that could speed up my dev cycle, any suggestion is very welcome!

I mostly use Drupal 8 :)

submitted by /u/verganis
[link] [comments]

Contact Form Permissions

drupal.org - Modules - Sat, 03/10/2018 - 15:08

This module provides permissions for managing contact forms.

As long as the issue #2325799: Add per contact-form permissions for contact module. is not fixed you can use this module if you need per contact form permissions.

The following permissions are added:

Categories: Drupal

Development workflow for Drupal in Docker: Deploying immutable images in production?

Drupal - Open Source Content Platform - Sat, 03/10/2018 - 12:59

Hi, how have others set up their development workflow using Drupal in Docker? I'm thinking that on my laptop I'll run the official Drupal image with these kind of volume parameters defined:

-v ./modules:/var/www/html/modules -v ./themes:/var/www/html/themes

Then, when I'm ready for it, I simply build an new image, and ship that image to say a QA environment and then to production. On the QA and production environments, I don't mount any volumes, as all the code is built into the container.

A prerequisite is that nothing under the Drupal root /var/www/html will need to change as I migrate from dev to qa to prod.

I'm quite now to Drupal, but does this sound like a viable approach? My reasoning is that everything that the content provides (which log into our production site to write articles and so on) create is stored in the database, and that there is no reason for the contents under the Drupal root (/var/www/html) to change between the environments.

submitted by /u/kenneho
[link] [comments]

UUID Forward

drupal.org - Modules - Sat, 03/10/2018 - 12:48

Open an entity by entering its UUID in the path. For example, [site_url]/uuid/d5302522-cda6-4c3b-9400-e80ba5603636.

Categories: Drupal


drupal.org - Modules - Sat, 03/10/2018 - 12:46

This module changes all ckeditor text fields to respect the "rows" setting of the field. How rows translate into pixels is a global setting, configured via a pixel factor and offset.

This module originalted from core issue #2877527: Make CKEditor (approximately) reflect the rows setting of a field and may be obsoleted by going into core.

Have fun!

Categories: Drupal

Ige Filter

drupal.org - Modules - Sat, 03/10/2018 - 08:41

This is a text format filter module based on Scripture Filter. It converts Hungarian Bible references into clickable links pointing to online Bibles. This module works only with Hungarian references and it recognizes many usual book abbreviations and reference formats.

Categories: Drupal

Steam Login

drupal.org - Modules - Sat, 03/10/2018 - 06:07
Categories: Drupal

Commerce Boxberry

drupal.org - Modules - Sat, 03/10/2018 - 05:25

Provides integration with popular Russian shipping service Boxberry's API using their standard PHP library.

It currently does not provide Commerce Shipping method but only tools for Commerce Orders submissions to Boxberry system and service points information updates.

Categories: Drupal

Commerce SDEK

drupal.org - Modules - Sat, 03/10/2018 - 05:10

Provides integration with popular Russian shipping service СДЕК API.

It currently does not provide Commerce Shipping method but only tools for Commerce Orders submissions to SDEK system and service points information updates.

Categories: Drupal

Available Updates to Slack

drupal.org - Modules - Fri, 03/09/2018 - 21:37
Slack Update Notifier Description

An easy to use module that notifies you when there is an update to a module on Slack. It uses the plugin system to create Notification Types and posts to a Slack webhook when an update of the specified type is available.

Currently we support only Security Update notifications, please feel free to post other notification types.

Categories: Drupal

Oliver Davies: How to split a new Drupal contrib project from within another repository

drupal.org aggregator - Fri, 03/09/2018 - 19:00
Does it need to be part of the site repository?

An interesting thing to consider is, does it need to be a part of the site repository in the first place?

If from the beginning you intend to contribute the module, theme or distribution and it’s written as generic and re-usable from the start, then it could be created as a separate project on Drupal.org or as a private repository on your Git server from the beginning, and added as a dependency of the main project rather than part of it. It could already have the correct branch name and adhere to the Drupal.org release conventions and be managed as a separate project, then there is no later need to "clean it up" or split it from the main repo at all.

This is how I worked at the Drupal Association - with all of the modules needed for Drupal.org hosted on Drupal.org itself, and managed as a dependency of the site repository with Drush Make.

Whether this is a viable option or not will depend on your processes. For example, if your code needs to go through a peer review process before releasing it, then pushing it straight to Drupal.org would either complicate that process or bypass it completely. Pushing it to a separate private repository may depend on your team's level of familiarity with Composer, for example.

It does though avoid the “we’ll clean it up and contribute it later” scenario which probably happens less than people intend.

Create a new, empty repository

If the project is already in the site repo, this is probably the most common method - to create a new, empty repository for the new project, add everything to it and push it.

For example:

cd web/modules/custom/my_new_module # Create a new Git repository. git init # Add everything and make a new commit. git add -A . git commit -m 'Initial commit' # Rename the branch. git branch -m 8.x-1.x # Add the new remote and push everything. git remote add origin username@git.drupal.org:project/my_new_module.git git push origin 8.x-1.x

There is a huge issue with this approach though - you now have only one single commit, and you’ve lost the commmit history!

This means that you lose the story and context of how the project was developed, and what decisions and changes were made during the lifetime of the project so far. Also, if multiple people developed it, now there is only one person being attributed - the one who made the single new commit.

Also, if I’m considering adding your module to my project, personally I’m less likely to do so if I only see one "initial commit". I’d like to see the activity from the days, weeks or months prior to it being released.

What this does allow though is to easily remove references to client names etc before pushing the code.

Use a subtree split

An alternative method is to use git-subtree, a Git command that "merges subtrees together and split repository into subtrees". In this scenario, we can use split to take a directory from within the site repo and split it into it’s own separate repository, keeping the commit history intact.

Here is the description for the split command from the Git project itself:

Extract a new, synthetic project history from the history of the subtree. The new history includes only the commits (including merges) that affected , and each of those commits now has the contents of at the root of the project instead of in a subdirectory. Thus, the newly created history is suitable for export as a separate git repository.

Note: This command needs to be run at the top level of the repository. Otherwise you will see an error like "You need to run this command from the toplevel of the working tree.".

To find the path to the top level, run git rev-parse --show-toplevel.

In order to do this, you need specify the prefix for the subtree (i.e. the directory that contains the project you’re splitting) as well as a name of a new branch that you want to split onto.

git subtree split --prefix web/modules/custom/my_new_module -b split_my_new_module

When complete, you should see a confirmation message showing the branch name and the commit SHA of the branch.

Created branch 'split_my_new_module' 7edcb4b1f4dc34fc3b636b498f4284c7d98c8e4a

If you run git branch, you should now be able to see the new branch, and if you run git log --oneline split_my_new_module, you should only see commits for that module.

If you do need to tidy up a particular commit to remove client references etc, change a commit message or squash some commits together, then you can do that by checking out the new branch, running an interactive rebase and making the required amends.

git checkout split_my_new_module git rebase -i --root

Once everything is in the desired state, you can use git push to push to the remote repo - specifying the repo URL, the local branch name and the remote branch name:

git push username@git.drupal.org:project/my_new_module.git split_my_new_module:8.x-1.x

In this case, the new branch will be 8.x-1.x.

Here is a screenshot of example module that I’ve split and pushed to GitLab. Notice that there are multiple commits in the history, and each still attributed to it’s original author.

Also, as this is standard Git functionality, you can follow the same process to extract PHP libraries, Symfony bundles, WordPress plugins or anything else.

Categories: Drupal

Null User

drupal.org - Modules - Fri, 03/09/2018 - 17:56
Categories: Drupal

Queue order UI

drupal.org - Modules - Fri, 03/09/2018 - 17:25

This is UI for Queue Order module.

Categories: Drupal

Clean Replace Ajax Command

drupal.org - Modules - Fri, 03/09/2018 - 16:41

This ajax command works as ReplaceCommand from core but without adding div wrapper.

How to use

Load 'cleanreplacecommand/library' in your theme or attach it in a render array like this:

$form['#attached']['library'][] = 'cleanreplacecommand/library';

And use CleanReplaceCommand in your ajax callback like ReplaceCommand from core :

Categories: Drupal

CDN Library API

drupal.org - Modules - Fri, 03/09/2018 - 14:59


Categories: Drupal


drupal.org - Modules - Fri, 03/09/2018 - 13:45
Categories: Drupal

Toggle view display

drupal.org - Modules - Fri, 03/09/2018 - 13:44

Easily get list or grid results of the same view with this handy tool

Categories: Drupal

Draggable dashboard

drupal.org - Modules - Fri, 03/09/2018 - 11:36

The purpose of the module is to create dasboards for users, that consist of different blocks.

Draggable dashboard allows privileged users create dashboards that can be placed as blocks anywhere on the website.

For each dashboard a layout and blocks for display can be configured.

Users can drag the blocks around on the dayboard and maximize or minimize blocks.

Categories: Drupal

Customers Canvas

drupal.org - Modules - Fri, 03/09/2018 - 10:24

Integration module for https://customerscanvas.com/

Tracks API connection details and provides JS that injects the appropriate iframe code to a user-customizable path. Includes integration with Drupal Commerce, but not a required integration.

Categories: Drupal