Droptica: How to Create a Website Menu and Footer and Add a Favicon in Droopler

3 days 7 hours ago

On our blog, you can find many posts introducing you to the world of Droopler, which show how to build a showcase website in a simple and transparent way. In this article, however, we'll deal with one of the most important things on this type of webpage: menu, footer, and favicon. They are like the three musketeers and neither of them should ever be taken lightly. Why?

Importance of a website menu, footer and favicon

From the point of view of our system, these elements in an abstract sense have a completely different meaning and we handle each of them differently.

Menu

If we need to change the direction of travel on a highway, we have to use a crossing in the form of an overpass. It's no different on the web. When we want to edit a post or go back to the home page, we click the appropriate link. Our menu is the main element that creates traffic.

Footer and favicon

This element is often overlooked by web developers, but it shouldn't be. An intuitive footer can make the user stay on your website. Why? Anyone who isn't particularly interested in the content on your page will scroll down until they hit the footer. This is the moment when the user can either change the tab in the browser or stay on your page by clicking the appropriate link in the menu. A footer may also contain other interesting elements, such as a map, contact details or a form to enter your message.

If you see a small grey globe on the tab next to the page name, it means that the favicon is missing. It's a small image that identifies a given page and tells the user what's in a given tab.

Adding new website elements in Droopler

Drupal is a good CMS offering a really great foundation for setting a page up. However, if we want more than just static content, we need to install additional modules. Considering that each module deals with a single issue, it's easy to get lost. Droopler is a preconfigured Drupal distribution which will allow us to concentrate on adding the content only, as it already contains all the necessary extensions. Thanks to this, a beginner without much technical knowledge can build a simple and functional website.

We can set almost anything on the user interface side. Due to the fact that everyone has their own requirements, e.g. regarding the footer's look, it often depends on the JS and CSS code added separately by the module or theme. Thanks to using Droopler, we don't have to worry about additional configuration, and the process of adding our own styles is easy.

However, to enrich the footer with our own content, we need to obtain some theoretical knowledge. How is the content displayed? There are several ways (a block, a paragraph, a content page) and each of them has its own unique purpose. A block will be the most important one for us.

Block

When we want to add an element with a specific purpose to a website (e.g. a Google map), we are dealing with a block.

How to add a block type?

A block type can be added in two ways – via a custom module or the user interface. We'll focus on the latter, easier method.

1. In the admin bar, we select the Structure -> Block layout -> Block types option, then in the /admin/structure/block/block-content/types tab we click the + Add custom block type button.

2. At this stage, we set a label for a given type of block, thanks to which we'll find it on the list, and a description that explains what this block is for. The revision option allows us to see a preview of the block type edit history.

3. We may proceed to add the preferred fields for our block type. We'll make a template which will contain a text field of the text plain type.

4. In the Manage form display tab, it's possible to set the basic parameters of the form fields, as well as the way they are displayed.

Manage display is used to set the default order of the content contained in the fields, to set the display of the field title or the way of rendering the content.

After it's saved correctly, we'll be redirected to the page with the block types.

How to create a block?

When we have a block type ready, we can create a block from it.

1. In the admin bar, we go to Structure -> Block layout -> Add custom block

 

2. Then we select our block type from the list:

 

3. After selecting the block type, we complete its fields, defined earlier in the block type in the Fields tab.

 

4. As we can see, our block was created in the next subsection. When filling out the form, we'll add it to the region:

 

  • Display title – determines whether the title of the block is to be displayed.
  • Content type tab – determines in which types of content this block is to be shown.
  • Pages tab – allows defining the block presence on specific subpages. In the case of using this tab, one of the options should be selected – show on specific subpages/hide on specific subpages. From the description, we can see that it's possible to add not only the paths of specific directories, but also the aliases of the of subpages of the type or using the * notation which stands for every string of characters.
  • Roles tab – allows determining for which user roles a given block is visible.
  • Region – select the region in which the block should appear. The region for which we wanted to add a block at the beginning is selected.

5. Once successfully added, Drupal will send us to the region list.

We have the block type and the block itself ready. We've already added the block to the region, but we don't know what it is yet.

Region

The block needs to know where we want to use it. In Drupal, this is determined by the regions – the places that we could define as containers. Thanks to them, our project obtains an orderly pattern.

1. To add a preconfigured block to our region we need to go to the Structure -> Block layout tab first.

 

2. We should see a list similar to this one:

 

Now we need to find the appropriate region for us. If we want to see the current regions and their layout, the link in the screenshot below may be helpful.

 

3. Once we know which region we want to add our block to, we click the Place block button next to its title. A list of ready blocks will appear. However, if we want to create another block, we can add it to the system by clicking Structure -> Block layout -> Add custom block in the admin bar (the same way as we did above) or by clicking Add custom block. In the case of selecting an existing block, we'll get a form for adding the block to the region (the last screen of the block adding process).

 

After adding the block to the region, we'll be redirected to the region list.

 

4. Everything is ready! We can check on the page if the given block is in the correct region.

Adding a footer

The footer on our website will be a collection of as many as 7 regions – six on the grid and the main one. If one of them won't be used, it won't be rendered on the page, so we don't have to worry that the other ones will be disturbed. Thanks to this approach, we have various possibilities of nesting the blocks and as we know, with a little effort a block can present content in many different ways.

Adding a menu

A menu is a special block. Its main configuration is based on the links that can be nested. Then we add it to the region just like any other block. Thanks to this, we can create thematic menus that'll organize our navigation in a way that is understandable for the user.

