All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
I started Hosted Apache Solr almost 10 years ago, in late 2008, so I could more easily host Apache Solr search indexes for my Drupal websites. I realized I could also host search indexes for other Drupal websites too, if I added some basic account management features and a PayPal subscription plan—so I built a small subscription management service on top of my then-Drupal 6-based Midwestern Mac website and started selling a few Solr subscriptions.
Back then, the latest and greatest Solr version was 1.4, and now-popular automation tools like Chef and Ansible didn't even exist. So when a customer signed up for a new subscription, the pipeline for building and managing the customer's search index went like this:
Original Hosted Apache Solr architecture, circa 2009.
GraphQL Redirect is a simple module extending contributed GraphQL module. It replaces default route handling so that GraphQL query follows redirect path and returns query result for the destination route. It supports multilingual environment and recursive redirects.
It's used for billing sth in commerce. Under development.
Any idea could be added in issues.
This module integrates the CodeMirror editor into Drupal's textareas.
Have you ever been building a form and found yourself wishing that you could insert additional help text - or even other forms of content (images, video) inline with the form? While each field's "Description" field is useful, sometimes it isn't enough.
The Markup module solves this problem in an elegant way by providing a new "Markup" field type.
This field doesn't expose any input widgets to the end user, rather it just allows for site builders to add additional markup (content) to an entity form.
The markup isn't saved with the resulting entity - it's just there to provide additional information to the user filling out the form.
Granted, this has always been possible by writing a small custom module utilizing hook_form_alter(), but having it as a field type makes it much more convenient to use.
All of the resources would be management by this module, distinct with different bundle to store any data.
I found it was a named by userplus module for D7, but it had already none update code in last long time;
so I build a new module named by user_plus for my project in D8, and for all anyone who needs it, and it will update more often.
Drupal 8 has been available now for more than two years, but if your site is up and running on Drupal 6 or 7, you may be wondering… why should I upgrade? And why now?
Just imagine: a user asks Amazon Alexa to read out loud to him/her the headline of your latest blog post! Or maybe to look for a specific section on your Drupal site! Or, even better: quit imagining this and start implementing it instead! Right on your website. And here's how you integrate Alexa with your Drupal 8 website via the Alexa integration APIs.
A 7-step tutorial:
- on how to get Alexa to “talk to” your site users/online customers
- on turning your site's content into the needed “raw material” for setting up your custom Alexa skills
- on how you can leverage Drupal 8's outstanding third-party integration capabilities to “fuel” your implementation plan with
So, here's how it's done:
The Content Moderation core module was marked stable in Drupal 8.5. Think of it like the contributed module Workbench Moderation in Drupal 7, but without all the Workbench editor Views that never seemed to completely make sense. The Drupal.org documentation gives a good overview.
Content Moderation requires the Workflows core module, allowing you to set up custom editorial workflows. I've been doing some work with this for a new site for a large organization, and have some tips and tricks.Less Is More
Resist increases in roles, workflows, and workflow states and make sure they are justified by a business need. Stakeholders may ask for many roles and many workflow states without knowing the increased complexity and likelihood of editorial confusion that results.
If you create an editorial workflow that is too strict and complex, editors will tend to find ways to work around the system. A good compromise is to ask that the team tries something simple first and adds complexity down the line if needed.
Try to use the same workflow on all content types if you can. It makes a much simpler mental model for everyone.Transitions are Key
Transitions between workflow states will be what you assign as permissions to roles. Typically, you'll want to lock down who can publish content, allowing content contributors to create new drafts only.Read more
This blog has been re-posted and edited with permission from Dries Buytaert's blog. Please leave your comments on the original post.
While we have been working for years to add web service APIs to many parts of Drupal, not all of Drupal has web services support yet. For our React-based administration UI prototype we decided to implement a new permission screen (i.e. https://example.com/admin/people/permissions). We learned that Drupal lacked the necessary web service APIs to retrieve a list of all available permissions in the system. This led us to create a support module that provides such an API. This support module is a temporary solution that helped us make progress on our prototype; the goal is to integrate these APIs into core itself. If you want to contribute to Drupal, creating web service APIs for various Drupal subsystems might be a great way to get involved.6. Make the React UI extensible and configurable
One of the benefits of Drupal's current administration UI is that it can be configured (e.g. you can modify the content listing because it has been built using the Views module) and extended by contributed modules (e.g. the Address module adds a UI that is optimized for editing address information). We want to make sure that in the new React UI we keep enough flexibility for site builders to customize the administrative UI.All decoupled builds benefit
I'm sometimes asked for an overview of my general approach to PatternLab. Simple: put everything for each component in the same directory!markconroy Fri, 05/18/2018 - 15:43
When working with PatternLab, which I use for all my Drupal themes, including the theme for this website, I don’t use the full atomic approach. I don't use the approach of atoms > molecules > organisms > etc. I’m sure many people seriously disagree with me for that ( I do think it's a very clever concept). Instead I’ve renamed things to match the language we use with our clients.
I tried talking about atoms and molecules to some clients and their eyes glazed over. Clients do not want a science lesson. They do not want to be told that we are going to take two of these atoms, and mix them with one of these atom, and eventually we'll have water. No, they want to know what their final website is going to look like. When I changed the conversation and started talking about ‘Building Blocks’ (what we call our Drupal paragraph types), site blocks (Drupal's search block, branding block), display types (Drupal's view modes such as teaser, search result), etc, they immediately understood. Then we started hearing things like, "Oh, so we can create a page by adding a number of different building blocks?" and "I see, so the search results page is made up of a group of pages using the 'Search Result' display type?". And my response, "Yes!". You see, we are using plain English to ease with understanding.
Another aspect of my approach that I really like is that _everything_ for each of my components is within the same directory. For example, if it’s a nested paragraph component such as an accordion (so we need a paragraph type called 'Accordion' and one called 'Accordion Item') each template and css and js and readme and json and yaml is all in the same folder. That means when I want to reuse one in another project, I don’t need to remember what sub-particles (atoms/molecules) are used to create the organism. It also means my CSS is scoped to that specific component and doesn’t bleed out of it, so making changes or adding new features is very easy, you just scope the new component's CSS to it, so it won't affect other previously-created components.
Now the top bar of my PatternLab that used to say Atoms | Molecules | Organisms, etc has tabs for:
- Basic Elements
- Site Blocks (Drupal Blocks)
- Search Block
- Login Block
- Branding Block
- Building Blocks (Paragraph Types)
- Image with Text
- Display Types (View Modes)
- Search Result
- Lists (Views)
- Search Results
- Content Types
- Basic Page
- Display Types (View Modes)
- Page Sections (Regions)
- Sample Pages
- Blog Listing Page
- Blog Node
After that, I have Backstop.js set up to regression test all of these, so each time I create a new component I can quickly run the visual regression tests and check that nothing has broken. Since all my CSS/JS is scoped to each individual component, it's rare if something is.