All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
Module allow set/create chained breadcrumbs by path manually. Chained means that the breadcrumb may have parents and children, like in taxonomy terms or menu links. With this module you may create one breadcrumb with two and more different paths, and two and more different breadcrumbs with the same path!
In case you missed the news from September, Dries Buytaert announced the end of life dates for both Drupal 7 & 8. The date for both Drupal 7 & 8 is slated for November of 2021, and that may seem strange, but it really makes sense given the differences in 7 & 8 and the widespread usage of 7. Drupal 8 is ending alongside Symfony 3 which powers a lot of the underlying framework of Drupal 8, so that makes perfect sense.
Entity Series provides functionality that lets you create a duplicate series of entities and then update one, or update all.
Entity Series provides functionality that lets you create a duplicate series of entities and then update one, or update all.
This video outlines the migration phases that we discussed in the announcement of our partnership with GitLab. Our migration window for Phase 1 is targeted for the first weeks of January, and we hope Phase 2 to be completed shortly in the beginning of 2019.
So what has it taken to get this integration working between September and now?
- Primarily, lots of collaboration from the GitLab team. We've worked with their excellent engineering staff to resolve a number of issues that affect our integration, including:
- git merge-base web api
- Add ability to confirm a user’s email address via "Add email for user" API
- Allow configuration of the display URL for clone instructions
- Ability to hide User's Email Address from GitLab UI
- Allow ability for developer role to delete tags
- Set GL_REPOSITORY in update hooks for API-initiated requests
- Deduplication of git objects, reducing disk space of repository forks
- On the Drupal.org side, we've built a versioncontrol_gitlab module, which extends our use of the versioncontrol_git module to orchestrate our integration.
- We've also been cleaning up our data, to ensure there are no namespace conflicts between existing Drupal projects and users, and the reserved terms used by GitLab.
We're now in the midst of serious migration testing. Testing and re-testing the process in our staging environment, putting load testing in place to stress test our integration, and doing user-validation testing to ensure that the workflows affected by this integration are working as expected.
All in all, we're thrilled with the progress, and very thankful for GitLab's close collaboration. We're excited to be moving the Drupal project to its next generation tooling soon. Once Phase 1 of our migration is complete, it'll be time for Phase 2 and our community will start seeing some tremendous improvements in efficiency and collaboration.
Drupal Association - Executive Director
ESIA from Russian "ЕСИА", which is "Единая система идентификации и аутентификации". Translated as "Unified identification and authentication system".REQUIREMENTS
This module requires several Drupal modules and some composer dependencies:
Disable body-level scrolling when a dialog is open as a modal
This project is related to Opigno LMS distribution.
It implements on Opigno a guided tour feature.
For additional details, please consult Opigno website.
Check out our blog posts from November 2018.READ MORE
In this blog, we will talk about the best practices which will help you enhance your user experience from good to better and how Drupal 8 can be a game changer in this quest.
Often we have heard how Drupal is not for beginners. While setting up a Drupal website has become a lot easier with Drupal 8.6, a good website is not just about setting up some web pages under a single domain name.
Google processes over 3.5 billion searches per day. A stale site, which is not usable or loads very slow and you risk leaving your potential customers frustrated and reflects poorly on your business. While maintenance should never be out of the plan, investing in some good practices can result in the longevity of your website and business alike.
8 Best Drupal Practices
Here are some of the best Drupal web development practices to ensure your website is as much providing a great user experience as it helps you rank your content on Google page 1.
Creativity isn’t alone when it comes to considering, there are many other factors which can influence your reputation in the online market.Drupal’s Architecture
A healthy architecture will not only ensure the demands of different stakeholders is met, but also that the site remains robust for future initiatives as well.
Make your architecture robust.
On a basic level, your content structures must include all the fields and content types. A clean content architecture not only helps ensure good performance but a great user experience, and easier maintenance too.Although a well-maintained website is critical, you can’t do much if the base is full of errors.
Less is always more.
In your development plan choose limited content types and fields so as not to confuse your content creators. Drupal is a powerful tool for displaying content in different formats, languages, and screens.
Configuration plays an important role in architecture.
In simple words, configuration is the collection of settings of how the default site functions for the admin as against the popular notion of the placement of content on the website. It includes site name, the content types and fields, taxonomy vocabularies, views and so on.
You can also check out this video by Pantheon on Drupal 8 architectural practices.
Site configuration data in Drupal is consistent, everything from the list of enabled modules, content types, taxonomy vocabularies, fields, and views can be done easily.
Your approach must be flexible.
In the basic level, you must use a new entity type for different types of data. In case of similar data types, use bundles for a single entity type. However, for modules, they are designed to work with Nodes, and not other entity types.
Using nodes is easy, as it allows to create a new content type through the admin interface without much coding against the case of creating entities which require coding. As a developer, your approach should be flexible.
Bonus tip: Don’t make configuration changes on a live site without testing them locally.Check the Codes
We all know how good coding helps improve quality and get better results. Basics should be to start with simple codes. Remember, it is always difficult to modify complicated codes in the future. Thus, you should keep your coding simple for the longer run.
Drupal coding standards are version-independent and "always-current". All new codes follow the current standards, regardless of (core) version. In case you want to update existing code for the current standards, always create separate and dedicated issues and patches instead of squeezing into unrelated patches.
Remember to use US English standards for spellings in your code, which means it will be "color" not "colour".
Here are the top 6 coding practices by Drupal.org:
- Use an indent of 2 spaces, with no tabs and the lines, should have no trailing whitespace at the end.
- All binary operators (operators that come between two values), such as +, -, =, !=, ==, >, etc. should have space before and after the operator, for readability.
- Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls. Control structures include - if, for, while, switch, etc.
- All lines of code should not be longer than 80 characters. Lines containing longer function names, function/class definitions, variable declarations, etc are allowed to exceed 80 characters. Conditions should not be wrapped into multiple lines.
- Arrays should be formatted using short array syntax with a space separating each element (after the comma).
- When unconditionally including a class file, use require_once(). When conditionally including a class file, use include_once(). In either case, it will ensure that class files are included only once.
You can use Coder for coding standards validation without loading Drupal.Infrastructure
Infrastructure covers the stack your website lives on, including the server, the database, and any software layers, such as Varnish or Memcached, which ensure your visitors have a snappy experience. Planning the infrastructure from the start and developing in the same environment can greatly reduce variables and risk at launch time.
Having reliable multiple environment configurations and a solid disaster recovery plan shouldn’t be left to last-minute decisions. When it is, mistakes start arising. Here are a few tips to avoid the most common errors.Best Practice:
- Size your stack correctly, not too large, not too small. This can ensure you’re economically prepared for anything.
- Bottlenecks can arise from the hardware or from processes hogging memory.
- Check logs for errors and prepare for growth and spikes. Your stack is only as fast as the slowest component. Focus your efforts there; you’ll probably find low hanging fruit.
- In terms of security, it’s crucial to configure to protect from internal attacks as well as external attacks
The frontend is more than just theming.
While the features and their functioning depends on the backend, the usability and aesthetics depend on how well the frontend is taken care of.
Performance of the website is shouldered equally between both.“..powerful, adaptable, accessible, clear, concise, natural.”
Quickly brushing up the basics, here’re the best Drupal frontend practices:
- Define component elements (sub-objects) using their own classes. This is to avoid relying on markup structure and overly-generic class names, prefixing them with the component’s name followed by two underscores.
- Thoroughly exercise and test your site and resolve any PHP errors that are displayed during theming development.
- Use a stable administrative theme during development.
- Use DRY CSS and group reusable CSS properties together. Name these groups logically.
- Name components using design semantics. HTML elements already impart semantics on the content and machines cannot derive content-level semantics from class names.
- In order to reduce the load on the frontend performance of your website:
- Enable gzip compression
- Use lazy loading for site assets
- Keep Inline background images under ~4KB in size
- Remove unused CSS
- Use efficient CSS selectors
- Download 3rd party scripts asynchronously
- Use SASS to keep your responsive design more organized
It is very important to keep the quality of your website an utmost priority before you move on to other technical stuff. While this might feel like a lot of work for your lot to do, it can make an actual difference. A review by your peers (is a must) will help you get an additional idea of how things look and should work.Successful regression testing gives you the much-needed confidence.
It is also very important that you keep an eye on previous things while adding new stuff. The testing framework PHP unit is inbuilt in Drupal 8. By setting up the testing environment, websites can be tested easily (as samples of test cases which have been written by the community are already available).
Drupal has a very active community support. With almost 1,00,000 active developers who write test cases (which are later merged into Drupal) and submit solutions. With this, you can say that Drupal is quick in providing you with solutions to your problems.Aim for Google Page 1. Don’t Forget the SEO
75% of users don’t even click past the first page!
Starting with the search, it is very important that the user gets the best results in her first search. Now, as a user, you must have tried different keywords in an attempt to connect to the content of your website. Here comes the art (and science) of SEO.
Drupal offers a suite of SEO modules. However merely deploying the modules isn’t enough, it is important to configure and enable them as well.
The SEO best practices include:
- Using Robots.txt, so the right pages and information is indexed.
- Ability to customize page titles and metadata. Also, it should be capable of automatically populating these respective fields as per SEO norms and best practices.
- Navigational drop-down menus are crucial internal link structures, silently contributing to search engine optimization. They establish relevancy and hierarchy across your website to help search engines index them in from the beginning of time. It should also provide easy customization of navigation menus.
- URL aliasing must be enabled with Pathauto as it ensures the search engine understands what the webpage implies.
Security is a vast area of expertise and it is quickly changing with time. While the list of do’s and don'ts is extensive and exhaustive to keep up with the threats, vulnerabilities and mitigation strategies, here are the best Drupal security practices to follow in order to keep up the health and security of your website.
- Keep your core updated: A key practice, keeping the core updated will always be the first when listing healthy security practices. Always look out for core updates (include the minor releases as well). In all of its advisories, the Drupal Security Team asks for updating the core version of the system.
- Use additional security module: When covering security, there is nothing as better than equipping yourself with more and more. To keep the walls up high, you can use the additional security modules like security kit, captcha, and paranoia. Drupal Security Review can be used as a checklist to test and check for many of the easy-to-make mistakes making your site vulnerable.
But use only security team approved modules: Your site probably uses a number of contributed modules, although that’s not an issue. Using the stable and approved modules is where the key lies. This is especially worth noting for contrib modules which are more susceptible to vulnerability.
Always look out for the green batch when downloading a contrib module. Rest, as the advisory reads, Use it at your own risk!
Keep Up your Backup: As an administrator, you have to be prepared for all uninvited events.
Drupal’s open-source basics give it a possibility that it is updated frequently with more and better security modules.Maintenance Practices
The life cycle of a website begins from initial plans and extends to the end of the site. The site exists in three different phases: development, deployment, and maintenance. After the site is launched, your website lifecycle practices become critical to the success of changing and maintaining your site.
- Keep your code under version control.
- Maintain separate environments for the different stages of the site, and keep them up to date.
- Restrict access to the production site for all but the most trusted users.
- Review all logs periodically, including Apache, Drupal, and MySQL.
- Review and assess your architecture periodically, and plan for the future.
At OpenSense Labs, we understand how important your website is to you. Reach out to us at firstname.lastname@example.org to get a holistic view on how to enhance your user experience.blog banner blog image Drupal 8 Drupal practices Blog Type Articles Is it a good read ? Off
Online stores open unlimited opportunities with no geographical boundaries. Behind their lines of code are successful purchases, great profits, and happy customers. So online stores should be reliable, efficient, and attractive in everything — from product catalog to e-commerce checkout. An awesome choice for building an online store is Drupal 8, particularly with one of its greatest treasures — Drupal Commerce 2.x. Let’s explore Drupal Commerce 2.x features for your Drupal 8 online store in more detail.
Here is a very quick and simple example of how to create an administrator on any drupal 7 website using drush command. This tweak is very useful when the client has provided a site for support but forgot or did not have the opportunity to create an admin account for you.So you don't need to hack in your code,just run a drush command will create an admin account for you.
This Module prevents field machine name from ending (_) underscore. For example,
when you have brackets at the end of a label, e.g., "Address (2)",
you end up with a trailing "_" character — field_address_2_.
Perhaps, you simply want to validate field the machine name, especially when it
is ending with underscore or having two/more undersocre and it has been
On the first post of this series “Improving Drupal and Gatsby Integration - The Drupal Modules”. I introduced two contributed modules we wrote to simplify the Drupal usage while working with Gatsby. One of the modules mentioned was `tui_editor` a WYSIWYG markdown editor integration with the Toast UI Editor project. This module allows content editors to enter content as markdown, making easy to implement JSON-API endpoints that return markdown.jmolivas Fri, 12/07/2018 - 08:00
Drupal module that provides a dynamic read more link and body text.
It acts like the core Summary or Trimmed Text formatter, except that when its output is not the full body it adds a read more link. This makes it possible for the site builder to create a teaser style which only shows "Read more" when there is more to read.
This formatter is only suited to simple content types which have a single long text field. It's more of an proof of concept than a fully fledged module at the moment.
Have you ever heard the one about the web developer who goes in to make one last change to the site at 4:45PM on a Friday afternoon? It is SUCH an easy fix--he can get it done and go home for the weekend with his head held high. Ah, what a relaxing weekend it will be! Cleaning out the gutters, hiking with the kids, and really just taking some "me time". As it turns out, that plug-in update was not well-architected. As a result, it impacted the structure of the site--and now all of the content is right-justified. WHAT JUST HAPPENED?DevOps Drupal Planet Visual Regression Testing