1. We start by entering the appropriate form via the admin bar – Structure -> Menus -> Add menu.

 

2. The title field is required, so we determine a name that'll help us figure out what's in this menu.

3. We can add our links by clicking the “+ Add link” button.

4. The link form allows us to set and save the most important information such as:

  • link title,
  • link address,
  • link weight corresponding to its place on the list,
  • description,
  • visibility,
  • in which menu the link should be placed.

5. After adding the link, we're sent back to the menu.

6. Since the menu is such a special block, and we add the block to the region, then... let's add the menu to the selected region! We can choose different locations, but in our case it'll be the footer.

 

7. The effect should be visible at the bottom of the website:

 

In order to quickly configure the menu on a website, Droopler comes with the Drupal Mega Menu module, which we can use to fully customize our menu.

1. We go to Structure -> Drupal 8 Mega Menu.

 

2. We choose the already composed menu from the list.

 

3. In the panel, we can add the things necessary for us. Do we want an icon next to a link? Not a problem! Or maybe we want to add a CSS class? Simply enter it in the appropriate field for a given link. We'll also find a checkbox that'll allow us to define where a given link should be opened.

Adding a favicon

We can find the option of adding a favicon in Droopler in the Droopler Subtheme theme settings.

We simply have to specify the path to our favicon file in the Favicon area or – if we don't have access to the server – upload the file via the interface.

Adding a website menu, footer and favicon – summary

This guide aims to show you the abilities of Drupal using Droopler. It's worth keeping in mind that the list of options is very long. However, you can learn about them gradually after installing Droopler.

I recommend that you familiarize yourself with the Paragraphs module, also available in this Drupal distribution. Thanks to it, our website, in addition to having a favicon and appropriate navigation, will be rich in attractively presented content.

 

OpenSense Labs: Fully decoupled Drupal vs Progressively decoupled Drupal

3 days 12 hours ago
Fully decoupled Drupal vs Progressively decoupled Drupal Maitreayee Bora Fri, 12/03/2021 - 15:48

Let me ask you a question today. Do you think the only major role of a website is to create content for its users? Well I think it shouldn’t be only restricted to content creation rather it should take the responsibility of delivering content in a user-friendly manner across various devices. Hence, most of the organizations are seen preferring the decoupled ap​​proach and opting for a well-built content store in Drupal. So, depending on various preferences and requirements there are two approaches for decoupling Drupal such as progressively decoupled, and fully decoupled. This article will help you in gaining much better insight upon these two approaches for decoupling Drupal.


Fully decoupled Drupal

Fully decoupled Drupal refers to full separation of concerns between the presentation layer and all other aspects of the CMS. In this approach, the CMS becomes a data provider, and a JavaScript application or static site generator communicates with Drupal through web service APIs. More on the use cases of CMS and static site generators here. Even though there is unavailability of key functionality like in-place editing and layout management, fully decoupled Drupal can be a good option for developers who tend to look for better control across the front end and who are experienced already well experienced with building applications in frameworks such as Angular, React, Gatsby etc.


Fully decoupled Drupal is executed in two different ways, namely Fully decoupled app and Fully decoupled static site. 

Fully decoupled app

Fully decoupled applications use frameworks such as Angular, React, Vue.js during the decoupling process and are written in JavaScript. 

React

Source: W3Techs


Started in 2013, React is a JavaScript library which is used to create interactive user interfaces (UIs). Started in 2013, React is a JavaScript library which is used to create interactive user interfaces (UIs). Proven as one of the most powerful and highly used front-end technologies, it is maintained and supported by the tech giant Facebook. It can split the codes into components to further enable developers with code reusability and fast debugging. Because of its declarative style and lack of assumptions about technology stack, it has succeeded in gaining popularity as well. Within the last few years, a large ecosystem has grown around React. It consists of high-quality libraries, conferences, and rapidly growing demand for developers with React skills. Some of the well-known websites and web applications that use React as front-end technology include BBC, New York Times, Facebook, Reddit and Airbnb etc. 

The combination of React and Drupal enables creating extraordinary digital experiences. Also, the one-way data flow of React allows shaping the web page as per the data which is sent from Drupal's RESTful API. Read more about the combination of Drupal and react here. 

Angular

Source: W3Techs


AngularJS can be considered as a lightweight and concise framework that is fully extensible and enables you to try some interesting things with your site. This framework extends HTML to define user interfaces, moreover helping you to build interactive web applications that are highly functional and difficult to break. With AngularJS, reusable components can be created and because of its client-side nature, all types of cyber-attacks can be restricted. It executes the MVC (Model-View-Controller) framework enabling faster development process, multiple views, asynchronous technique, SEO friendly development and many more needful features. AngularJS holds an exciting functionality like a two-way data binding that helps user actions to instantly trigger application objects and vice-versa, also facilitating with an extremely interactive framework. 

It gets support from a huge community and is maintained by the tech giant Google. Paypal, Gmail and The Guardian can be seen using Angular as the front end technology.

The powerful combination of Angular with Drupal will enable you to move display logic to the client-side and streamline your backend, therefore resulting in a speedy website. Also, you will find that HTML always stays on demand due to its simplicity and clarity in the code structure, and Angular makes proper use of HTML to define user interfaces, hence allowing companies organizations to build interactive web applications that are highly functional. Read more about the combination of Drupal and angular here.

Vue

Source: W3Techs


Vue.js is a JavaScript framework which is extremely popular for developing interactive applications. It provides data-reactive components with a simple and flexible API. Also, this framework can be used as a library to add interactive elements/blocks to the existing sites. With Vue.js you will be able to deliver a significant boost to user experiences. 

The combination of Drupal and Vue allows developers to smoothly request and store Drupal content as data objects via the official Vue-Resource plugin. Additionally, while combining with Vue, Drupal is enabled to show its magic at the back-end while the attractive features of Vue look after the client-side. Along with such specialties, Vue’s component system is one of the strongest features which allows large-scale application building, including small and self-contained reusable components. Read more about the combination of Drupal and Vue here.

Fully decoupled static site

Fully decoupled static sites help in improving performance, security, and reduce the complexity for developers. A static site generator like Gatsby enables in retrieving content from Drupal, generating a static website, and deploying that static site to a CDN, usually through a specific cloud provider such as Netlify. Apart from Gatsby, the fully decoupled static site also uses the Metalsmith framework.

Gatsby

Source: W3Techs


Gatsby can be considered as an open-source and modern website framework that enhances the website’s site's performance by leveraging the latest web technologies such as React and GraphQL. It can be used in building blazing-fast applications and websites. Gatsby uses powerful pre-configuration to build a website that only uses static files for incredibly fast page loads, service workers, code splitting, etc.

By using Drupal with Gatsby an organization’s high-quality CMS can be built completely for free, paired with great modern development experience. This framework provides all the benefits of the JAMstack, like performance, scalability, and security. Additionally, it also can-do fireworks by pre-generating all the pages of the site, unlike dynamic sites that render pages on-demand, hence reducing the necessity for live database querying. As a result, performance is enhanced and overheads happen to reduce leading to lesser maintenance cost. Read more about the combination of Drupal and Gatsby here.

Metalsmith

Metalsmith is an easy, pluggable static site generator which supports a wide array of templates and data format options. It offers a simple plug-in architecture and very smoothly can get started. Moreover, it uses a modular structure and its lightweight nature and lesser dependencies tend to make it a great solution. 

The combination of both Metalsmith and Drupal proves to be very beneficial because of Drupal’s spectacular backend that can be used to feed data to all kinds of clients and Metalsmith’s exceptional capabilities as a static site generator. Besides Drupal’s great proficiency in content governance, Metalsmith happens to be a great solution for building static sites. Read more about the combination of Drupal and metalsmith here.

Progressively decoupled Drupal

Progressively decoupled Drupal can be considered as an architectural approach which enables the website editors to leverage the administrative interfaces, content workflows, and all other traditional methodologies of creating, editing, and publishing content through Drupal.

It provides a proper balance between the editorial and developer requirements, by enabling editors and website assemblers for contextualized interfaces, content workflow, website preview and also other significant features to remain integrated with Drupal. Also, the frontend developers are allocated a portion of the page to include the frontend framework of their choosing, React, Angular, or Gatsby by this architectural approach. This process indeed helps the front-end developers by removing the restrictions of Drupal’s templating system. 

Read more about progressively decoupled Drupal here.

Learn more about Decoupled Drupal here:

Conclusion

I hope you now got familiarized with both the decoupled approaches clearly. You can surely make the right decision and opt for the necessary approach that your project requires. But still let me tell you that it won’t be beneficial to choose the fully decoupled approach if your project reflects editorial requirements. Likewise, if your project needs are solely of a developers’, then progressively decoupling won’t be beneficial. So, you will have to be very careful in making the right move towards the decoupled approaches. Well, OSL can be your savior. Our expert Drupal teams can enable your organization to assess your present architecture, and recognize which decoupled approach is suitable for you. After assessment our team work to establish a complete decoupled Drupal architecture, depending on your business needs and requirements.
 

Articles Off

Promet Source: How to Use Tailwind CSS in Drupal for Atomic Web Design

5 days 4 hours ago
Front-end theming that utilizes atomic design or component-based design principles is an important new capability in web design and development. It’s catching on very quickly for a lot of good reasons.  First, let’s review what atomic web design is. A methodology or design system framework, atomic design envisions the design process as a step-by-step progression from:

Security public service announcements: Drupal 8 is now end-of-life - PSA-2021-11-30

6 days 3 hours ago
Date: 2021-November-30Description: 

As of November 17, 2021, the Drupal core version 8 series has reached end-of-life. This means that all releases of Drupal 8 core (with 8.y.x version numbers) and Drupal contributed project releases that are compatible with only Drupal 8 will be marked unsupported as they no longer have security team support.

Drupal 8.0.0 was first released on November 9, 2015. The last version was released on November 17, 2021.

All Drupal 8 site owners must upgrade to Drupal 9 to receive security updates and bug fixes. The Drupal Association will also disable testing with unsupported versions of Drupal.

Security issues that only affect Drupal 8 (and not Drupal 9 or Drupal 7) will be made public and sites are at risk of having these issues exploited if they do not upgrade.

What about Drupal 7 and Drupal 9?

Contributed projects like themes and modules will still receive security advisories if they are compatible with either Drupal 7 or 9 and have opted in to security coverage.

Drupal 7's end-of-life is currently scheduled for November of 2022, and it will receive security updates until then. Drupal 9's end-of-life is scheduled for November of 2023. For more information on release schedules, see the core release cycle overview.

OpenSense Labs: Fully decoupled Drupal: Ultimate guide

6 days 11 hours ago
Fully decoupled Drupal: Ultimate guide Maitreayee Bora Tue, 11/30/2021 - 17:11

Today organizations are seen focusing on creating very interactive and omnichannel user-experiences via their websites that consequently let them to depend on Drupal’s decoupled architecture. Such a facility of Drupal’s decoupled architecture offers the organizations the flexibility to innovate, provide countless options on what they want to create, and enables them the capacity to build multiple-websites and applications. Additionally, it also allows the developer to work with Drupal in three different modes such as fully decoupled Drupal approach, progressively decoupled Drupal (hybrid) approach and traditional Drupal. So, today we will discuss the fully decoupled Drupal approach and make you familiar with its features and functionalities. 

Understanding Fully Decoupled Drupal and its categories
  Source: Dries Buytaert's blog


There are commonly three approaches to go about Drupal architecture such as traditional (or coupled), progressively decoupled, and fully decoupled. You can read more on this: How to decouple Drupal and the different options of doing it. In accordance with the need of various preferences and requirements, all the three approaches are important in their own ways. Let us now briefly look at the first two approaches and focus more on the third approach i.e., fully decoupled Drupal as it is the main topic that we are diving into today. 

When it comes to traditional Drupal, all of the Drupal’s general responsibilities remain intact, since Drupal can be considered as a monolithic system and moreover efficiently maintains full control over the presentation and data layers. Traditional Drupal proves to be a great choice for editors who require complete control over the visual elements on the page, with access to features like in-place editing and layout management.

At times JavaScript is needed to deliver a highly interactive end-user experience. In cases like this, a decoupled approach becomes a necessity. So, a JavaScript framework is layered on top of the existing Drupal front end in progressively decoupled Drupal. This JavaScript is responsible for rendering a single block or component on a page, or it might even render everything within the page body. This approach pattern lies on a spectrum i.e., while the less of the page is dedicated to JavaScript, the editors are even more able to control the page with the help of Drupal's administrative capabilities. 

Fully decoupled Drupal involves a full separation of concerns between the presentation layer and all other aspects of the CMS. Within this approach, the CMS happens to become a data provider, and a JavaScript application, or a static site generator, communicating with Drupal through web service APIs. Read more on CMS and static site generators’ use cases here. In spite of the unavailability of key functionality such as in-place editing and layout management, fully decoupled Drupal can be captivating for developers who look for greater control across the front end and who are already well experienced with building applications in frameworks such as Angular, React, Gatsby, etc. 

Learn more on decoupled Drupal here:

Fully decoupled Drupal can be executed in two different ways, namely Fully decoupled app and Fully decoupled static site. We will now closely take a look at the ways below. 

Fully decoupled app

Fully decoupled applications are written in JavaScript and use frameworks such as Angular, React, Vue.js during the decoupling process. 

Source: W3Techs

                             

React Source: W3Techs


React is a JavaScript library which was started in 2013 and is used to create interactive user interfaces (UIs). It can be considered as one of the most powerful and highly used front-end technologies, maintained and supported by the tech giant Facebook. The React has the ability to split the codes into components to further allow developers with code reusability and fast debugging. Due to its declarative style and lack of assumptions about technology stack, it has earned immense popularity. Within the last few years, a large ecosystem can be seen growing around React. It also includes high quality libraries, conferences, and growing demand for developers with React skills.

Some of the leading websites and web applications which use React as front-end technology include Facebook, BBC, Airbnb, Reddit and New York Times, etc. 

React and Drupal

When it comes to React and Drupal, no matter if you are improving some of the elements on a current page, or even creating a fully decoupled single-page app (SPA), React and Drupal tend to work together in a great way. Also as part of an existing Drupal theme, React is used to provide a better user experience. 

More on the combination of Drupal and react here.

Angular Source: W3Techs


AngularJS is a lightweight and concise framework which is extremely extensible and allows you to try some interesting things with your website. It extends HTML to define user interfaces, therefore allowing you to build interactive web applications which are highly functional and tough to break. Reusable components can also be created with AngularJS, and due to its client-side nature, all kinds of cyber-attacks can be well prevented. It implements the MVC (Model-View-Controller) framework allowing faster development process, multiple views, asynchronous technique, SEO friendly development and much more useful features. AngularJS has an exciting functionality like a two-way data binding that allows user actions to immediately trigger application objects and vice-versa, also providing an extremely interactive framework. 

This framework is well supported by a large community and maintained by the tech giant Google. Gmail, Paypal and The Guardian use Angular as the front end technology.

Angular and Drupal

  • The strong combination of Drupal with Angular will allow you to move display logic to the client-side and streamline your backend, hence resulting in a speedy website.
  • Due to simplicity and clarity in the code structure, HTML happens to always stay on demand, and Angular can be seen making use of HTML to define user interfaces, therefore enabling organizations to build interactive web applications which are highly functional. 

More on the combination of Drupal and Angular here.

Vue Source: W3Techs


Vue.js is a JavaScript framework which is quite popular for developing interactive applications. This framework provides data-reactive components with a simple and flexible API. Additionally, it can be used as a library to add interactive elements/blocks to the existing sites. You can deliver a significant boost to user experiences with the help of this exceptional framework. 

Vue and Drupal

  • The combination of Vue and Drupal enables developers to easily request and store Drupal content as data objects through the official Vue-Resource plugin.
  • While combining with Vue, Drupal is able to show its magic at the back-end while the captivating features of the Vue handles the client-side. Also, Vue’s component system is one of the strongest features that enables large-scale application building, including small and self-contained reusable components.

More on the combination of Drupal and Vue here.

Fully decoupled static site

Fully decoupled static sites help in enhancing performance, security, and reduce the complexity for developers. A static site generator such as Gatsby or Metalsmith helps in retrieving content from Drupal, generating a static website, and deploying that static site to a CDN, generally via a particular cloud provider like Netlify.

Gatsby Source: W3Techs


Gatsby is an open-source and modern website framework which improves the site's performance by leveraging the latest web technologies like React and GraphQL. It is used in building blazing-fast applications and websites. This framework uses powerful pre-configuration in order to build a site which only uses static files for incredibly fast page loads, service workers, code splitting, etc.

Gatsby and Drupal

  • Using Drupal with Gatsby can be a great way in building an enterprise-quality CMS for free, paired with great modern development experience. It provides all the benefits of the JAMstack, such as performance, scalability, and security.
  • Gatsby can also do fireworks by pre-generating all the pages of the site, unlike dynamic sites which render pages on-demand, thus decreasing the need for live database querying. Consequently, performance is improved and overheads happen to decrease leading to lesser maintenance cost.

More on the combination of Drupal and Gatsby here.

Metalsmith

Metalsmith is a simple, pluggable static site generator that supports a broad array of templates and data format options. It provides a simple plug-in architecture and very easily can get started. Also, it uses a modular structure and its lightweight nature and lesser dependencies tend to make it an excellent solution. 

Metalsmith and Drupal

  • The combination of both Metalsmith and Drupal can be very beneficial due to Drupal’s magnificent backend which can be utilized to feed data to all types of clients and Metalsmith’s extraordinary capabilities as a static site generator.
  • Along with Drupal’s great expertise in content governance, Metalsmith proves to be an excellent solution for building static sites.

More on the combination of Drupal and Metalsmith here.

Conclusion

I would like to conclude by saying that with fully decoupled Drupal, you can deliver fast and flexible content with no particular delivery environment. You can even have complete control upon how and where your content appears. Isn’t that great? Well, I am quite sure that this article helped you in familiarizing with the very significant fully decoupled Drupal approach. Hope, now you can take the right decision for your organization in terms of decoupling Drupal. 
 

Articles Off

Specbee: Extending Drupal 9 CKEditor - 7 Brilliant Modules You Didn't Know Existed

6 days 16 hours ago
Extending Drupal 9 CKEditor - 7 Brilliant Modules You Didn't Know Existed Ravikant 30 Nov, 2021

A content editor is an extremely crucial part of a successful CMS. With a powerhouse of an editor like CKEditor as its default rich text editing tool, Drupal has upped its content management game considerably. The CKEditor team, along with members of Drupal community, have together built and customized several new features for Drupal 8/9 like the CKEditor widget system and the Advanced Content Filer (ACF). Along with its default features, you can also extend CKEditors capabilities with the help of some contributed modules and plug-ins. Read on to find out more about these interesting add-ons that extends CKEditor's features and usability.

The Drupal 9 CKEditor

As mentioned previously, CKEditor 4.5 is the default WYSIWYG rich editor in Drupal 8/9. CKEditor is a text editor which helps content editors to write and edit content directly in the web pages. CKEditor is an open source project also available under commercial licenses. This HTML text editor is much faster after being rebranded and rewritten. CKEditor has been upgraded with many powerful new features. As part of the Drupal 10 readiness initiative, Drupal contributors are working toward implementing the latest and most modern version - CKEditor 5 - in Drupal 10.

Extending CKEditor with these fantastic Drupal 9 modules
         1. CKEditor Read More 

Aren't there times when you don't want to display all your text at one go and instead give the user a choice to read the rest if they find it interesting? That's when you would want to use the Read More feature, thus inviting your users to read on while enabling a compact page layout. Drupal 9 provides a simple and easy to use contributed module called the CKEditor Read More to enable the Read More / Show Less functionality.

Implementing the module:
Once you install this module, you will need to configure a few settings:

  1. Edit preferred Text format and enable “Limit allowed HTML tags”.
  2. Add in “Allowed HTML tags”. Disable the “Limit allowed HTML tags” and hit save.
  3. Now drag and drop the “Read more” icon from Available buttons to Active toolbar (as shown in the image above) and hit save.
  4. After clearing the cache you will find the “Read More” icon in the text editor when you choose the “Preferred Text format”.

How to use it:
Within the content area, click on the “Text format” icon. Now you will get a rectangular box. Add the rest of the content that you want to show after your user clicks on Read More.
    
Can I modify the Read More text?
Absolutely! Simply click on the “Read more button” tab in “CKEditor plugin settings” and change the text to anything you desire.

2. CKEditor Color Button 

By default, CKEditor does not offer you a choice to change the text color from the editor. If you want to change the color of a selected text or highlight the text with different colors, the Drupal 9 CKEditor Color Button module should be on your list. This module requires the Panel button module to be installed as well. And both these  modules require the libraries, Color Button Library and Panel Button library to be installed. After installing the modules and adding libraries in the libraries folder of the theme, we can move the colors button from Available buttons to Active toolbar in the preferred text format. 

Can I add a custom color?
Yes! If you don't want to use any of the default colors already available, you can set a custom color too. You can do this in the “Text editors format” section where you activated these color options from. Find the “CKEditor Color button” in the “CKEditor plugins setting” section of “Text editors format” and add color in the “Text colors” textarea with comma separated and without # sign.

3. CKEditor Youtube 

The Drupal 9 CKEditor Youtube module helps you add Youtube videos into your content without a long embed code. After installing and moving the Youtube icon form from Available buttons to Active toolbar, you can find Youtube icons in the text editor in preferred text format. This module depends on the library.

 

This module provides many options as shown in the above screenshot. You can “Paste embed code” or paste a Youtube URL by specifying the width and height. Also you have handy options like “Autoplay”, “Start at (specific time)” and “Show player controls”.

4. CKEditor Templates & CKEditor Templates User Interface

The CKEditor Templates and CKEditor Templates User Interface modules are very helpful if you are using the same content structure for your pages or posts. These modules depend on libraries. The libraries can be downloaded and installed as instructed in the module pages. After installing these libraries, you can move the template icon from Available buttons to Active toolbar as shown in the below image.


The CKEditor Templates module provides a dialog popup with predefined templates. When you click on the template icon (as shown in the above screenshot) you will see that a popup will open and you can choose any predefined template. This template will be inserted with “text format and styles” which are added within templates. 

The CKEditor templates user interface model helps to create templates that show in the dialog with the help of the CKEditor Templates module. After enabling the module, you will find an option in the Config > Content Authoring > CKEditor Templates section.

When you click on CKEditor Templates from the configuration, you will be redirected to the CKEditor configuration templates page. Now you can add or edit templates.

5. CKEditor CodeSnippet

Using the CKEditor CodeSnippet module, you can add your "code content" within the content so it is highlighted and well formatted. This module uses the highlight-js library and all available styles for it. If you will install this module using composer then the library will install automatically. After installing this module, you can move the “code snippet” icon from the Available button to Active toolbar. 

Now you will find the Code Snippet tab in the CKEditor plugin settings of text format. Here you can check/uncheck supported programming languages. 

How to use it?

Once you install the module, you can insert the CodeSnippet feature in your content from CKEditor. When you click on the Code Snippet icon, you will get a popup. Here, you can paste your code and select the code language.

6. CKEditor Wordcount

Sometimes, you might want to set a limit to the number or words or characters inputted into your CKEditor. Especially with multiple hands working on the same content. You might also want to see the number or characters and words in your CKEditor at the footer of the editor (just like you would in MS Word). That's when you would install the CKEditor Wordcount module. After installing the module and library, you can find “word count and character count” in CKEditor plugin settings of text format. Here, you can check/uncheck features according to your requirement. You will also find a counter in CKEditor at the bottom-right part of it.

 

  7. CKEditor Tweetable Text

Using the CKEditor Tweetable Text module, you can give an option to your users to tweet a particular text by clicking on a word or syntax. You can get a tweet icon after installing the module and library as instructed in the module page. Now you can move the tweetable text icon from the Available button to the Active toolbar. You will then find a tweet icon in the text editor. When you click on this icon, a popup will open up. Here, you can add a Display Text (for which word(s) you want to add the tweet icon) and Tweetable Text (the text that will appear in the Tweet).  When a user clicks on Display Text then it will redirect to Twitter and Tweetable Text will be displayed.

CKEditor is one of the most simplest and powerful WYSIWYG editor in the market to get your work done. There are many more plugins and modules that can help you extend and further customize your editor but we have listed some of the most popular and useful ones here. Need more customizations and expert support to elevate your Drupal editorial experience? Contact our Drupal experts today.

Drupal 9 Drupal 9 Module Drupal Development Drupal Module Drupal Planet Drupal Tutorial Drupal Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image Extending Drupal 9 CKEditor - 7 Brilliant Modules You Didn't Know Existed Image Why Page Speed Matters and How to Get Your Website to Load Faster! Image Drupal 9 Custom Module Development – A Beginners Guide Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI.

link

Discover how our technology enabled UX Magazine to cater to their massive audience and launch outreach programs.

link

Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.

link

Gábor Hojtsy: The big Symfony 4 to 6 jump plan in Drupal 10 and potential benefits down the line for future versions

1 week ago

As you may know, we are planning to release Drupal 10 in 2022 (as early as June), because Drupal 9's Symfony 4 and CKEditor 4 are both end of life the year after, around the end of 2023. So we plan go give enough time for people to update to Drupal 10 before Drupal 9 goes end of life. A similar situation happened with Drupal 8 to 9 driven by Symfony 3 to 4. However, moving Drupal 10 from Symfony 4 to 5 would again only give us a couple years of time to move on to Symfony 6 next, so the current plan is to move to Symfony 6 straight.

How is it possible to move Drupal 10 from Symfony 4 to 6? Symfony 6.0 was just released a few hours ago and is stable, so by the time Drupal 10 would be released, it will already be at least on Symfony 6.1.

However, the exact same thing happened with Drupal 8, and we did not do a double Symfony version jump update from Drupal 8 to 9 for two reasons: (a) even though Drupal core minor versions are supported for 12 months, Symfony minor versions are only supported for 8 months other than the last LTS minor version and (b) jumping two versions would mean that scanning for and acting on minor version to minor version all deprecations is challenging. Those two did not resolve themselves so to speak, however we have plans to mitigate them.

Symfony security extension for Drupal-used packages

First of all, Symfony normally supports minor releases for 8 months starting with Symfony 5. On the other hand Drupal minor releases are supported for 12 months, so if there are security fixes to be made, this would not be possible on a non-LTS version of Symfony. However we made arrangements with the Symfony team to have two of the Drupal core committers be part of the Symfony security process and be able to backport security fixes as needed for components used by Drupal even if the given Symfony minor version would be normally out of support. The two Drupal core committers involved are Alex Pott and Lee Rowlands! I don't believe there was an official announcement of this agreement yet, however it was in place since September 2019. Special thanks for the open minded collaboration of the Symfony leads as well!

Bridging the deprecations jump with Symfony 5.4

Second is bridging API deprecations. Nathaniel Catchpole outlined the plan for this recently. The problem is that Symfony 4 deprecated some APIs for removal/changes in Symfony 5 and them Symfony 5 deprecated some APIs for removal/changes in Symfony 6. Jumping through two versions gives Drupal 10 a potentially longer lifetime but with a need to solve identifying all deprecated API uses for both. Now that both Symfony 5.4 and 6.0 are out, the plan is to open the Drupal 10.x-dev branch for development very soon and update to Symfony 5.4 as well as other big dependency updates. Then release a Drupal 10.0.0-alpha1 that is based off of Symfony 5.4, which would allow contributed projects and custom code to check against deprecated APIs towards Symfony 6. And only later update to Symfony 6. This way there is a middle-point that allows to make the necessary updates and check deprecated APIs against.

As jumping two major Symfony versions is not something we did before, let us know in the Drupal 10 issue if you can poke holes at the grand plan. While it looks like this will be entirely possible, it would be best to find any potential pain points ahead of Drupal implementers hitting them.

A proposal with overlapping LTS release versions of Drupal core

Lee Rowlans went even further and presented the potential benefits of this plan down the line with Drupal 11 and Drupal 12. Releasing Drupal 10 on Symfony 6 would allow us to support it longer, up to November 2027. However it does not mean that we cannot release Drupal 11 earlier than 2026 let's say. Releasing earlier would allow us to jump faster to Symfony 7 while it would still give Drupal 10 users a more comfortable, longer support timeline. Check out this video where Lee explains the details and discuss in the issue titled Adopt a 2 year major release cadence and a 6 month LTS-to-LTS overlap period for Drupal 10 and beyond. (This is not yet a firm policy, it is under discussion).


Talking Drupal: Talking Drupal #323 - Pantheon Autopilot

1 week ago

Welcome to Talking Drupal. Today we are talking about Pantheon Autopilot with Nathan Tyler.

TalkingDrupal.com/323

Topics
  • Nic - Firefly iii
  • Kevin - Visiting Asheville
  • Nathan - Working on 227 open source repos, soccer league
  • John - Drupal Providence
  • Pantheon Autopilot
  • Visual regression tests
  • How it works
  • Comparison with backstop js
  • Deployment workflow
  • Composer integration
  • Compatible Drupal versions
  • Other platforms
  • Pantheon upstreams
  • Development process
  • Acquisition
  • Automatic updates initiative in Drupal core
  • Developer reactions
  • Need for autopilot once automatic updates are supported
  • Roadmap
  • Adding it to your account
    • cost
  • Most surprising project from pantheon
Resources Guests

Nathan Tyler - @getpantheon

Hosts

Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Kevin Thull - @kevinjthull

MOTW

Webform The Webform module allows you to build any type of form to collect any type of data, which can be submitted to any application or system. Every single behavior and aspect of your forms and their inputs are customizable. Whether you need a multi-page form containing a multi-column input layout with conditional logic or a simple contact form that pushes data to a SalesForce/CRM, it is all possible using the Webform module for Drupal 8/9.

Gizra.com: Five years as a core subsystem maintainer, a retrospective.

1 week ago

Drupal is written by volunteers and by employees of companies who sponsor them. Writing code is usually the main way to contribute to open source, but reviewing others code is important as well.

I’m one of the ones who reviews others’ code, after five years of doing this I would like to reflect on the exercise of being a maintainer.

Gizra.com: Timezone Handling on Your Drupal Site for Everyone

1 week 1 day ago
Drupal happily hides the chaos when it comes to timezones. We have UNIX timestamps, which are timezone-agnostic, and other forms of dates that are always in UTC, which it converts for you on-the-fly before displaying them to the users. This way, you do not need to worry about the pain of converting dates between timezones, a magic database in the background resolves it. Obviously it won’t work for anonymous visitors as the timezone information is missing, also the pages are often cached for them.

PreviousNext: Sponsoring Drupal Contribution

1 week 3 days ago

As an open-source project, Drupal relies on the sustained contributions of individuals and organisations to keep it well maintained, develop, and grow to stay relevant in a competitive landscape.

The project founder, Dries Buytaert has highlighted the problems many open source projects have of balancing the makers and takers. Increasingly, organisations that have traditionally contributed to Drupal have had challenges keeping the level of contribution going, and have had to look to new ways to support the project.

Sponsoring Drupal contribution is a new and exciting way for PreviousNext to give back to the project as well as the community.

by kim.pepper / 26 November 2021

PreviousNext has a long history of contributing to Drupal. For the last 12 years our contributions have ranged from speaking at global and local Drupal events, to being a part of the team that ran the first DrupalCon in Sydney, Australia. Our team consists of core committers, sub-system maintainers, module maintainers, and security team members, as well as members of the DrupalSouth board and committees. We have consistently ranked in the top ten contributors globally.

Recently we have achieved the only Platinum Drupal Certified Partner status in Australia, and are committed to maintaining it.

Since our inception, we have contributed back via the projects we develop as well as a policy of 20% time for contribution, and we will continue to do this going forward. We believe this benefits everyone. Our employees are receiving code reviews from some of the brightest minds in the Drupal world, increasing their expertise - a form of training if you like. PreviousNext is also able to raise its profile based on these contributions, and market its expertise to future customers.

Despite this, we see a big opportunity in sponsoring specific individuals who can have a big impact on the project.

V Spagnolo (@quietone) is a key member of the Australia & New Zealand Drupal community. She has long been a maintainer of the Migrate core sub-system, a central contributor to the Bug Smash Initiative, and her contributions earned her winner of the Open Source Contributor award at the New Zealand Open Source Awards in 2018. She has recently been appointed a Provisional Release Manager for Drupal.

In short, she provides highly valuable contributions to both the project and the regional community.

Today, we are proud to announce that we will be financially sponsoring part of quietone's contribution time going forward, as another way for PreviousNext to help progress the project.

Tagged Core contribution, Contributing

Evolving Web: My First 3 Months at Evolving Web

1 week 4 days ago

Last August, I joined Evolving Web as a Content Writer & Editor. Three months later, I have to say this has been a fantastic journey! I'm super proud of being part of an incredible marketing team and a true digital powerhouse. Here I'll share a few impressions of Evolving Web and how its collaborative culture and welcoming environment have already taught me some lessons and enabled me to develop my skills.

From Journalism to Content Marketing (and Beyond)

I was a journalist for more than 20 years before moving to content marketing in 2018. I've specialized in writing and editing blog posts, newsletters, website copy, and other types of content about topics ranging from machine learning and digital transformation to online consumer behaviour.

When I got a job offer from Evolving Web, I thought I was fully equipped for the job right from the start, thanks to my experience, writing and editing skills, and business-oriented mindset. I thought that was all I needed to create the best content marketing a web agency could have.

It turns out I was wrong. Sure, my background has been a great help from day one—like when I write case studies about our clients' projects and interview my colleagues about their experiences. However, creating Drupal-related content can be challenging for a non-developer like myself. Writing about the platform's technical aspects demands a certain knowledge that you can only acquire with dedication and time.

So, with every new assignment, I end up learning valuable things about Drupal. At the same time, I try to block time off my schedule to do some reading and learn more about Drupal on my own.

This kind of challenge excites me. I'm curious by nature, and learning new things is something everyone should be open to, no matter how experienced they may be. Nothing could have prepared me for the world of possibilities Drupal presents, and learning and creating content about it has only made me a better writer and editor.

I have to give credit to my generous, talented colleagues, who have been immensely supportive throughout my journey. They're always willing to share their knowledge and even write about their experiences on our blog. Along with our tight-knit structure, this collaborative spirit emphasizes one of Evolving Web's biggest strengths: a sense of belonging. I feel like I'm part of something and that my work makes a difference, whether it's to our readers via our blog or helping the company itself expand its reach. This is much better than just feeling like a cog in the wheel, as too often happens in some larger companies.

The Importance of Belonging

In the end, everyone wants to feel like they belong. At Evolving Web, my first taste of that was during my first week on the job at our summer picnic. I literally knew nobody there, but they all made me feel welcome right away. We had a fantastic time, enjoying some great weather in the heart of Old Montreal (with social distancing, of course). Right then, I could tell that Evolving Web and I were a great match.

Then, after a couple of weeks on the job (and after two COVID jabs), I felt more comfortable going into the office regularly. While we're free to work from home, I personally prefer to go to the office, and by doing that, I rediscovered the power of collaboration. After more than a year of social distancing, I could again experience how working close to one another makes our output richer. In my case, speaking in person to developers, designers and project managers speeds up and improves my writing and editing process.

Coming to the office also opened my eyes to how Evolving Web's environment is as chill as results-driven. People are always willing to put their heads together and support each other, but come lunchtime, we all go into the kitchen to relax, laugh, and play some mean foosball. (I'm still terrible at it, but my game is slowly improving. Baby steps!)

Take a look at what it's like to work at Evolving Web

The Power of Diversity

Finally, I want to say a few things about diversity. As a Brazilian who's lived in Montreal for two years, I took a job at Evolving Web hoping this would be a workplace that genuinely valued plurality. Three months later, I can see how solidly diverse we are as a team. We all come from—or even live in—many different places, including Ukraine, Turkey, France, Brazil, Costa Rica, Lebanon, China, Vietnam, and Québec and Ontario.

This plurality enables me to express myself freely, knowing that my colleagues will value my input and work as much as anyone else's, regardless of where I come from or my cultural background. It might not sound like much, but this has been a first for me since I came to Canada. This culture of diversity is crucial for me to perform my best.

Here's How Drupal Can Be a Force for Diversity and Inclusion

The past three months on the job have been full of learning, hard work, fun, and collaboration. It's been one of the most enriching experiences in my career, and I'm sure Evolving Web and I are set to achieve great things together. I'm looking forward to the next three months! (And the following three months, and the next, and the next...)

I encourage you to take a look at our job opportunities! Join our team :)

+ more awesome articles by Evolving Web

Chocolate Lily: Multiple version compatibility in Drupal--managing the tradeoffs

1 week 4 days ago

If you're a seasoned Drupal module developer, or even a relatively new one, it's hard not to like the fact that, starting with Drupal 8.7.7, it's possible for a single version of a module to be compatible with multiple versions of Drupal core. Suddenly, maintaining your module became way easier. It's noteworthy enough that the process of making a module work with the Drupal 9 release was incomparably easier than any previous major version upgrade. But beyond that, you could actually maintain a single version for both Drupal 8 and 9, or both Drupal 9 and 10. How great is that?

But - and there always is a but, isn't there? - it's not quite so straightforward. There are some significant tradeoffs to sticking with a single release branch for two major versions of core. I'll look at a couple here - deferred refactoring and missed improvements - and ways to mitigate them.

Checked
12 hours 22 minutes ago
Drupal.org - aggregated feeds in category Planet Drupal
Subscribe to Drupal Planet feed